From 64034cafa2d192f59f4890a67896c5b311cbf84f Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 19 Jul 2017 12:02:22 +0000 Subject: Add readme and license --- LICENSE | 21 +++++++++++++++++++++ README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7e05365 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Camil Staps + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..94cba01 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# 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' '{' '}'] ';' + | '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 -- cgit v1.2.3