我正在使用PLY,并编写了以下表达式来匹配这种示例字符串'(A或B或C)‘。
表达式: LPAREN关键字与关键字RPAREN | LPAREN关键字或关键字RPAREN | LPAREN关键字与关键字RPAREN | LPAREN关键字与关键字RPAREN关键字和关键字RPAREN | LPAREN关键字或关键字RPAREN
我不知道如何涵盖所有案例,所以我必须列出尽可能多的案例,我知道这并不优雅。
有什么想法来优化这个表达式吗?非常感谢。
发布于 2018-07-07 07:01:06
假设你在Python中使用PLY,你可以用下面的代码解析这个表达式:
def p_condition(p):
""" condition : LPAREN comparation RPAREN """
def p_comparation(p):
""" comparation : KEYWORD operator KEYWORD
| comparation operator KEYWORD """
def p_operator(p):
"""operator : AND
| OR """
要理解它,请阅读BNF语法和PLY docs
https://stackoverflow.com/questions/50808406
复制相似问题