syntax: add 'loop' construction
[nit.git] / src / parser / parser_nodes.nit
index 36c5ceb..573c12a 100644 (file)
@@ -19,7 +19,7 @@
 # Was previously based on parser_abs.nit.
 package parser_nodes
 
-import mmloader
+import location
 
 # Root of the AST hierarchy
 abstract class ANode
@@ -75,9 +75,6 @@ end
 class TKwtype
 special Token
 end
-class TKwattr
-special Token
-end
 class TKwinit
 special Token
 end
@@ -126,6 +123,9 @@ end
 class TKwwhile
 special Token
 end
+class TKwloop
+special Token
+end
 class TKwfor
 special Token
 end
@@ -183,9 +183,6 @@ end
 class TKwas
 special Token
 end
-class TKwwith
-special Token
-end
 class TKwnullable
 special Token
 end
@@ -270,6 +267,9 @@ end
 class TStarship
 special Token
 end
+class TBang
+special Token
+end
 class TClassid
 special Token
 end
@@ -405,8 +405,7 @@ class AAttrPropdef
 special APropdef
     readable writable var _n_kwredef: nullable TKwredef = null
     readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwattr: nullable TKwattr = null
-    readable writable var _n_kwvar: nullable TKwvar = null
+    readable writable var _n_kwvar: TKwvar
     readable writable var _n_id: TAttrid
     readable writable var _n_type: nullable AType = null
     readable writable var _n_readable: nullable AAble = null
@@ -547,8 +546,8 @@ special Prod
 end
 class AClosureDecl
 special Prod
-    readable writable var _n_kwwith: TKwwith
     readable writable var _n_kwbreak: nullable TKwbreak = null
+    readable writable var _n_bang: TBang
     readable writable var _n_id: TId
     readable writable var _n_signature: ASignature
     readable writable var _n_expr: nullable AExpr = null
@@ -579,7 +578,7 @@ special AExpr
 end
 class AReturnExpr
 special AExpr
-    readable writable var _n_kwreturn: TKwreturn
+    readable writable var _n_kwreturn: nullable TKwreturn = null
     readable writable var _n_expr: nullable AExpr = null
 end
 class ALabelable
@@ -599,7 +598,7 @@ end
 class AContinueExpr
 special AExpr
 special ALabelable
-    readable writable var _n_kwcontinue: TKwcontinue
+    readable writable var _n_kwcontinue: nullable TKwcontinue = null
     readable writable var _n_expr: nullable AExpr = null
 end
 class ADoExpr
@@ -632,6 +631,12 @@ special ALabelable
     readable writable var _n_kwdo: TKwdo
     readable writable var _n_block: nullable AExpr = null
 end
+class ALoopExpr
+special AExpr
+special ALabelable
+    readable writable var _n_kwloop: TKwloop
+    readable writable var _n_block: nullable AExpr = null
+end
 class AForExpr
 special AExpr
 special ALabelable
@@ -930,11 +935,23 @@ special AAssignOp
 end
 class AClosureDef
 special ALabelable
-    readable writable var _n_kwwith: TKwwith
-    readable writable var _n_id: List[TId] = new List[TId]
-    readable writable var _n_kwdo: TKwdo
+    readable writable var _n_bang: TBang
+    readable writable var _n_id: AClosureId
+    readable writable var _n_ids: List[TId] = new List[TId]
+    readable writable var _n_kwdo: nullable TKwdo = null
     readable writable var _n_expr: nullable AExpr = null
 end
+class AClosureId
+special Prod
+end
+class ASimpleClosureId
+special AClosureId
+    readable writable var _n_id: TId
+end
+class ABreakClosureId
+special AClosureId
+    readable writable var _n_kwbreak: TKwbreak
+end
 class AQualified
 special Prod
     readable writable var _n_id: List[TId] = new List[TId]