Adding some initial documentation
[substrate.git] / documentation / zil.md
diff --git a/documentation/zil.md b/documentation/zil.md
new file mode 100644 (file)
index 0000000..c2caf8f
--- /dev/null
@@ -0,0 +1,38 @@
+# Zork Implentation Language
+This document covers the Zork Implementation Language, as originally 
+developed and used by Infocom for their games.
+
+## Format
+This document is written using CommonMark, a markup language. More 
+information about CommonMark can be found at <http://commonmark.org>.
+
+## Copyright And Licensing
+Permission is granted to copy, distribute and/or modify this document 
+under the terms of the GNU Affero General Public License as published 
+by the Free Software Foundation ("FSF"), either version 3 of the 
+License, or (at your option) any later version published by the FSF.
+
+You should have received a copy of the GNU Affero General Public 
+License along with this document. If not see 
+<https://gnu.org/licenses/>.
+
+## Definitions
+
+A "definition" is used to describe a room, object, routine, etc. in or 
+used by the game. Each definition consists of a number of properties, 
+flags, and/or instructions. A program written in ZIL can be thought of 
+as consisting of one or more of these definitions. Definitions, 
+properties, flags, and instructions include brackets which must be 
+correctly paired and nested.
+
+## Syntax Definitions
+Syntax definitions are used by the parser to determine valid sentence 
+structures.
+
+A simple example might be:
+
+    <syntax xyzzy = v-magic>
+
+Using this example, should the parser match the player's input to 
+"xyzzy" then the PRSA is set to magic. PRSI and PRSO would be set to 
+false.