求一个yacc的例子

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:29:49
只需把一个a.txt的文件
title
i=1+3.9;
a3=909/6
bcd=4%9-333
解析出来就行了
结果是
Var : title
Var : i
Unknown : =
Int : 1
Op : +
Float : 3.9
Unknown : ;
Var : a3
Unknown : =
Int : 909
Op : /
Int : 6
Var : bcd
Unknown : =
Int : 4
Op : %
Int : 9
Op : -
Int : 333
如果只用lex文法的话,我已经编写出来了
但我不理解lex与yacc如何一起用,希望高手帮忙用yacc解析出同样结果

你现在已经用lex识别出了这些符号,并且在lex的动作部分输出了这些信息
你要做是在lex的动作部分用return返回代表这些符号的token,用yylval传回额外的信息(例如:数字或字符串等)。yacc会根据返回的token序列与指定的语法进行匹配,匹配到了就会执行后面的动作。