Ist es möglich zu verstehen, wann funktionieren semantische Prädikate und wann nicht?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ist es möglich zu verstehen, wann funktionieren semantische Prädikate und wann nicht?

by Anonymous » 22 Feb 2025, 01:30

unten sind zwei Grammatiken. < /p>
In dieser Grammatik machen semantische Prädikate "Arbeit". D.h. Wenn sie falsch sind, stimmen Regeln nicht überein und wenn sie wahr sind, stimmen die Regeln überein: < /p>
expr
: term
| expr asterisk expr (asterisk expr)*
| expr plus expr (plus expr)*
;

plus: {_input.LT(1).getText().equals("+")}? SPECID;
asterisk: {_input.LT(1).getText().equals("*")}? SPECID;

term
: ALNUMID
| STRID
| LPAREN expr RPAREN
;
< /code>
Und in dieser Grammatik funktionieren semantische Prädikate nicht. D.h. Wenn sie falsch sind, werden die Regeln immer noch mit dem BU -Fehler übereinstimmen. < /p>
expr
: add
| mult
| term
;

mult
: term (asterisk) term ((asterisk) term)*
;

add
: (term|mult) plus (term|mult) (plus (term|mult))*
;

plus: {_input.LT(1).getText().equals("+")}? SPECID;
asterisk: {_input.LT(1).getText().equals("*")}? SPECID;

term
: ALNUMID
| STRID
| LPAREN expr RPAREN
;
< /code>
In beiden Fällen versuche ich einfache Tests durchzuführen, um 2 + 2 und 2 * 2 zu analysieren. Definitionsarbeit oder nicht? Was ist die Logik hier?

Top