Petit programming language and compiler
Petit is an educational programming language for learning compilers. Here's an example:
factorial(integer n) =
if n then n * factorial(n-1) else 1
- Tutorial I: Lexical analysis
- Tutorial II: Advanced lex features
- Tutorial III: Syntactic analysis
- Tutorial IV: Abstract syntax
- Tutorial V: Semantic analysis
- Tutorial VI: Code generation
- Solutions for most exercises
program: functions
functions: function
| functions function
function: IDENTIFIER '(' parameters ')' '=' expression
parameters: parameter
| parameters ',' parameter
parameter: INTEGER IDENTIFIER
| DOUBLE IDENTIFIER
arguments: expression
| arguments ',' expression
expression: IDENTIFIER
| NATURAL
| DECIMAL
| IDENTIFIER '(' arguments ')'
| IF expression THEN expression ELSE expression
| expression '+' expression
| expression '-' expression
| expression '*' expression
| expression '/' expression
| '(' expression ')'