ALG: Logo2Java
Im Fach Allgemeine Informatik an der HTI Bern hatten wir als Aufgabe, eine Logo2Java-Parser zu bauen. Dazu solle mit dem Compiler Compiler (kein Schreibfehler!) JavaCC aus einem Logo- ein Java-Programm erstellt werden.
Als Ausgangslage haben wir folgende (vereinfachte) Definition der Sprache Logo in EBNF-Form:
-
-
-
| “FD” NExpr | “BK” NExpr | “LT” NExpr | “RT” NExpr
-
| Identifier { NExpr }
-
-
NExpr = NTerm { ( “+” | “-” ) NTerm }
-
-
NTerm = NFactor { ( “*” | “/” ) NFactor }
-
-
-
BExpr = BTerm { “OR” BTerm }
-
-
BTerm = BFactor { “AND” BFactor }
-
-
BFactor = “TRUE” | “FALSE” | “NOT” “(” BExpr “)”
-
| NExpr ( “==” | “!=” | “< “ | “>” | “< =” | “>=” ) NExpr
-
-
Comments start with “#” with scope until the newline
-
-
Numbers are real numbers
-
-
Identifiers start with a letter followed by letters or digits
-
-
Parameters are “:” followed by Identifier
-
-
Identifiers, parameters, keywords in uppercase only
Hier ein besonders schönes Resultat eines Logo-Programmes:
![]()
Hier unsere Beschreibung
Dokumentation (PDF)
Dokumentation (OpenOffice 2.0)
Download: Logo.jj Version 1.0, Build 20060215