簡単な文法は次のとおりです。
START = DECL DECL $ ;
DECL = TYPE NAME '=' VAL ;
TYPE = 'int' | 'float' ;
NAME = 'a' | 'b' ;
VAL = '4' ;
この入力ストリームを Grako で解析します。
int a = 4
float b = 4
そして、この抽象構文ツリー (JSON) を取得します。
[
"int",
"a",
[
"=",
"4"
],
[
"float",
"b",
[
"=",
"4"
]
]
]
次のような AST を取得する簡単な方法はありますか。
[
"int" TYPE,
"a" NAME,
[
"=" DECL,
"4" VAL
],
[
"float" TYPE,
"b" NAME,
[
"=" DECL,
"4" VAL
]
]
]
またはこれ:
...
"int TYPE",
...
?
Grako で生成されたパーサーのセマンティック アクションが解決策だと思いますが、わかりません。
これを行う簡単な方法はありますか?