{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中陷入死循环了,最终崩了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)