词法分析的大嘴
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了词法分析的大嘴相关的知识,希望对你有一定的参考价值。
C/C++ 中的词法分析中的理解。如,/、=、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,/*、和 ==包含了两个的单字符,所以称之为多字符符号。
所以,在编译器录入字符的时候,每录入一个字符,比如 / 之后就会做出判断是否已经录入完毕,如果 后面还有 *,就会合在一起组成一个多字符,重新判断是否已经录入完毕;否则 是当作录入一个字符进行处理。
编译器录入字符的原则是:大嘴原则,也就是,尽可能录入更多字符。编译器录入字符的时候,从左到右进行一个接一个地录入字符,如果这个字符可以组成一个符号,那么继续录入时其他的符号,再判断是否可以组成一个多字符;如果可以就继续录入,重复上面的过程。这个方法曾只为大嘴原则。
1、代码理解:
a --- b可以理解为
a -- - b
但绝对不是:
a- --b
y = x/*p 的时候,就会出现报错的现象,
因为录入字符的时候,会将 /* 录入进去,大嘴原则发挥了效果,编译器会认为是 注释的符号,所拥有就会报错,
解决的办法:
y = x/ *p 或者 y = x/(*p)
以上是关于词法分析的大嘴的主要内容,如果未能解决你的问题,请参考以下文章