X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_nodes.nit b/src/parser/parser_nodes.nit index bcbacb3..92dbea0 100644 --- a/src/parser/parser_nodes.nit +++ b/src/parser/parser_nodes.nit @@ -22,7 +22,7 @@ private import console # Root of the AST class-hierarchy abstract class ANode - # Location is set during AST building. Once built, location cannon be null. + # Location is set during AST building. Once built, location can not be null. # However, manual instantiated nodes may need more care. var location: Location is writable, noinit @@ -534,11 +534,16 @@ class TKwinterface super TokenKeyword end -# The keywords `enum` ane `universal` +# The keywords `enum` and `universal` class TKwenum super TokenKeyword end +# The keyword `subset` +class TKwsubset + super TokenKeyword +end + # The keyword `end` class TKwend super TokenKeyword @@ -978,6 +983,11 @@ class TStarship super TokenOperator end +# The operator `?` +class TQuest + super TokenOperator +end + # The operator `!` class TBang super TokenOperator @@ -1073,6 +1083,11 @@ class TBadString end end +# A malformed triple quoted string +class TBadTString + super TBadString +end + # A malformed char class TBadChar super Token @@ -1087,6 +1102,15 @@ class TExternCodeSegment super Token end +# A malformed extern code block +class TBadExtern + super Token + redef fun to_s + do + do return "malformed extern segment {text}" + end +end + # A end of file class EOF super Token @@ -1314,6 +1338,18 @@ class AExternClasskind var n_kwclass: nullable TKwclass = null is writable end +class ASubsetClasskind + super AClasskind + + # The `subset` keyword. + var n_kwsubset: TKwsubset is writable, noinit + + redef fun visit_all(v) do + # TODO: Remove this redefinition once generated from the grammar. + v.enter_visit(n_kwsubset) + end +end + # The definition of a formal generic parameter type. eg `X: Y` class AFormaldef super Prod @@ -1375,6 +1411,9 @@ class AMethPropdef # The `init` keyword, if any var n_kwinit: nullable TKwinit = null is writable + # The `isa` keyword, if any + var n_kwisa: nullable TKwisa = null is writable + # The `new` keyword, if any var n_kwnew: nullable TKwnew = null is writable @@ -2716,6 +2755,17 @@ class AVarargExpr var n_dotdotdot: TDotdotdot is writable, noinit end +# A receiver with a `?` suffix used in safe call operator. +class ASafeExpr + super AExpr + + # The expression made safe + var n_expr: AExpr is writable, noinit + + # The `?` symbol + var n_quest: TQuest is writable, noinit +end + # An named notation used to pass an expression by name in a parameter class ANamedargExpr super AExpr @@ -3023,7 +3073,8 @@ abstract class AAtid super Prod # The identifier of the annotation. - # Can be a TId of a keyword + # + # Can be a TId or a keyword. var n_id: Token is writable, noinit end