我有一个关于词法分析的基本问题。 由于词法分析器(它是一个接受词汇并产生令牌的DFA)可以产生标识符([az] / [AZ] / [0-9]知道数字而不是第一个字符),关键字(如果,否则, ..),运营商&分隔符。
所以,如果像'whil'这样的词汇来了。那么它是一个词汇错误,说明它不是一个有效的关键字或它会被接受为标识符(变量),因为词法分析器不考虑语法是否正确或不是吗?
Lexical Analyzer是否为标识符,关键字,运算符使用不同的DFA?
答案 0 :(得分:1)
那么它是一个词汇错误,说明它不是一个有效的关键字
没有
或将被接受为标识符(变量)
是的,然后解析器会出现语法错误。
因为词法分析器不考虑语法是否正确?
词法分析器对语法一无所知。那是解析器的工作。
答案 1 :(得分:0)
识别关键字, 它对标识符使用相同的正则表达式,然后检查关键字表,它是否是关键字。如果是,那么关键字,否则它是标识符