]> ruin.nu Git - proglang.git/blobdiff - documentation
better semantics and show div by zero errors earlier
[proglang.git] / documentation
index 9127c08827fa09ed2efd4644569d43d8c73e3bfc..196220aa96faa3596dea5c7a9fd1ebf33d76b275 100644 (file)
@@ -72,7 +72,7 @@ Evaluate the arguments in order, find function definition, remove the old variab
 
 [SReturn]
 
 
 [SReturn]
 
-<return e,c> <= <e,c> => <v,c'>, c'[ret->v], STOP
+<return e,c> => c'[ret->v] <= <e,c> => <v,c'>
 
 Evaluate the expression, add the value as return value to the state and stop the execution of the state
 
 
 Evaluate the expression, add the value as return value to the state and stop the execution of the state
 
@@ -87,3 +87,15 @@ Adds the function i with parameters ds and body ss to the context
 <fs ss, c> => c'' <= c[fs] => c', <ss,c'> => c''
 
 Add all the function to the context and execute the statements in this context
 <fs ss, c> => c'' <= c[fs] => c', <ss,c'> => c''
 
 Add all the function to the context and execute the statements in this context
+
+[SEQ]
+
+<s1;s2,c> => c' <= <s1,c> => c', c'(ret)
+
+If the context returned by s1 contains a return-value, return this context without executing the next statement.
+
+[SWhile]
+
+<while e s,c> => c''' => <e,c> => <true,c'> push(c') => c'' <s,c''> => c''', c'''(ret)
+
+If the context returned by the body contains a return-value, return this context and don't try to run the loop again.