我必须检查一个简单的布尔表达式的语法,例如 (X = 100和Y <100),我写了语法,并试图检查这是否正确所以我使用这个在线工具http://smlweb.cpsc.ucalgary.ca/start.html。它说语法错了。
有人可以在这里指出问题吗?提前谢谢。
boolean -> bool_term | boolean OR bool_term
bool_term -> bool_factor | bool_term AND bool_factor
bool_factor -> bool_primary | NOT bool_primary
bool_primary -> predicate | ( boolean )
predicate -> expr comp_op expr
expr -> string | number.
comp_op -> = | >
答案 0 :(得分:1)
主要是关于服务的愚蠢语法。例如,不支持字符=
和>
,也无法将其转义。
这个语法有效:
BOOLEAN -> BOOLTERM | BOOLEAN or BOOLTERM .
BOOLTERM -> BOOLFACTOR | BOOLTERM and BOOLFACTOR .
BOOLFACTOR -> BOOLPRIMARY | not BOOLPRIMARY .
BOOLPRIMARY -> PREDICATE | ( BOOLEAN ) .
PREDICATE -> EXPR COMPOP EXPR .
EXPR -> string | number .
COMPOP -> eq | gt .