SQL解析器
文章目录
一、概述
词法分析器的输出就是token序列,只要词法分析器有输入,就会产生分词的输出, 相应的语法分析器的输入是连续的token序列。
看起来,解析器的内部是词法分析器的输出作为语法分析器的输入的一个模块串联,解析器的输入直接进入词法分析器,而解析器的输出就是语法分析器。
flex与bison程序是可以串联起来使用的,bison的输入默认就是flex的输出,当然也可以指定为标准输入或其它。
让我们将前面已经完成的SQL词法分析与语法分析串联起来。
二、SQL语法解析器
为了使得bison能够识别对应的token类型,需要将flex程序中的每个模式返回类型,此类型就是在bison程序中定义%token
定义的,在bison转换为C语言时,在生成的头文件中会定义为宏。
2.1 token的类型
注意词法分析器中的行首的CREATE
是正则表达式模式,也就是字符串;
而在语法分析器中的规则中也有一个CREATE