假如识别多个不同的标识符,那么他们的种别码是一样的,还是不同的呢?为什么这么设置呢。求大佬们回答 。么么哒。爱你们
不同类别的标识符,种别不同,相同种别下,不同的标识符,种别相同。
比如说
if else switch ... 这些都是关键字
_a b str ... 这些都是变量
func main getNumber ... 这些都是函数
等等。
具体返回类别码是由程序员自己定义的。
不过针对标识符id,除了保留字,我们一般采用归为1类,因为标识符数量无限。在使用flex等软件自动构造词法分析器时,也可以看出,定义完标识符的正则式,返回类别为同一类。
至于其余的终结符、保留字等,采用一符一类,方便进行语法分析。