| ... | ... | @@ -25,6 +25,9 @@ pub const Node = struct { |
| 25 | 25 | BoolLiteral, |
| 26 | 26 | NullLiteral, |
| 27 | 27 | UndefinedLiteral, |
| 28 | ThisLiteral, |
| 29 | Unreachable, |
| 30 | ErrorType, |
| 28 | 31 | BuiltinCall, |
| 29 | 32 | Call, |
| 30 | 33 | LineComment, |
| ... | ... | @@ -49,6 +52,9 @@ pub const Node = struct { |
| 49 | 52 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).iterate(index), |
| 50 | 53 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).iterate(index), |
| 51 | 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 | 58 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).iterate(index), |
| 53 | 59 | Id.Call => @fieldParentPtr(NodeCall, "base", base).iterate(index), |
| 54 | 60 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).iterate(index), |
| ... | ... | @@ -74,6 +80,9 @@ pub const Node = struct { |
| 74 | 80 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).firstToken(), |
| 75 | 81 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).firstToken(), |
| 76 | 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 | 86 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).firstToken(), |
| 78 | 87 | Id.Call => @fieldParentPtr(NodeCall, "base", base).firstToken(), |
| 79 | 88 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).firstToken(), |
| ... | ... | @@ -99,6 +108,9 @@ pub const Node = struct { |
| 99 | 108 | Id.BoolLiteral => @fieldParentPtr(NodeBoolLiteral, "base", base).lastToken(), |
| 100 | 109 | Id.NullLiteral => @fieldParentPtr(NodeNullLiteral, "base", base).lastToken(), |
| 101 | 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 | 114 | Id.BuiltinCall => @fieldParentPtr(NodeBuiltinCall, "base", base).lastToken(), |
| 103 | 115 | Id.Call => @fieldParentPtr(NodeCall, "base", base).lastToken(), |
| 104 | 116 | Id.LineComment => @fieldParentPtr(NodeLineComment, "base", base).lastToken(), |
| ... | ... | @@ -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 | 754 | pub const NodeLineComment = struct { |
| 692 | 755 | base: Node, |
| 693 | 756 | lines: ArrayList(Token), |