如何在 ANTLR 中编写以下 BNF 语法?
literal = "{" number "}" CRLF *CHAR8
; Number represents the number of CHAR8s
例如{6}\r\nLENGTH
应该映射到"LENGTH"
字符串。
跟随工作吗?
literal:
| '{' ('0'..'9')+ '}\r\n'
{
// C# Code for Lexer
Text = Text.Trim();
int n = int.Parse(Text.Substring(1,Text.Length-2));
Text = "";
for(int i=0;i<n;i++){
input.Consume();
}
}
;
我将其作为 Lexer 规则工作,但问题是我得到的令牌不匹配,我没有得到令牌作为文字。