功能说明
词法分析功能 对预处理后的源程序进行词法分析,并进行
词法标记
数据结构说明
词法节点,当 lex 每识别出一个记号后,是通过变量 yylval 向 yacc 传递数据的。默认情况下
yylval 是 int 类型,也就是只能传递整型数据。
struct ATRNode{
int id; //记号
string attr; //属性
int line;
vector<ATRNode> children; //子节点 vector
ATRNode(){}
ATRNode(int id, string attr, int line=0)
{
this->id = id;
this->attr = std::move(attr);
this->line = line;
}
};
词法分析 本系统在词法分析中使用了有限状态自动机的分析方法,包括错误处理状
态在内,多状态相互转换完成词法分析任务。 在检查到词法错误时,词法分析子程序
具备错误恢复机制,将忽略该字符继续识别接下来的字符,在
下一行重启词法分析过程。 词法错误具有以下 4 种类型:
数字格式错误:如出现 1.z
非法的数组定义:如出现 1..z
错误字符格式:如出现’11’
出现非法字符:如出现汉字
评论0