Gibt es eine Möglichkeit, um 2 oder mehr Operanden in einem YACC Projekt unter Verwendung der Programmiersprache C hinzufügen, um einen Parser für ein LISP-Subset zu erstellen, ist dies die GrammatikOperationen mit YACC in C für eine LISP Teilmenge
„mod "und‚lassen‘muss nicht beachtet werden, weder die Symbole
P:
'('LET '('DEF_VARS')' BODY')'
|BODY
;
DEF_VARS:
DEF_VARS DEF
|DEF
;
DEF:
'('SYMBOL OPN')'
;
CUERPO:
BODY EXPR
|EXPR
;
EXPR:
'('OPER OPNS')'
;
OPER:
'+'
|'-'
|'*'
|MOD // %
|'/'
;
OPNS:
OPNS OPN
|OPN
;
OPN:
EXPR
|INT // [-+]?[0-9]+
|SYMBOL //[a-zA-Z][a-zA-Z0-9_]* //a variable
;
ich loooking bin zu wissen, wie eine Symboltabelle zu verwenden und eine Addition, Subtraktion, Multiplikation, Division und mod, eine Liste von Elementen und Variablen deklarieren Ich habe keine Ahnung, wie man eine Symboltabelle im Code benutzt.
zum Beispiel sind diese Sätze gelten für die Sprache:
(+ 30 -7 +3)
Ergebnis ist 26
(* (+ 3 4) (- -5 2))
Ergebnis -49
(lEt ((x(+ 1 2))(y x))(/ (mod x y) 3))
Ergebnis 0
Jede Hilfe ist willkommen Kommen Sie. Vielen Dank im Voraus.