كيف أضيف قوسين إلى هذه القاعدة؟
-
18-09-2019 - |
سؤال
لدي قاعدة متكررة اليسار مثل ما يلي:
EXPRESSION : EXPRESSION BINARYOP EXPRESSION | UNARYOP EXPRESSION | NUMBER;
أحتاج إلى إضافة قوس إلى ذلك، لكنني لست متأكدا من كيفية جعل الأقواس اليسرى تعتمد على قوسين يمين مطابقة حتى الآن لا يزال اختياري. هل يمكن لأي شخص أن يرني كيف؟ (أو أحاول أن أفعل الكثير بكثير في Lexing، وينبغي أن أغادر بعض أو كل هذا إلى التحليل؟)
المحلول
يمكنك إضافة قاعدة متكررة:
EXPRESSION : EXPRESSION BINARYOP EXPRESSION
| UNARYOP EXPRESSION
| NUMBER
| OPENPARENS EXPRESSION CLOSEPARENS
;
نصائح أخرى
نعم، أنت تحاول أن تفعل الكثير في Lexer. إليك كيفية التجول حول القواعد اليسرى العودية:
http://www.antlr.org/wiki/display/antlr3/xpressionsevaluator. (انظر كيف قاعدة المحلل expr
سلبا وصولا الى القاعدة atom
ثم تسمى متكررة من atom
تكرارا)
هذر
لا تنتمي إلى StackOverflow