词法分析器如何返回解析器使用的语义值?

时间:2009-11-17 08:31:46

标签: yacc lexical-analysis

总是有必要这样做吗?它是什么样子的?

3 个答案:

答案 0 :(得分:1)

Lexers不处理语义,他们只处理将字符流转换为标记(对编译器有意义的字符序列)。在语法分析期间确定语义。有关编译阶段的更多详细信息,请参阅前一个问题answer

答案 1 :(得分:0)

Lexer不关心语义生活方式中唯一的任务就是将词条源(字符流)转换为标记,每个都有这种形式<Token_type, Information_related_to_token>信息可能是令牌的值(字符串) ,运营商的名称(=)......

然后将标记发送到处理语法分析的解析器。作为辅助工作,词法分析器可以创建符号表。

答案 2 :(得分:0)

yacc中,你的词法分析器得到一个名为yylval的全局变量,它是一个C联合。返回yacc,这将成为$1$2

的值