-% Inform in four minutes
+o% Inform in four minutes
% Roger Firth <roger@firthworks.com>
A quick reference to the Inform programming language.
can include special values including:
------------- ------------------------------------
- \^ newline
- \~ quote (")
+ ^ newline
+ ~ quote (")
@@64 at sign "@"
@@92 backslash ""
- @@94 circumflex "\^"
- @@126 tilde "\~"
- @\`a a with a grave accent "`à`", et al
+ @@94 circumflex "^"
+ @@126 tilde "~"
+ @`a a with a grave accent "`à`", et al
@LL pound sign "£", et al
@00 ... @31 low string 0..31
------------- ------------------------------------
---------- ---------------------------------------------
*p + q* addition
*p - q* subtraction
- *p * q\* multiplication
+ *p * q* multiplication
*p / q* integer division
*p % q* remainder
*p++* increments *p*, evaluates to original value
*--p* decrements *p*, evaluates to new value
*p & q* bitwise AND
*p | q* bitwise OR
- *\~p* bitwise NOT (inversion)
+ *~p* bitwise NOT (inversion)
---------- ---------------------------------------------
Conditional expressions return `true` (1) or `false` (0); *q* may be a
---------------- ----------------------------------------
*p == q* *p* is equal to *q*
- *p \~= q* *p* isn't equal to *q*
+ *p ~= q* *p* isn't equal to *q*
*p* > *q* *p* is greater than *q*
*p < q* *p* is less than *q*
*p >= q* *p* is greater than or equal to *q*
-------- ----------------------------------
p && q both p and q are true (non-zero)
p || q either p or q is true (non-zero)
- \~\~p p is false (zero)
+ ~~p p is false (zero)
-------- ----------------------------------
To return -1, 0 or 1 based on unsigned comparison:
Objects (for **property** variables) and Routines (for **local**
variables).
-## Classes and Objects
+Classes and Objects
+-------------------
To declare a *class* - a template for a family of objects -
where the optional (*N*) limits instances created at run-time:
A property variable inherited from an object's class is
addressed by *object.class::property*; this gives the
-original value prior to any changes within the object.
\ No newline at end of file
+original value prior to any changes within the object.
+
+Manipulating the object tree
+----------------------------
+
+To change object relationships at run-time:
+
+ move object to parent_object ;
+ remove object ;
+
+To return the parent of an object (or nothing):
+
+ parent(object)
+
+To return the first child of an object (or nothing):
+
+ child(object)
+
+To return the adjacent child of an object's parent (or nothing):
+
+ sibling(object)
+
+To return the number of child objects directly below an object:
+
+ children(object)
+
+Message passing
+---------------
+
+To a class:
+
+ class.remaining()
+ class.create()
+ class.destroy(object)
+ class.recreate(object)
+ class.copy(to_object,from_object)
+
+To an object:
+
+ object.property(a1,a2, ... a7)
+
+To a routine:
+
+ routine.call(a1,a2, ... a7)
+
+To a string:
+
+ string.print()
+ string.print_to_array(array)
\ No newline at end of file