【ANTLR】编程语言中的常见antlr语法表达
- 匹配程序的标点符号
- 匹配程序中的关键字
- 匹配标识符
- 匹配数字
- 匹配字符串
- 匹配丢弃注释
- 匹配丢弃空白字符串
2024年9月25日16:35:19----0.5.0
匹配程序的标点符号
- 思路
处理运算符和标点符号最容易的方式就是直接在文法规则中引用它们 - 示例
call : ID ‘(’ exprList ‘)’;
call : ID LP exprList RP;
LP : ‘(’;
RP : ‘)’;
匹配程序中的关键字
- 思路
关键字是保留的标识符,我们既可以直接引用它们,也可以为它们定义词法符号类型 - 示例
returnStat : ‘return’ expr ‘;’;
匹配标识符
- 思路
几乎每种语言中的标识符看上去都差不多,它们之间的差异通常在于第一个字符的可选
值以及是否允许 Unicode 字符 - 示例
ID : ID_LETTER (ID_LETTER | DIGIT)* ; // C语言的语法片段
fragment ID_LETTER : ‘a’…‘z’|‘A’…‘Z’|‘_’;
fragment DIGIT : ‘0’…‘9’;
匹配数字
整数表达
INI:DIGIT+;
浮点数表达
FLOAT : DIGIT+ ‘.’ DIGIT*
| ‘.’+DIGIT+
;
匹配字符串
双引号包围的字符串?
STRING : ‘"’ (ESC|.)*? ‘"’;
fragment ESC : ‘\’ [btnr"\];
匹配丢弃注释
LINE COMMENT : ‘//’ .? ‘\n’ -> skip;
COMMENT : '/’ .*? -> skip;
匹配丢弃空白字符串
WS: [\t\n\r]+ ->skip;
参考:antlr权威指南