我有这些规则:
while: 'while' expr 'do' program;
if: 'if' expr 'then' program 'else' program;我并不关心expr包含什么,那么在then或do之前,我如何才能将所有内容都放在那里
我试过了:
expr: .*?~('then'|'do');但它不起作用。为什么?
发布于 2018-06-08 15:07:04
如果内容和结构对您来说无关紧要,那么可以使用令牌流。迭代所有标记(从while标记开始,直到遇到do为止)(并跳过所有嵌套循环)。您的解析器确保输入是正确的,因此可以使用令牌流。
https://stackoverflow.com/questions/50751224
复制相似问题