lex词法分析程序找错

lex词法分析程序找错,第1张

"int"|"else"|"return"|"void"|"if"|"while"

{Upper(yytext,yyleng)

printf("%d 行 %sreserved word\n ",lineno,yytext)

}

{num}

{

printf("%d 行 %sNUM\n",lineno,yytext)

}

","|""|"("|")"|"{"|"}"|"*"|"/"|"+"|"-"|">"|"<"|">="|"<="|"=="|"!="|"="|"/*"|"*/"

{printf("%d 行 %sspecial symbol\n ",lineno,yytext)

}

{id}

{printf("%d 行 %s ID\n",lineno,yytext)

}

1.输入是代凯胡春码文件,输出是一个个的token。这些输出之后是供语法分析器(yacc,bison什么的)用的。

2.做准备的话你可以看看《c专家编程》第3章:分析c语言的声明。这个例子是一个最简单的词做粗法+语法分析器,足盯耐够给你一些提示了。当然这还不够,你可能要找一份C语言的标准来看。

3.归类无非是修饰符、类型、关键字、标识符、运算符等等了。

4.在2的基础上。不难解决。

5.这个很简单。就算直接文件处理也解决掉了。依稀记得lex可能更容易做这件事儿。

总体来说,这事儿如果自己做可能比较费劲,用lex应该省事不少。

=========================================================================

上面只是凭印象说的,希望对你有帮助。等等看有没有大牛帮你完成吧。或者等我有空咱们一起研究下。

看看镇族你的bool isWord(char ch)函数:else 后面,return false

你给早毕都陆旅芹写成return true 了。最后在调用它的while中陷入死循环了,最终崩了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12527314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存