Hallo. Ich muß ein Parser basteln der die Verschachtelungstiefe der Kommentare erkennt.
z.B:
Parser-Code:
Die Grammatik stimmt soweit.
Meine Frage bezieht sich darauf, wie ich das denn nu berechne. Also die Sachen mit RESULT. Ich komm da nie auf die richtigen Ergenisse.
Vielen Dank
z.B:
Code:
/**/ = Tiefe 1
/*/**/*/ = Tiefe 2
...
Java:
import java_cup.runtime.*;
/* Terminalsymbole */
terminal START, END;
terminal BORDER;
terminal CHAR;
/* Nichtterminalsymbole */
non terminal begin;
non terminal Integer comment;
non terminal Integer content;
non terminal folge;
/* Produktionen */
start with begin;
begin ::= folge;
folge ::= folge comment:a {: System.out.println("Ok; max. Tiefe des Kommentars: "+a); :} BORDER
|
comment:a {: System.out.println("Ok; max. Tiefe des Kommentars: "+a); :} BORDER
|
error BORDER;
comment ::= START content:a END {:RESULT = a; :} ;
content ::= content:a comment {:RESULT = a+1; :}
|
content:a CHAR {:RESULT = a; :}
|
{:RESULT = 1; :};
Meine Frage bezieht sich darauf, wie ich das denn nu berechne. Also die Sachen mit RESULT. Ich komm da nie auf die richtigen Ergenisse.
Vielen Dank