現在、構成ファイルの解析を行うために YACC ファイルを使用している 3 つのプログラムがあります。簡単にするために、それらはすべて同じ構成ファイルを読み取りますが、それぞれが一意にキー/値に応答します (したがって、同じ .y ファイルを複数のプログラムに使用することはできません)。それぞれの宣言を繰り返す必要がないのはいいことです%token
.1つのトークンを追加したい場合、3つのファイルを変更する必要がありますか? それは何年のことか??
これらの方法が機能しないか、問題が発生しています:
C プリプロセッサは明らかに、ファイルを YACC した後に実行される
#include
ため、#define
または他のマクロでは機能しません。を使用して同様のスクリプトを作成しようとしました
sed
:
REPLACE_DATA=$(cat <file>)
NEW_FILE=<file>.tmp
sed 's/$PLACEHOLDER/$REPLACE_DATA/g' <file> > $NEW_FILE
ただし、変数の内容を置き換えるのではなく、改行を削除しREPLACE_DATA
てインスタンスを置き換えないようです。 $PLACEHOLDER
PLACEHOLDER
YACC に実際のインクルード メカニズムはありますか、それとも他に不足しているソリューションはありますか? これはメンテナンスの悪夢であり、他の誰かが同様の状況に遭遇したことを願っています. 前もって感謝します。