diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -0,0 +1,37 @@ +# Elna programming language + +Elna compiles simple mathematical operations to machine code. +The compiled program returns the result of the operation. + +## File extension + +.elna + +## Grammar PL/0 + +program = block "." ; + +block = [ "const" ident "=" number {"," ident "=" number} ";"] + [ "var" ident {"," ident} ";"] + { "procedure" ident ";" block ";" } statement ; + +statement = [ ident ":=" expression | "call" ident + | "?" ident | "!" expression + | "begin" statement {";" statement } "end" + | "if" condition "then" statement + | "while" condition "do" statement ]; + +condition = "odd" expression | + expression ("="|"#"|"<"|"<="|">"|">=") expression ; + +expression = [ "+"|"-"] term { ("+"|"-") term}; + +term = factor {("*"|"/") factor}; + +factor = ident | number | "(" expression ")"; + +## Operations + +"!" - Write a line. +"?" - Read user input. +"odd" - The only function, returns whether a number is odd. |
