Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/LPC/references b/doc/LPC/references
new file mode 100644
index 0000000..c1d60f0
--- /dev/null
+++ b/doc/LPC/references
@@ -0,0 +1,49 @@
+CONCEPT
+ references
+
+DESCRIPTION
+ Call by reference can be used to have a function that passes
+ more than one value to the caller, without using arrays that
+ have to be unpacked thereinafter.
+ There is nothing special to declare in the calling function,
+ you simply do an assignment to a parameter of the function.
+ The caller has to pass references explicitely; this is done by
+ prefixing an lvalue with '&' .
+ To pass a reference to an element of an array, you have to
+ enclose the indexed lvalue in round brackets.
+
+EXAMPLE
+
+ void assign(mixed destination, mixed source) {
+ destination = source;
+ }
+
+ void extract_number(int destination, string source) {
+ sscanf(source, "%d", destination);
+ }
+
+ void test() {
+ int i;
+ float f;
+ mixed *a;
+
+ extract_number(&i, "42 palantirs");
+ assign(&f, 3.141592653589793);
+ assign(&a, ({ i, f }));
+ assign(&(a[<0..<1]), ({1,2,3,"sink","x","y","x"}));
+ assign(&(a[5][0]), 'w');
+ assign(&(a[5][<1]), 'g');
+ printf("%O", a));
+ }
+
+ ({ /* sizeof() == 9 */
+ 42,
+ 3.14159,
+ 1,
+ 2,
+ 3,
+ "wing",
+ "x",
+ "y",
+ "x"
+ })