私の文法ファイルによっていくつかの Lua コードに対して出力された AST があります。これは現在、解析と字句解析を行っています。これにツリー文法を追加したいのですが、C# を使用しているため、その方法がわかりません。パーサーとレクサーが既に作成されている場合、ツリー文法コードを生成するための基本的なプロセスは何ですか?
更新: 次の文法ファイルがあります。
tree grammar LuaGrammar;
options {
backtrack=true;
language=CSharp2;
//output=AST;
tokenVocab=Lua;
filter=true;
ASTLabelType=CommonTree;
}
@lexer::namespace{/*my namespace*/}
@parser::namespace{/*my namespace*/}
dummyRule
: ^('=' x=. y=.) {};
メインの文法ファイルと同じディレクトリに配置されているため、問題なく生成されます。ただし、これをコンパイルしようとすると、次のエラーが発生します。
[02:54:06] error(143): C:\Users\RCIX\Desktop\AguaLua\Project\trunk\AguaLua\AguaLua\ANTLR Data\LuaGrammar.g:12:18: unknown or invalid action scope for tree grammar: lexer
[02:54:06] error(143): C:\Users\RCIX\Desktop\AguaLua\Project\trunk\AguaLua\AguaLua\ANTLR Data\LuaGrammar.g:13:19: unknown or invalid action scope for tree grammar: parser
私は正しい軌道に乗っていますか、それとも完全に外れていますか?