This repository contains the source code relevant for the "Implementation of Programming Languages" course at Tübingen University. It is (or will be when finished) an implementation of a simple programming language. More information is available in the API documentation
The object language (the language that we implement here) is a small subset of Scala. Currently:
P ::= | "object" N "extends" N "{" S * "}" |
S ::= | "var" N "=" E ";" |
| | N "=" E ";" |
| | "print" "(" E ")" ";" |
| | "while" "(" E ")" "{" S * "}" |
| | "if" "(" E ")" "{" S * "}" |
| | "if" "(" E ")" "{" S * "}" "else" "{" S * "}" |
| | "{" S * "}" |
E ::= | N |
| | L |
| | E "+" E |
| | E "-" E |
| | E "*" E |
N ::= | variable names |
L ::= | integer literals |