我从 O'Reilly 购买了 Flex & Bison,但我在实现解析器时遇到了一些麻烦(将事物分解为令牌没什么大不了的)。
假设我有一个巨大的二进制字符串,我需要做的就是将这些位相加 - 每个位都是一个标记:
[0-1] { return NUMBER;}
1101010111111
或者就此而言,没有“操作”的令牌集合。
这样的语法是否正确?
calclist :
| calclist expr EOL {eval($2)}
expr: NUMBER
|expr NUMBER { $$=$1+$2 }
或者有更好的方法吗?