AnTLR4 で Python 文法を実装していますが、ここで説明されている INDENT と DEDENT で同じ問題に直面しています: ANTLR4- 動的にトークンを挿入する
私が試みている解決策は、ここで見つけることができる Ter による解決策を変換することですhttp://antlr3.org/grammar/1078018002577/python.tar.gz (nextToken をオーバーライドし、架空のトークンを挿入します)。
問題は、このソリューションでは、次のようなレクサー ルールがあることを前提としていることです。
LEADING_WS
: {getColumn()==1}?
// match spaces or tabs, tracking indentation count
( ' ' { spaces++; }
| '\t' { spaces += 8; spaces -= (spaces % 8); }
| '\014' // formfeed is ok
)+
{
}
...
しかし、レクサールールのアクションは単一の代替案の最後の要素でなければならないため、エラーが発生し続けます。
誰かが解決策を見つけるのを手伝ってくれますか?
どうもありがとう!!!