# Sil A compiler for the simple imperative language sil. This compiler is written in [Clean][clean] and compiles to [ABC-assembly][abc], which can be used to generate actual machine code using Clean's code generator or can be interpreted with the [ABCMachine][abc-github] project. ## Grammar ``` ::= -list ::= '(' -clist ')' '{' '}' ::= -list -list ::= -clist ';' ::= [ ':='] ';' | 'return' [] ';' | 'if' '(' ')' '{' '}' ['else' 'if' '(' ')' '{' '}']-list ['else' '{' '}'] | 'while' '(' ')' '{' '}' | '|~' ::= | | '(' -clist ')' | | | '(' ')' ::= '~' | '!' ::= '+' | '-' | '*' | '/' | '%' | '==' | '||' | '&&' ::= 'Bool' | 'Int' | 'Void' ::= | ``` ## Author & License Copyright © 2017 [Camil Staps][cs]. Licensed under MIT, see the `LICENSE` file. [abc]: https://en.wikipedia.org/wiki/Clean_%28programming_language%29#The_ABC-Machine [abc-github]: https://github.com/camilstaps/ABCMachine [clean]: http://clean.cs.ru.nl [cs]: https://camilstaps.nl