https://github.com/antlr/grammars-v4/tree/master/css3のANTLR4とCSS文法を使用しています。ほとんど機能していますが、CSSで引用符で囲まれた文字列を使用すると問題が発生します。たとえば、次のCSSを使用します
.b1
{
font-family: "Gill Sans", serif;
}
「GillSans」と「serif」を引用符なしで抽出したいと思います。引用符は、文字列の周りに使用される場合、パーサは発生KnownTermContext
次いで有するString()
返す方法antlr4::tree::TerminalNode*
。その返されたオブジェクトのgetText()
メソッドは、引用符を含む文字列を返します。これは、しかしとして表示されますString()
のみ有効である文字列が理論的にはそう引用されたとき、私は手動で、この場合には引用符を削除することもできますが、ANTLRのようなパーサを使用しているとき、それは不要であるべきように思えること。
引用符が削除された文字列を抽出する方法はありますか、それともこの場合、引用符を削除するのは呼び出し元の責任ですか?
[...]または、この場合、引用符を削除するのは呼び出し元の責任ですか?
はい、これは正しいです。ANTLRには、トークンから文字を取り除く方法はありません(つまり、ターゲット固有のコードがない場合)。これは、リスナーまたはビジターで解析ツリーをトラバースするときに実行できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加