深入解析词法分析与语法分析工具的核心功能
在编程和软件开发中,词法分析和语法分析是构建编译器、解释器等工具的重要基础。下面将详细介绍相关工具中的一些关键函数和特性。
词法分析相关函数
yymore() 和 yyless()
当处理带引号的字符串时,如果字符串以反斜杠结尾,在闭合引号之前,可以使用 yyless() 将闭合引号推回,并使用 yymore() 告诉 lex 将下一个标记追加到当前标记上。例如:
yymore(); /* append next string */
} else {
... /* process string */
}
yyless() 的调用效果与使用 unput() 推回字符相同,但 yyless() 通常更快,因为它可以利用推回的字符就是刚刚从输入中获取的字符这一事实。
yyless() 的另一个用途是使用不同的起始状态规则重新处理一个标记:
sometoken { BEGIN OTHER_STATE; yyless(0); }
BEGIN 告诉 lex 使用另一个起始状态,调用 yyless()
超级会员免费看
订阅专栏 解锁全文
483

被折叠的 条评论
为什么被折叠?



