| ... | @@ -25,6 +25,9 @@ pub const Node = struct { | ... | @@ -25,6 +25,9 @@ pub const Node = struct { |
| 25 | BoolLiteral, | 25 | BoolLiteral, |
| 26 | NullLiteral, | 26 | NullLiteral, |
| 27 | UndefinedLiteral, | 27 | UndefinedLiteral, |
| | 28 | ThisLiteral, |
| | 29 | Unreachable, |
| | 30 | ErrorType, |
| 28 | BuiltinCall, | 31 | BuiltinCall, |
| 29 | Call, | 32 | Call, |
| 30 | LineComment, | 33 | LineComment, |
| ... | @@ -49,6 +52,9 @@ pub const Node = struct { | ... | @@ -49,6 +52,9 @@ pub const Node = struct { |
| 49 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).iterate(index), | 52 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).iterate(index), |
| 50 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).iterate(index), | 53 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).iterate(index), |
| 51 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).iterate(index), | 54 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).iterate(index), |
| | 55 | Id.ThisLiteral => @fieldParentPtr(NodeThisLiteral, "base", base).iterate(index), |
| | 56 | Id.Unreachable => @fieldParentPtr(NodeUnreachable, "base", base).iterate(index), |
| | 57 | Id.ErrorType => @fieldParentPtr(NodeErrorType, "base", base).iterate(index), |
| 52 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).iterate(index), | 58 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).iterate(index), |
| 53 | Id.Call => @fieldParentPtr(NodeCall, "base", base).iterate(index), | 59 | Id.Call => @fieldParentPtr(NodeCall, "base", base).iterate(index), |
| 54 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).iterate(index), | 60 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).iterate(index), |
| ... | @@ -74,6 +80,9 @@ pub const Node = struct { | ... | @@ -74,6 +80,9 @@ pub const Node = struct { |
| 74 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).firstToken(), | 80 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).firstToken(), |
| 75 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).firstToken(), | 81 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).firstToken(), |
| 76 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).firstToken(), | 82 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).firstToken(), |
| | 83 | Id.Unreachable => @fieldParentPtr(NodeUnreachable, "base", base).firstToken(), |
| | 84 | Id.ThisLiteral => @fieldParentPtr(NodeThisLiteral, "base", base).firstToken(), |
| | 85 | Id.ErrorType => @fieldParentPtr(NodeErrorType, "base", base).firstToken(), |
| 77 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).firstToken(), | 86 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).firstToken(), |
| 78 | Id.Call => @fieldParentPtr(NodeCall, "base", base).firstToken(), | 87 | Id.Call => @fieldParentPtr(NodeCall, "base", base).firstToken(), |
| 79 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).firstToken(), | 88 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).firstToken(), |
| ... | @@ -99,6 +108,9 @@ pub const Node = struct { | ... | @@ -99,6 +108,9 @@ pub const Node = struct { |
| 99 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).lastToken(), | 108 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).lastToken(), |
| 100 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).lastToken(), | 109 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).lastToken(), |
| 101 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).lastToken(), | 110 | Id.UndefinedLiteral => @fieldParentPtr(NodeUndefinedLiteral, "base", base).lastToken(), |
| | 111 | Id.ThisLiteral => @fieldParentPtr(NodeThisLiteral, "base", base).lastToken(), |
| | 112 | Id.Unreachable => @fieldParentPtr(NodeUnreachable, "base", base).lastToken(), |
| | 113 | Id.ErrorType => @fieldParentPtr(NodeErrorType, "base", base).lastToken(), |
| 102 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).lastToken(), | 114 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).lastToken(), |
| 103 | Id.Call => @fieldParentPtr(NodeCall, "base", base).lastToken(), | 115 | Id.Call => @fieldParentPtr(NodeCall, "base", base).lastToken(), |
| 104 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).lastToken(), | 116 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).lastToken(), |
| ... | @@ -688,6 +700,57 @@ pub const NodeUndefinedLiteral = struct { | ... | @@ -688,6 +700,57 @@ pub const NodeUndefinedLiteral = struct { |
| 688 | } | 700 | } |
| 689 | }; | 701 | }; |
| 690 | | 702 | |
| | 703 | pub const NodeThisLiteral = struct { |
| | 704 | base: Node, |
| | 705 | token: Token, |
| | 706 | |
| | 707 | pub fn iterate(self: &NodeThisLiteral, index: usize) ?&Node { |
| | 708 | return null; |
| | 709 | } |
| | 710 | |
| | 711 | pub fn firstToken(self: &NodeThisLiteral) Token { |
| | 712 | return self.token; |
| | 713 | } |
| | 714 | |
| | 715 | pub fn lastToken(self: &NodeThisLiteral) Token { |
| | 716 | return self.token; |
| | 717 | } |
| | 718 | }; |
| | 719 | |
| | 720 | pub const NodeUnreachable = struct { |
| | 721 | base: Node, |
| | 722 | token: Token, |
| | 723 | |
| | 724 | pub fn iterate(self: &NodeUnreachable, index: usize) ?&Node { |
| | 725 | return null; |
| | 726 | } |
| | 727 | |
| | 728 | pub fn firstToken(self: &NodeUnreachable) Token { |
| | 729 | return self.token; |
| | 730 | } |
| | 731 | |
| | 732 | pub fn lastToken(self: &NodeUnreachable) Token { |
| | 733 | return self.token; |
| | 734 | } |
| | 735 | }; |
| | 736 | |
| | 737 | pub const NodeErrorType = struct { |
| | 738 | base: Node, |
| | 739 | token: Token, |
| | 740 | |
| | 741 | pub fn iterate(self: &NodeErrorType, index: usize) ?&Node { |
| | 742 | return null; |
| | 743 | } |
| | 744 | |
| | 745 | pub fn firstToken(self: &NodeErrorType) Token { |
| | 746 | return self.token; |
| | 747 | } |
| | 748 | |
| | 749 | pub fn lastToken(self: &NodeErrorType) Token { |
| | 750 | return self.token; |
| | 751 | } |
| | 752 | }; |
| | 753 | |
| 691 | pub const NodeLineComment = struct { | 754 | pub const NodeLineComment = struct { |
| 692 | base: Node, | 755 | base: Node, |
| 693 | lines: ArrayList(Token), | 756 | lines: ArrayList(Token), |