diff --git a/diagrams/effect.png b/diagrams/effect.png index 7c27035..7ca6176 100644 Binary files a/diagrams/effect.png and b/diagrams/effect.png differ diff --git a/diagrams/hop.png b/diagrams/hop.png new file mode 100644 index 0000000..0f77c69 Binary files /dev/null and b/diagrams/hop.png differ diff --git a/index.html b/index.html index 8bc682e..339053f 100644 --- a/index.html +++ b/index.html @@ -673,7 +673,7 @@

effect

-	                effect ::= act | set | def | run | use | pop
+	                effect ::= act | set | def | run | use | pop | hop
                 
@@ -682,6 +682,27 @@

effect

+
+

hop

+

+ A hop statement specifies an ancestry return point from the current node. Recall that DMPL follows a + natural tree-like structure, the ancestors mentioned here refer to the parent, grandparent, etc. of the + current node. +

+
+
+                    hop ::= '"hop"' ':' digit
+                
+
+
+ Hop railroad diagram +
Hop
+
+
+                "@hop": 3
+            
+
+

act

@@ -754,6 +775,11 @@

def

When an operator is called, def and set statements inside the body of the operator will only create local symbols that shadow symbols in the enclosing scope.

+

+ Note that in order to enforce pure custom operator's in DMPL, statements with + side effects such as act and run are not recommended within the body of a user defined + custom operator. +

 	                def ::= '"@def"' ':' expression ',' '"val"' ':' statement