私は独自のIDEデザインファイルからプロパティとコードを抽出するアプリケーションを作成しようとしています。ファイル形式は次のようになります。シンプルなコードパーサーのデザイン戦略
HEADING
{
SUBHEADING1
{
PropName1 = PropVal1;
PropName2 = PropVal2;
}
SUBHEADING2
{
{ 1 ; PropVal1 ; PropValue2 }
{ 2 ; PropVal1 ; PropValue2 ; OnEvent1=BEGIN
MESSAGE('Hello, World!');
{ block comments are between braces }
//inline comments are after double-slashes
END;
PropVal3 }
{ 1 ; PropVal1 ; PropVal2; PropVal3 }
}
}
私がしようとしているのは、副題の下に内容を抽出することです。 SUBHEADING2の場合は、各トークンをセミコロンで区切って区切ります。私は括弧を数え、私が現在いる下位見出しを追跡するだけで合理的に成功しました。私が遭遇した主な問題は、コードコメントを扱うことです。
この言語では、ファイルコメントの括弧で囲まれたブロックコメントに{}を使用しています。さらに面白くするためには、二重スラッシュのインラインコメントを考慮に入れ、行の最後まですべてを無視する必要があります。
これに取り組むための最善のアプローチは何ですか?私は、別の記事(ANTLR、Doxygenなど)で議論されたコンパイラライブラリのいくつかを見ていますが、この特定の解析問題を解決するには過度のようです。
なぜXMLベースの構文を使用しないのですか? – xport