词汇分析仪如何确定给定令牌是标识符还是关键字



我有一个关于词汇分析的基本问题。正如词汇分析仪(接受词汇和产生令牌的DFA)可以产生代币,可以是标识符([A-Z]/[A-Z]/[0-9]知道Digit而不是第一个char),关键字(如果,如果,如果,否则,,..),运营商&定界符。

因此,如果像"'''一样的词汇来临。那么它将是词汇错误,说明它不是有效的关键字它将被接受为标识符(actibal),因为词汇分析仪不考虑语法是正确的还是不是?

词汇分析仪是否将不同的DFA用于标识符,关键字,操作员?

然后,这将是一个词汇错误,说明其不是有效的关键字

no。

或将被接受为标识符(变量)

是,然后将出现解析器的语法错误。

作为词汇分析仪不考虑语法是否正确?

词汇分析仪对语法一无所知。那是解析器的工作。

识别关键字,它使用相同的REGEXP作为标识符,然后检查关键字表是否是关键字。如果是,则关键字,否则它是标识符

最新更新