语法分析器
2016-02-15 09:10:21 0 举报
语法分析器是一种程序,用于检查源代码的语法是否正确。它通常被集成到编译器或解释器中,用于在代码执行之前进行语法检查。语法分析器的工作方式是读取源代码,并将其转换为抽象语法树(AST),然后遍历该树以检查是否存在任何语法错误。如果发现错误,语法分析器将报告错误并提供有关错误的详细信息,以便开发人员可以修复它们。语法分析器可以使用不同的算法和技术来实现,例如自顶向下分析和自底向上分析。总之,语法分析器是编写高质量代码的重要工具,它可以帮助您避免在代码执行过程中出现意外的错误。
作者其他创作
大纲/内容
判断当前单词是否为标识符或者数字?
判断token数组是否为关键字
否
跳进函数E1();
跳进函数F();
获取单词结构体数组的下一个单词
是
syn=-1(出错)
语法分析开始
跳进函数T1();
跳进函数T();
储存到token数组中,且读取cInput数组下一个字符到ch
syn=运算符和界符对应的syn
跳进函数E();
sum=sum*10+ch-'0';且读取cInput数组下一个字符到ch
判断ch是否在0~7之间?
输出error,输出已读取的单词和输出当前读取出错误的字符
输出success
判断ch是否是字母或是数字
输出fail
初始化token数组
sum=sum*8+ch-'0';且读取cInput数组下一个字符到ch
判断当前单词是否为右括号“)”?
#
判断当前单词是否在follow集合里?
根据syn不同,存储到单词结构体数组中
判断当前单词是否为“*”?
词法分析开始
判断ch=0?
判断ch是否在0~9之间?
判断ch是否是数字
syn=11
语法分析结束
判断当前单词是否为“#”?
判断当前单词是否为“+”?
读取cInput数组的下一个字符到ch
判断syn=0?
判断ch是否是空格
sum=0
词法分析结束
syn=关键字对应的syn
syn=10(标识符)
判断ch是否是字母
输入字符串存储到数组cInput
判断当前单词是否为左括号“(”?
0 条评论
回复 删除
下一页