Anmerkungen

Werbung
Automaten und formale Sprachen
Bemerkungen zu den Folien
15
Erzeugen eines Parsers mit JavaCC
Zu Folien 299–300
In der Praxis wird einen anderen Syntax verwendet (Nichtterminale werden in Spitzenklammern
eingeschlossen, Terminale in Anführungszeichen und statt →“ wird ::=“ oder =“ geschrieben);
”
”
”
wir benutzen heute aber den Syntax, den wir im Rest der Vorlesung schon benutzt haben.
Zu Folie 301
Beispiele von Ausdrücke, die von der EBNF-Grammatik akzeptiert werden:
(2+5)/2
((2+5)/2)*34
Zu Folie 302
JavaCC erzeugt eine Klasse, die den Parser implementiert. Name ist der Name der zu erzeugenden
Klasse.
JavaCC anrufen
In UNIX-ähnliche Betriebssysteme (Linux, Mac OS X, . . . ):
$javacc Arith.jj
Java Compiler Compiler Version 5.0 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file Arith.jj . . .
File "TokenMgrError.java" does not exist. Will create one.
File "ParseException.java" does not exist. Will create one.
File "Token.java" does not exist. Will create one.
File "SimpleCharStream.java" does not exist. Will create one.
Parser generated successfully.
$javac Arith.java
$java Arith
(2+5)/2
(Eingabe-Ende wird angegeben mit Strg-D.)
In der Windows Kommandozeile:
F:\Parser\>javacc Arith.jj
Java Compiler Compiler Version 5.0 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file Arith.jj . . .
File "TokenMgrError.java" does not exist. Will create one.
File "ParseException.java" does not exist. Will create one.
File "Token.java" does not exist. Will create one.
File "SimpleCharStream.java" does not exist. Will create one.
Parser generated successfully.
1
F:\Parser\>javac Arith.java
F:\Parser\>java Arith
(2+5)/2
(Eingabe-Ende wird angegeben mit Strg-Z.)
2
Herunterladen