0
私はANTLR4をプロジェクトに使用していますが、私は非常に把握していないことがあります。私はレクサールールで、アンダースコアまたは文字で始まり、 'xml'で始めることはできず、ピリオド、ダッシュ、文字、数字およびアンダースコアを含むことができるものをトークン化しています。初めが文字かアンダースコアかどうか、またそれが 'xml'ではないことを確認するにはどうすればよいですか?特定の場所にANTLR4固有の文字
私はANTLR4をプロジェクトに使用していますが、私は非常に把握していないことがあります。私はレクサールールで、アンダースコアまたは文字で始まり、 'xml'で始めることはできず、ピリオド、ダッシュ、文字、数字およびアンダースコアを含むことができるものをトークン化しています。初めが文字かアンダースコアかどうか、またそれが 'xml'ではないことを確認するにはどうすればよいですか?特定の場所にANTLR4固有の文字
文法:
grammar Expr;
prog: word+ EOF;
word : STRING ;
STRING : ~[xml]STRINGCHAR+;
WS : [ \t\r\n]+ -> skip;
fragment
STRINGCHAR : [_a-z] ;
マッチ「少年」と「_girl」ではなく、文字列の定義の中で明示的に除外〜演算子を使用して、「xmlboy」。
質問は非常に抽象的です。具体的な事例を挙げることができますか? – Rnet
私は具体的には、アンダースコアや文字で始まり文字 'xml'で始まらない文字列をどのように認識すると思いますか?したがって、 '_hello'と 'hello'は受け入れますが、 'xmlhello'は受け入れません – Alex5775
あなたのトークンを定義する際に、ネガティブルックアヘッドの正規表現パターンを使用することができます。例:^(?! xml)。+はxmlで始まらないものと一致します – Rnet