Add File structure
[inform-resources.git] / informqr / informqr.md
index 058630dbe2ed342671fdc9a8d51c6a155b097303..6043d8d6c399592da856d6db01d92ecec23f575b 100644 (file)
@@ -348,7 +348,7 @@ A routine **embedded** as the value of an object property:
             statement;
             ]
 
-Routines return a single value, when execution reaches the final "\]"
+Routines return a single value, when execution reaches the final "]"
 or an explicit return statement:
 
     return expr;
@@ -582,8 +582,8 @@ current routine:
 Other useful directives
 -----------------------
 
-To include a directive within a routine definition \[...\], insert a
-hash "\#" as its first character.
+To include a directive within a routine definition [...], insert a
+hash "#" as its first character.
 
 To conditionally compile:
 
@@ -641,4 +641,39 @@ You're unlikely to need these; look them up if necessary.
     Import variable variable ... variable;
     Link "compiled_file";
     Switches list_of_compiler_switches;
-    System_file;
\ No newline at end of file
+    System_file;
+
+File structure
+--------------
+
+A minimal source file:
+
+    Constant Story "MYGAME";
+    Constant Headline "^My first Inform game.^";
+    Constant MANUAL_PRONOUNS;
+
+    Include "Parser";
+    Include "VerbLib";
+
+    [ Initialise; location = study; "^Hello!^"; ];
+
+    Class  Room
+     with  description "A bare room."
+      has  light;
+
+    Class  Furniture
+     with  before [; Take,Pull,Push,Pushdir:
+               print_ret (The) self,
+                   " is too heavy for that."; ]
+      has  static supporter;
+
+    Room   study "Your study';
+
+    Furniture "writing desk" study
+     with  name 'writing' 'desk' 'table';
+
+    Object  -> -> axe "rusty axe"
+      with  name 'rusty' 'blunt' 'axe' 'hatchet'
+            description "It seems old and blunt.";
+
+    Include "Grammar";
\ No newline at end of file