使用Antlr4语法的前导符号(Lexer rule)和分隔符号(Parser rule)来创建规则。以下是示例代码:
1.编写语法规则:
grammar SkipLine;
// Lexer规则 COMMENT: '' (' ' | '\t')? ~[\r\n] -> skip;
// Parser规则 start: line+; line: WORD (SPACE WORD)* EOL;
// Lexer 中的规则 fragment WORD: [a-zA-Z0-9_]; fragment SPACE: (' '|'\t')+; fragment EOL: '\r'? '\n';
2.编写测试用例:
测试输入:
hello world *skip
期望输出:
hello world *0:45
3.生成代码并测试解析器:
$ antlr4 SkipLine.g4 -Dlanguage=Java $ javac SkipLine*.java $ grun SkipLine start -tokens hello world\r\nskip\r\n skip\r\n*0:45\r\n^Z
解析结果:
[@0,0:10='hello world',<1>,1:0]
[@1,12:11='