在扫描仪中,有一个名为VLC SDK
的功能。在解析器中,我想知道是否存在类似的实用程序来操作堆栈?
我的情况:
在扫描仪中,通过检查输入字符串,可以确定要在unput()
中使用的相应字符。例如,标识符的unput()
unput()
以'2'
开头,d
的{{1}},'4'
的{{1}}等。
我还有一个简单的标识符别名功能,该功能允许使用友好名称(例如q
)定义标识符,所有标识符都放置在输入文件的开头。此功能仅由'8'
中的哈希表实现,该哈希表可以保留有关o
,#define NAME d0
和.y
的所有信息。
现在,在生产规则中,当我遇到NAME
标识符的使用时,通过查找哈希表,我可以将其简化为与d0
相对应的符号,但是有关{{1 }}已丢失...由于在扫描仪中,非锯齿字符串2
映射到两个符号,但是NAME
仅映射到单个符号。这就是为什么我想以某种方式将与d0
相对应的额外符号压入堆栈中,希望它的行为与扫描仪正在读取2
相同。
答案 0 :(得分:-1)
只有一种方法可以使用堆栈:使用$ 0,$-1等更改值(对于位置使用@ 0 ...),但是不能更改符号的类型。