Elna programming language compiles simple mathematical operations to RISC-V code.
lib/Language/Elna | ||
src | ||
tests | ||
.gitignore | ||
elna.cabal | ||
LICENSE | ||
README | ||
TODO |
# 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.