2016-11-23 3 views
0

(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

はStackOverflowのへようこそ!私の答えがあなたのために働くなら、それを合格とマークすることを検討してください。そうでない場合は、コメントしてください。 –

答えて

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 . 
関連する問題