1.概述
编译器的前端和后端。前端指的是编译器对程序代码的分析和理解。前端阶段只与语言的语法有关,而和目标机器无关。后端则是生成目标机器的目标代码有关。第一节说说编译器的前端技术。
编译器将一般会将词法和语法解析器分开实现。
2.词法(Lexer)
英语一般用空格和标点将单词隔开,但是在计算机,仅仅用空格和标点分割是不够的。比如“a!=5“
。
词法规则玩玩是用类似于正则语法的表达式生成“有限状态机”算法,并根据这些算法切割出token。
词法规则负责从输入读取,并解析成一个个token符号。为了方便,antlr一般将这些token编号用数字表示。
词法规则
antlr语法表示规则,查看以下example: