规则存放位置
词法规则既可以和语法规则写在同一个文件{xxx}.g4,也可以单独放在词法规则文件{xxx}Lexer.g4;
匹配原则
- 最长匹配原则: 输入串将被最长匹配的词法规则匹配;
- 优先声明原则: 若输入串能同时被多个词法规则匹配,那么声明在词法文件最前面的规则生效;
解析内容
词法规则作用是将一个个字符按照定义的规则聚集成字符,主要有以下四类:
- 标识符: 即各类编程语言中的变量名;
- 常量值: 英文叫Literal,如数字、单引号字符串、双引号字符串、各个进制写法等;
- 操作符: 单字符(!、~、=、>等)、双字符(>=、<=)等;
- 关键字: 即编程语言中的关键字,如Java中的class、package、import、public等;
可选项说明
- Fragment 共用的词法片段,供多个词法规则使用,一个词法规则中可引用一个或多个词法片段;
- {action} 词法规则关联的目标语言代码。当输入串被词法规则匹配时,执行定义的action;
- mode 主要用于解决一个语法中包含一个或多个其他不同的语法;</