前些天看一款数据库语法解析器的代码,其中的词法分析语法解析阶段,利用一个结构体存储所解析的SQL语句的类型,然后根据这个类型将改结构体强制转换为对应的另一结构体并赋值给他,以便做进一步的执行工作。 举个简单的例子: 存储语法解析后数据的结构体(注意,其只有一个元素)为: struct analyse { int type; }; 我们约定的不同的type代表不同的SQL操作,假如type=1时表示alter table操作,type=2时表示select操作,type等于3时表示create table操作等等。那么我们对不同的操作有不同的结构体来存储信息,例