Crowbar源码剖析:词法
Introduction 上回书说到,Crowbar用了Lex/Yacc这对经典工具来生成词法/语法分析器。它们具体的编写规则我不想细说,请参考这篇文章,但大致来讲,两者都是“一边匹配一边触发动作”。 本篇文章会集中讨论匹配触发了哪些动作,而不讲如何匹配、为什么匹配。 Crowbar-Lex 这部分讲述Lex如何对五花八门的字符作出不同反应,用<X>exp{action}表示“状态X下,与exp匹配时,执行action”。为了给Yacc传递符号的解析结果,双方约定了一种“通信方式”: ...