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