LALR -Parserverschiebung/Reduzieren von KonfliktenJava

Java-Forum
Anonymous
 LALR -Parserverschiebung/Reduzieren von Konflikten

Post by Anonymous »

Ich schreibe den Microjava -Compiler und implementiere derzeit Klassenlogik. Bisher habe ich die Feldlogik implementiert, aber ich kämpfe mit Methodenzugriff. Der Code bellow funktioniert ordnungsgemäß (für Felder) < /p>

Code: Select all

Designator ::= (DesignatorVar) IDENT
|
(DesignatorPropertyAccess) DesignatorClassName DesignatorClassMore
|
(DesignatorElem) DesignatorArrayName LBRACKET Expr RBRACKET
|
(DesignatorElemPropertyAccess) DesignatorClassElem DesignatorClassMore
;
DesignatorClassMore ::= (DesignatorClassMoreFinal) DOT IDENT
|
(DesignatorClassMoreFinalElem) DOT DesignatorClassArrayName LBRACKET Expr RBRACKET
|
(DesignatorClassMoreNotFinal) DesignatorClassMore DOT IDENT
|
(DesignatorClassMoreNotFinalElem) DesignatorClassMore DOT DesignatorClassArrayName LBRACKET Expr RBRACKET
;

DesignatorClassElem ::= (DesignatorClassElem) DesignatorArrayName LBRACKET Expr RBRACKET ;
DesignatorClassName ::= (DesignatorClassName) IDENT;
DesignatorClassArrayName ::= (DesignatorClassArrayName) IDENT;
DesignatorArrayName ::= (DesignatorArrayName) IDENT;
< /code>
Das [url=viewtopic.php?t=20324]Problem[/url] wird angezeigt, wenn ich versuche, Klassenmethodenaufrufe anzuwenden. Ich mache es so < /p>
DesignatorClassMore ::= (DesignatorClassMoreFinal) DOT IDENT OptCall
|
(DesignatorClassMoreFinalElem) DOT DesignatorClassArrayName LBRACKET Expr RBRACKET OptCall
|
(DesignatorClassMoreNotFinal) DesignatorClassMore DOT IDENT OptCall
|
(DesignatorClassMoreNotFinalElem) DesignatorClassMore DOT DesignatorClassArrayName LBRACKET Expr RBRACKET OptCall
;

OptCall ::= DesignatorFuncCall
|
/* epsilon */
;

DesignatorFuncCall ::= LPAREN StackInitialize RPAREN
|
LPAREN StackInitialize ActPars RPAREN
;
Die Aufruflogik der Designer -Funktion ist korrekt, da ich sie an den einfachen Methoden (nicht Klassenmethoden) getestet habe. Ich glaube also, dass das Problem Verschiebung/Reduzierung von Konflikten ist, aber ich kann es nicht lösen. Was soll ich tun?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post