Browse Source

Add parser files

master
champii 1 year ago
parent
commit
66747eccfd
11 changed files with 20686 additions and 5 deletions
  1. 1
    5
      .gitignore
  2. 287
    0
      parser/Og.interp
  3. 153
    0
      parser/Og.tokens
  4. 293
    0
      parser/OgLexer.interp
  5. 153
    0
      parser/OgLexer.tokens
  6. 668
    0
      parser/og_base_listener.go
  7. 785
    0
      parser/og_base_visitor.go
  8. 656
    0
      parser/og_lexer.go
  9. 658
    0
      parser/og_listener.go
  10. 16697
    0
      parser/og_parser.go
  11. 335
    0
      parser/og_visitor.go

+ 1
- 5
.gitignore View File

@@ -14,9 +14,5 @@
14 14
 ./og
15 15
 .antlr
16 16
 .vscode
17
-parser/*.go
18
-parser/Og.interp
19
-parser/Og.tokens
20
-parser/OgLexer*
21 17
 src/**/*.go
22
-tests/exemples/*.go
18
+tests/exemples/*.go

+ 287
- 0
parser/Og.interp
File diff suppressed because it is too large
View File


+ 153
- 0
parser/Og.tokens View File

@@ -0,0 +1,153 @@
1
+T__0=1
2
+T__1=2
3
+T__2=3
4
+T__3=4
5
+T__4=5
6
+T__5=6
7
+T__6=7
8
+T__7=8
9
+T__8=9
10
+T__9=10
11
+T__10=11
12
+T__11=12
13
+T__12=13
14
+T__13=14
15
+T__14=15
16
+T__15=16
17
+T__16=17
18
+T__17=18
19
+T__18=19
20
+T__19=20
21
+T__20=21
22
+T__21=22
23
+T__22=23
24
+T__23=24
25
+T__24=25
26
+T__25=26
27
+T__26=27
28
+T__27=28
29
+T__28=29
30
+T__29=30
31
+T__30=31
32
+T__31=32
33
+T__32=33
34
+T__33=34
35
+T__34=35
36
+T__35=36
37
+T__36=37
38
+T__37=38
39
+T__38=39
40
+T__39=40
41
+T__40=41
42
+T__41=42
43
+T__42=43
44
+T__43=44
45
+T__44=45
46
+T__45=46
47
+T__46=47
48
+T__47=48
49
+T__48=49
50
+T__49=50
51
+T__50=51
52
+T__51=52
53
+T__52=53
54
+T__53=54
55
+T__54=55
56
+T__55=56
57
+T__56=57
58
+T__57=58
59
+T__58=59
60
+T__59=60
61
+T__60=61
62
+T__61=62
63
+T__62=63
64
+T__63=64
65
+T__64=65
66
+T__65=66
67
+T__66=67
68
+T__67=68
69
+IDENTIFIER=69
70
+KEYWORD=70
71
+BINARY_OP=71
72
+FUNC=72
73
+INT_LIT=73
74
+FLOAT_LIT=74
75
+IMAGINARY_LIT=75
76
+RUNE_LIT=76
77
+LITTLE_U_VALUE=77
78
+BIG_U_VALUE=78
79
+STRING_LIT=79
80
+WS=80
81
+COMMENT=81
82
+LINE_COMMENT=82
83
+TERMINATOR=83
84
+ErrorChar=84
85
+'package'=1
86
+'!'=2
87
+'import'=3
88
+'('=4
89
+')'=5
90
+'{'=6
91
+'}'=7
92
+':'=8
93
+'.'=9
94
+'const'=10
95
+'='=11
96
+'_'=12
97
+','=13
98
+'type'=14
99
+'::'=15
100
+'*'=16
101
+'var'=17
102
+'<-'=18
103
+'++'=19
104
+'--'=20
105
+'+'=21
106
+'-'=22
107
+'|'=23
108
+'^'=24
109
+'/'=25
110
+'%'=26
111
+'<<'=27
112
+'>>'=28
113
+'&'=29
114
+'&^'=30
115
+':='=31
116
+';'=32
117
+'~'=33
118
+'return'=34
119
+'break'=35
120
+'continue'=36
121
+'goto'=37
122
+'fallthrough'=38
123
+'defer'=39
124
+'if'=40
125
+'=>'=41
126
+'else'=42
127
+'switch'=43
128
+'select'=44
129
+'for'=45
130
+'in'=46
131
+'go'=47
132
+'['=48
133
+']'=49
134
+'interface'=50
135
+'map'=51
136
+'chan'=52
137
+'fn'=53
138
+'<'=54
139
+'>'=55
140
+'...'=56
141
+'true'=57
142
+'false'=58
143
+'nil'=59
144
+'@'=60
145
+'struct'=61
146
+'class'=62
147
+'||'=63
148
+'&&'=64
149
+'=='=65
150
+'!='=66
151
+'<='=67
152
+'>='=68
153
+'->'=72

+ 293
- 0
parser/OgLexer.interp
File diff suppressed because it is too large
View File


+ 153
- 0
parser/OgLexer.tokens View File

@@ -0,0 +1,153 @@
1
+T__0=1
2
+T__1=2
3
+T__2=3
4
+T__3=4
5
+T__4=5
6
+T__5=6
7
+T__6=7
8
+T__7=8
9
+T__8=9
10
+T__9=10
11
+T__10=11
12
+T__11=12
13
+T__12=13
14
+T__13=14
15
+T__14=15
16
+T__15=16
17
+T__16=17
18
+T__17=18
19
+T__18=19
20
+T__19=20
21
+T__20=21
22
+T__21=22
23
+T__22=23
24
+T__23=24
25
+T__24=25
26
+T__25=26
27
+T__26=27
28
+T__27=28
29
+T__28=29
30
+T__29=30
31
+T__30=31
32
+T__31=32
33
+T__32=33
34
+T__33=34
35
+T__34=35
36
+T__35=36
37
+T__36=37
38
+T__37=38
39
+T__38=39
40
+T__39=40
41
+T__40=41
42
+T__41=42
43
+T__42=43
44
+T__43=44
45
+T__44=45
46
+T__45=46
47
+T__46=47
48
+T__47=48
49
+T__48=49
50
+T__49=50
51
+T__50=51
52
+T__51=52
53
+T__52=53
54
+T__53=54
55
+T__54=55
56
+T__55=56
57
+T__56=57
58
+T__57=58
59
+T__58=59
60
+T__59=60
61
+T__60=61
62
+T__61=62
63
+T__62=63
64
+T__63=64
65
+T__64=65
66
+T__65=66
67
+T__66=67
68
+T__67=68
69
+IDENTIFIER=69
70
+KEYWORD=70
71
+BINARY_OP=71
72
+FUNC=72
73
+INT_LIT=73
74
+FLOAT_LIT=74
75
+IMAGINARY_LIT=75
76
+RUNE_LIT=76
77
+LITTLE_U_VALUE=77
78
+BIG_U_VALUE=78
79
+STRING_LIT=79
80
+WS=80
81
+COMMENT=81
82
+LINE_COMMENT=82
83
+TERMINATOR=83
84
+ErrorChar=84
85
+'package'=1
86
+'!'=2
87
+'import'=3
88
+'('=4
89
+')'=5
90
+'{'=6
91
+'}'=7
92
+':'=8
93
+'.'=9
94
+'const'=10
95
+'='=11
96
+'_'=12
97
+','=13
98
+'type'=14
99
+'::'=15
100
+'*'=16
101
+'var'=17
102
+'<-'=18
103
+'++'=19
104
+'--'=20
105
+'+'=21
106
+'-'=22
107
+'|'=23
108
+'^'=24
109
+'/'=25
110
+'%'=26
111
+'<<'=27
112
+'>>'=28
113
+'&'=29
114
+'&^'=30
115
+':='=31
116
+';'=32
117
+'~'=33
118
+'return'=34
119
+'break'=35
120
+'continue'=36
121
+'goto'=37
122
+'fallthrough'=38
123
+'defer'=39
124
+'if'=40
125
+'=>'=41
126
+'else'=42
127
+'switch'=43
128
+'select'=44
129
+'for'=45
130
+'in'=46
131
+'go'=47
132
+'['=48
133
+']'=49
134
+'interface'=50
135
+'map'=51
136
+'chan'=52
137
+'fn'=53
138
+'<'=54
139
+'>'=55
140
+'...'=56
141
+'true'=57
142
+'false'=58
143
+'nil'=59
144
+'@'=60
145
+'struct'=61
146
+'class'=62
147
+'||'=63
148
+'&&'=64
149
+'=='=65
150
+'!='=66
151
+'<='=67
152
+'>='=68
153
+'->'=72

+ 668
- 0
parser/og_base_listener.go View File

@@ -0,0 +1,668 @@
1
+// Generated from ./parser/Og.g4 by ANTLR 4.7.1.
2
+
3
+package parser // Og
4
+
5
+import "github.com/antlr/antlr4/runtime/Go/antlr"
6
+
7
+// BaseOgListener is a complete listener for a parse tree produced by OgParser.
8
+type BaseOgListener struct{}
9
+
10
+var _ OgListener = &BaseOgListener{}
11
+
12
+// VisitTerminal is called when a terminal node is visited.
13
+func (s *BaseOgListener) VisitTerminal(node antlr.TerminalNode) {}
14
+func (s *BaseOgListener) VisitErrorNode(node antlr.ErrorNode)   {}
15
+
16
+// EnterEveryRule is called when any rule is entered.
17
+func (s *BaseOgListener) EnterEveryRule(ctx antlr.ParserRuleContext) {}
18
+
19
+// ExitEveryRule is called when any rule is exited.
20
+func (s *BaseOgListener) ExitEveryRule(ctx antlr.ParserRuleContext) {}
21
+
22
+// EnterSourceFile is called when production sourceFile is entered.
23
+func (s *BaseOgListener) EnterSourceFile(ctx *SourceFileContext) {}
24
+
25
+// ExitSourceFile is called when production sourceFile is exited.
26
+func (s *BaseOgListener) ExitSourceFile(ctx *SourceFileContext) {}
27
+
28
+// EnterInterp is called when production interp is entered.
29
+func (s *BaseOgListener) EnterInterp(ctx *InterpContext) {}
30
+
31
+// ExitInterp is called when production interp is exited.
32
+func (s *BaseOgListener) ExitInterp(ctx *InterpContext) {}
33
+
34
+// EnterPackageClause is called when production packageClause is entered.
35
+func (s *BaseOgListener) EnterPackageClause(ctx *PackageClauseContext) {}
36
+
37
+// ExitPackageClause is called when production packageClause is exited.
38
+func (s *BaseOgListener) ExitPackageClause(ctx *PackageClauseContext) {}
39
+
40
+// EnterImportDecl is called when production importDecl is entered.
41
+func (s *BaseOgListener) EnterImportDecl(ctx *ImportDeclContext) {}
42
+
43
+// ExitImportDecl is called when production importDecl is exited.
44
+func (s *BaseOgListener) ExitImportDecl(ctx *ImportDeclContext) {}
45
+
46
+// EnterImportBody is called when production importBody is entered.
47
+func (s *BaseOgListener) EnterImportBody(ctx *ImportBodyContext) {}
48
+
49
+// ExitImportBody is called when production importBody is exited.
50
+func (s *BaseOgListener) ExitImportBody(ctx *ImportBodyContext) {}
51
+
52
+// EnterImportSpec is called when production importSpec is entered.
53
+func (s *BaseOgListener) EnterImportSpec(ctx *ImportSpecContext) {}
54
+
55
+// ExitImportSpec is called when production importSpec is exited.
56
+func (s *BaseOgListener) ExitImportSpec(ctx *ImportSpecContext) {}
57
+
58
+// EnterImportPath is called when production importPath is entered.
59
+func (s *BaseOgListener) EnterImportPath(ctx *ImportPathContext) {}
60
+
61
+// ExitImportPath is called when production importPath is exited.
62
+func (s *BaseOgListener) ExitImportPath(ctx *ImportPathContext) {}
63
+
64
+// EnterTopLevelDecl is called when production topLevelDecl is entered.
65
+func (s *BaseOgListener) EnterTopLevelDecl(ctx *TopLevelDeclContext) {}
66
+
67
+// ExitTopLevelDecl is called when production topLevelDecl is exited.
68
+func (s *BaseOgListener) ExitTopLevelDecl(ctx *TopLevelDeclContext) {}
69
+
70
+// EnterDeclaration is called when production declaration is entered.
71
+func (s *BaseOgListener) EnterDeclaration(ctx *DeclarationContext) {}
72
+
73
+// ExitDeclaration is called when production declaration is exited.
74
+func (s *BaseOgListener) ExitDeclaration(ctx *DeclarationContext) {}
75
+
76
+// EnterConstDecl is called when production constDecl is entered.
77
+func (s *BaseOgListener) EnterConstDecl(ctx *ConstDeclContext) {}
78
+
79
+// ExitConstDecl is called when production constDecl is exited.
80
+func (s *BaseOgListener) ExitConstDecl(ctx *ConstDeclContext) {}
81
+
82
+// EnterConstSpec is called when production constSpec is entered.
83
+func (s *BaseOgListener) EnterConstSpec(ctx *ConstSpecContext) {}
84
+
85
+// ExitConstSpec is called when production constSpec is exited.
86
+func (s *BaseOgListener) ExitConstSpec(ctx *ConstSpecContext) {}
87
+
88
+// EnterIdentifierList is called when production identifierList is entered.
89
+func (s *BaseOgListener) EnterIdentifierList(ctx *IdentifierListContext) {}
90
+
91
+// ExitIdentifierList is called when production identifierList is exited.
92
+func (s *BaseOgListener) ExitIdentifierList(ctx *IdentifierListContext) {}
93
+
94
+// EnterExpressionList is called when production expressionList is entered.
95
+func (s *BaseOgListener) EnterExpressionList(ctx *ExpressionListContext) {}
96
+
97
+// ExitExpressionList is called when production expressionList is exited.
98
+func (s *BaseOgListener) ExitExpressionList(ctx *ExpressionListContext) {}
99
+
100
+// EnterTypeDecl is called when production typeDecl is entered.
101
+func (s *BaseOgListener) EnterTypeDecl(ctx *TypeDeclContext) {}
102
+
103
+// ExitTypeDecl is called when production typeDecl is exited.
104
+func (s *BaseOgListener) ExitTypeDecl(ctx *TypeDeclContext) {}
105
+
106
+// EnterTypeSpec is called when production typeSpec is entered.
107
+func (s *BaseOgListener) EnterTypeSpec(ctx *TypeSpecContext) {}
108
+
109
+// ExitTypeSpec is called when production typeSpec is exited.
110
+func (s *BaseOgListener) ExitTypeSpec(ctx *TypeSpecContext) {}
111
+
112
+// EnterFunctionDecl is called when production functionDecl is entered.
113
+func (s *BaseOgListener) EnterFunctionDecl(ctx *FunctionDeclContext) {}
114
+
115
+// ExitFunctionDecl is called when production functionDecl is exited.
116
+func (s *BaseOgListener) ExitFunctionDecl(ctx *FunctionDeclContext) {}
117
+
118
+// EnterFunction is called when production function is entered.
119
+func (s *BaseOgListener) EnterFunction(ctx *FunctionContext) {}
120
+
121
+// ExitFunction is called when production function is exited.
122
+func (s *BaseOgListener) ExitFunction(ctx *FunctionContext) {}
123
+
124
+// EnterMethodDecl is called when production methodDecl is entered.
125
+func (s *BaseOgListener) EnterMethodDecl(ctx *MethodDeclContext) {}
126
+
127
+// ExitMethodDecl is called when production methodDecl is exited.
128
+func (s *BaseOgListener) ExitMethodDecl(ctx *MethodDeclContext) {}
129
+
130
+// EnterReceiver is called when production receiver is entered.
131
+func (s *BaseOgListener) EnterReceiver(ctx *ReceiverContext) {}
132
+
133
+// ExitReceiver is called when production receiver is exited.
134
+func (s *BaseOgListener) ExitReceiver(ctx *ReceiverContext) {}
135
+
136
+// EnterVarDecl is called when production varDecl is entered.
137
+func (s *BaseOgListener) EnterVarDecl(ctx *VarDeclContext) {}
138
+
139
+// ExitVarDecl is called when production varDecl is exited.
140
+func (s *BaseOgListener) ExitVarDecl(ctx *VarDeclContext) {}
141
+
142
+// EnterVarSpec is called when production varSpec is entered.
143
+func (s *BaseOgListener) EnterVarSpec(ctx *VarSpecContext) {}
144
+
145
+// ExitVarSpec is called when production varSpec is exited.
146
+func (s *BaseOgListener) ExitVarSpec(ctx *VarSpecContext) {}
147
+
148
+// EnterBlock is called when production block is entered.
149
+func (s *BaseOgListener) EnterBlock(ctx *BlockContext) {}
150
+
151
+// ExitBlock is called when production block is exited.
152
+func (s *BaseOgListener) ExitBlock(ctx *BlockContext) {}
153
+
154
+// EnterStatementList is called when production statementList is entered.
155
+func (s *BaseOgListener) EnterStatementList(ctx *StatementListContext) {}
156
+
157
+// ExitStatementList is called when production statementList is exited.
158
+func (s *BaseOgListener) ExitStatementList(ctx *StatementListContext) {}
159
+
160
+// EnterStatement is called when production statement is entered.
161
+func (s *BaseOgListener) EnterStatement(ctx *StatementContext) {}
162
+
163
+// ExitStatement is called when production statement is exited.
164
+func (s *BaseOgListener) ExitStatement(ctx *StatementContext) {}
165
+
166
+// EnterSimpleStmt is called when production simpleStmt is entered.
167
+func (s *BaseOgListener) EnterSimpleStmt(ctx *SimpleStmtContext) {}
168
+
169
+// ExitSimpleStmt is called when production simpleStmt is exited.
170
+func (s *BaseOgListener) ExitSimpleStmt(ctx *SimpleStmtContext) {}
171
+
172
+// EnterSendStmt is called when production sendStmt is entered.
173
+func (s *BaseOgListener) EnterSendStmt(ctx *SendStmtContext) {}
174
+
175
+// ExitSendStmt is called when production sendStmt is exited.
176
+func (s *BaseOgListener) ExitSendStmt(ctx *SendStmtContext) {}
177
+
178
+// EnterIncDecStmt is called when production incDecStmt is entered.
179
+func (s *BaseOgListener) EnterIncDecStmt(ctx *IncDecStmtContext) {}
180
+
181
+// ExitIncDecStmt is called when production incDecStmt is exited.
182
+func (s *BaseOgListener) ExitIncDecStmt(ctx *IncDecStmtContext) {}
183
+
184
+// EnterAssignment is called when production assignment is entered.
185
+func (s *BaseOgListener) EnterAssignment(ctx *AssignmentContext) {}
186
+
187
+// ExitAssignment is called when production assignment is exited.
188
+func (s *BaseOgListener) ExitAssignment(ctx *AssignmentContext) {}
189
+
190
+// EnterAssign_op is called when production assign_op is entered.
191
+func (s *BaseOgListener) EnterAssign_op(ctx *Assign_opContext) {}
192
+
193
+// ExitAssign_op is called when production assign_op is exited.
194
+func (s *BaseOgListener) ExitAssign_op(ctx *Assign_opContext) {}
195
+
196
+// EnterShortVarDecl is called when production shortVarDecl is entered.
197
+func (s *BaseOgListener) EnterShortVarDecl(ctx *ShortVarDeclContext) {}
198
+
199
+// ExitShortVarDecl is called when production shortVarDecl is exited.
200
+func (s *BaseOgListener) ExitShortVarDecl(ctx *ShortVarDeclContext) {}
201
+
202
+// EnterEmptyStmt is called when production emptyStmt is entered.
203
+func (s *BaseOgListener) EnterEmptyStmt(ctx *EmptyStmtContext) {}
204
+
205
+// ExitEmptyStmt is called when production emptyStmt is exited.
206
+func (s *BaseOgListener) ExitEmptyStmt(ctx *EmptyStmtContext) {}
207
+
208
+// EnterLabeledStmt is called when production labeledStmt is entered.
209
+func (s *BaseOgListener) EnterLabeledStmt(ctx *LabeledStmtContext) {}
210
+
211
+// ExitLabeledStmt is called when production labeledStmt is exited.
212
+func (s *BaseOgListener) ExitLabeledStmt(ctx *LabeledStmtContext) {}
213
+
214
+// EnterReturnStmt is called when production returnStmt is entered.
215
+func (s *BaseOgListener) EnterReturnStmt(ctx *ReturnStmtContext) {}
216
+
217
+// ExitReturnStmt is called when production returnStmt is exited.
218
+func (s *BaseOgListener) ExitReturnStmt(ctx *ReturnStmtContext) {}
219
+
220
+// EnterBreakStmt is called when production breakStmt is entered.
221
+func (s *BaseOgListener) EnterBreakStmt(ctx *BreakStmtContext) {}
222
+
223
+// ExitBreakStmt is called when production breakStmt is exited.
224
+func (s *BaseOgListener) ExitBreakStmt(ctx *BreakStmtContext) {}
225
+
226
+// EnterContinueStmt is called when production continueStmt is entered.
227
+func (s *BaseOgListener) EnterContinueStmt(ctx *ContinueStmtContext) {}
228
+
229
+// ExitContinueStmt is called when production continueStmt is exited.
230
+func (s *BaseOgListener) ExitContinueStmt(ctx *ContinueStmtContext) {}
231
+
232
+// EnterGotoStmt is called when production gotoStmt is entered.
233
+func (s *BaseOgListener) EnterGotoStmt(ctx *GotoStmtContext) {}
234
+
235
+// ExitGotoStmt is called when production gotoStmt is exited.
236
+func (s *BaseOgListener) ExitGotoStmt(ctx *GotoStmtContext) {}
237
+
238
+// EnterFallthroughStmt is called when production fallthroughStmt is entered.
239
+func (s *BaseOgListener) EnterFallthroughStmt(ctx *FallthroughStmtContext) {}
240
+
241
+// ExitFallthroughStmt is called when production fallthroughStmt is exited.
242
+func (s *BaseOgListener) ExitFallthroughStmt(ctx *FallthroughStmtContext) {}
243
+
244
+// EnterDeferStmt is called when production deferStmt is entered.
245
+func (s *BaseOgListener) EnterDeferStmt(ctx *DeferStmtContext) {}
246
+
247
+// ExitDeferStmt is called when production deferStmt is exited.
248
+func (s *BaseOgListener) ExitDeferStmt(ctx *DeferStmtContext) {}
249
+
250
+// EnterIfStmt is called when production ifStmt is entered.
251
+func (s *BaseOgListener) EnterIfStmt(ctx *IfStmtContext) {}
252
+
253
+// ExitIfStmt is called when production ifStmt is exited.
254
+func (s *BaseOgListener) ExitIfStmt(ctx *IfStmtContext) {}
255
+
256
+// EnterSwitchStmt is called when production switchStmt is entered.
257
+func (s *BaseOgListener) EnterSwitchStmt(ctx *SwitchStmtContext) {}
258
+
259
+// ExitSwitchStmt is called when production switchStmt is exited.
260
+func (s *BaseOgListener) ExitSwitchStmt(ctx *SwitchStmtContext) {}
261
+
262
+// EnterExprSwitchStmt is called when production exprSwitchStmt is entered.
263
+func (s *BaseOgListener) EnterExprSwitchStmt(ctx *ExprSwitchStmtContext) {}
264
+
265
+// ExitExprSwitchStmt is called when production exprSwitchStmt is exited.
266
+func (s *BaseOgListener) ExitExprSwitchStmt(ctx *ExprSwitchStmtContext) {}
267
+
268
+// EnterExprCaseClause is called when production exprCaseClause is entered.
269
+func (s *BaseOgListener) EnterExprCaseClause(ctx *ExprCaseClauseContext) {}
270
+
271
+// ExitExprCaseClause is called when production exprCaseClause is exited.
272
+func (s *BaseOgListener) ExitExprCaseClause(ctx *ExprCaseClauseContext) {}
273
+
274
+// EnterExprSwitchCase is called when production exprSwitchCase is entered.
275
+func (s *BaseOgListener) EnterExprSwitchCase(ctx *ExprSwitchCaseContext) {}
276
+
277
+// ExitExprSwitchCase is called when production exprSwitchCase is exited.
278
+func (s *BaseOgListener) ExitExprSwitchCase(ctx *ExprSwitchCaseContext) {}
279
+
280
+// EnterTypeSwitchStmt is called when production typeSwitchStmt is entered.
281
+func (s *BaseOgListener) EnterTypeSwitchStmt(ctx *TypeSwitchStmtContext) {}
282
+
283
+// ExitTypeSwitchStmt is called when production typeSwitchStmt is exited.
284
+func (s *BaseOgListener) ExitTypeSwitchStmt(ctx *TypeSwitchStmtContext) {}
285
+
286
+// EnterTypeSwitchGuard is called when production typeSwitchGuard is entered.
287
+func (s *BaseOgListener) EnterTypeSwitchGuard(ctx *TypeSwitchGuardContext) {}
288
+
289
+// ExitTypeSwitchGuard is called when production typeSwitchGuard is exited.
290
+func (s *BaseOgListener) ExitTypeSwitchGuard(ctx *TypeSwitchGuardContext) {}
291
+
292
+// EnterTypeCaseClause is called when production typeCaseClause is entered.
293
+func (s *BaseOgListener) EnterTypeCaseClause(ctx *TypeCaseClauseContext) {}
294
+
295
+// ExitTypeCaseClause is called when production typeCaseClause is exited.
296
+func (s *BaseOgListener) ExitTypeCaseClause(ctx *TypeCaseClauseContext) {}
297
+
298
+// EnterTypeSwitchCase is called when production typeSwitchCase is entered.
299
+func (s *BaseOgListener) EnterTypeSwitchCase(ctx *TypeSwitchCaseContext) {}
300
+
301
+// ExitTypeSwitchCase is called when production typeSwitchCase is exited.
302
+func (s *BaseOgListener) ExitTypeSwitchCase(ctx *TypeSwitchCaseContext) {}
303
+
304
+// EnterTypeList is called when production typeList is entered.
305
+func (s *BaseOgListener) EnterTypeList(ctx *TypeListContext) {}
306
+
307
+// ExitTypeList is called when production typeList is exited.
308
+func (s *BaseOgListener) ExitTypeList(ctx *TypeListContext) {}
309
+
310
+// EnterSelectStmt is called when production selectStmt is entered.
311
+func (s *BaseOgListener) EnterSelectStmt(ctx *SelectStmtContext) {}
312
+
313
+// ExitSelectStmt is called when production selectStmt is exited.
314
+func (s *BaseOgListener) ExitSelectStmt(ctx *SelectStmtContext) {}
315
+
316
+// EnterCommClause is called when production commClause is entered.
317
+func (s *BaseOgListener) EnterCommClause(ctx *CommClauseContext) {}
318
+
319
+// ExitCommClause is called when production commClause is exited.
320
+func (s *BaseOgListener) ExitCommClause(ctx *CommClauseContext) {}
321
+
322
+// EnterCommCase is called when production commCase is entered.
323
+func (s *BaseOgListener) EnterCommCase(ctx *CommCaseContext) {}
324
+
325
+// ExitCommCase is called when production commCase is exited.
326
+func (s *BaseOgListener) ExitCommCase(ctx *CommCaseContext) {}
327
+
328
+// EnterRecvStmt is called when production recvStmt is entered.
329
+func (s *BaseOgListener) EnterRecvStmt(ctx *RecvStmtContext) {}
330
+
331
+// ExitRecvStmt is called when production recvStmt is exited.
332
+func (s *BaseOgListener) ExitRecvStmt(ctx *RecvStmtContext) {}
333
+
334
+// EnterForStmt is called when production forStmt is entered.
335
+func (s *BaseOgListener) EnterForStmt(ctx *ForStmtContext) {}
336
+
337
+// ExitForStmt is called when production forStmt is exited.
338
+func (s *BaseOgListener) ExitForStmt(ctx *ForStmtContext) {}
339
+
340
+// EnterForClause is called when production forClause is entered.
341
+func (s *BaseOgListener) EnterForClause(ctx *ForClauseContext) {}
342
+
343
+// ExitForClause is called when production forClause is exited.
344
+func (s *BaseOgListener) ExitForClause(ctx *ForClauseContext) {}
345
+
346
+// EnterRangeClause is called when production rangeClause is entered.
347
+func (s *BaseOgListener) EnterRangeClause(ctx *RangeClauseContext) {}
348
+
349
+// ExitRangeClause is called when production rangeClause is exited.
350
+func (s *BaseOgListener) ExitRangeClause(ctx *RangeClauseContext) {}
351
+
352
+// EnterGoStmt is called when production goStmt is entered.
353
+func (s *BaseOgListener) EnterGoStmt(ctx *GoStmtContext) {}
354
+
355
+// ExitGoStmt is called when production goStmt is exited.
356
+func (s *BaseOgListener) ExitGoStmt(ctx *GoStmtContext) {}
357
+
358
+// EnterType_ is called when production type_ is entered.
359
+func (s *BaseOgListener) EnterType_(ctx *Type_Context) {}
360
+
361
+// ExitType_ is called when production type_ is exited.
362
+func (s *BaseOgListener) ExitType_(ctx *Type_Context) {}
363
+
364
+// EnterTypeName is called when production typeName is entered.
365
+func (s *BaseOgListener) EnterTypeName(ctx *TypeNameContext) {}
366
+
367
+// ExitTypeName is called when production typeName is exited.
368
+func (s *BaseOgListener) ExitTypeName(ctx *TypeNameContext) {}
369
+
370
+// EnterTypeLit is called when production typeLit is entered.
371
+func (s *BaseOgListener) EnterTypeLit(ctx *TypeLitContext) {}
372
+
373
+// ExitTypeLit is called when production typeLit is exited.
374
+func (s *BaseOgListener) ExitTypeLit(ctx *TypeLitContext) {}
375
+
376
+// EnterArrayType is called when production arrayType is entered.
377
+func (s *BaseOgListener) EnterArrayType(ctx *ArrayTypeContext) {}
378
+
379
+// ExitArrayType is called when production arrayType is exited.
380
+func (s *BaseOgListener) ExitArrayType(ctx *ArrayTypeContext) {}
381
+
382
+// EnterArrayLength is called when production arrayLength is entered.
383
+func (s *BaseOgListener) EnterArrayLength(ctx *ArrayLengthContext) {}
384
+
385
+// ExitArrayLength is called when production arrayLength is exited.
386
+func (s *BaseOgListener) ExitArrayLength(ctx *ArrayLengthContext) {}
387
+
388
+// EnterElementType is called when production elementType is entered.
389
+func (s *BaseOgListener) EnterElementType(ctx *ElementTypeContext) {}
390
+
391
+// ExitElementType is called when production elementType is exited.
392
+func (s *BaseOgListener) ExitElementType(ctx *ElementTypeContext) {}
393
+
394
+// EnterPointerType is called when production pointerType is entered.
395
+func (s *BaseOgListener) EnterPointerType(ctx *PointerTypeContext) {}
396
+
397
+// ExitPointerType is called when production pointerType is exited.
398
+func (s *BaseOgListener) ExitPointerType(ctx *PointerTypeContext) {}
399
+
400
+// EnterInterfaceType is called when production interfaceType is entered.
401
+func (s *BaseOgListener) EnterInterfaceType(ctx *InterfaceTypeContext) {}
402
+
403
+// ExitInterfaceType is called when production interfaceType is exited.
404
+func (s *BaseOgListener) ExitInterfaceType(ctx *InterfaceTypeContext) {}
405
+
406
+// EnterSliceType is called when production sliceType is entered.
407
+func (s *BaseOgListener) EnterSliceType(ctx *SliceTypeContext) {}
408
+
409
+// ExitSliceType is called when production sliceType is exited.
410
+func (s *BaseOgListener) ExitSliceType(ctx *SliceTypeContext) {}
411
+
412
+// EnterMapType is called when production mapType is entered.
413
+func (s *BaseOgListener) EnterMapType(ctx *MapTypeContext) {}
414
+
415
+// ExitMapType is called when production mapType is exited.
416
+func (s *BaseOgListener) ExitMapType(ctx *MapTypeContext) {}
417
+
418
+// EnterChannelType is called when production channelType is entered.
419
+func (s *BaseOgListener) EnterChannelType(ctx *ChannelTypeContext) {}
420
+
421
+// ExitChannelType is called when production channelType is exited.
422
+func (s *BaseOgListener) ExitChannelType(ctx *ChannelTypeContext) {}
423
+
424
+// EnterChannelDecl is called when production channelDecl is entered.
425
+func (s *BaseOgListener) EnterChannelDecl(ctx *ChannelDeclContext) {}
426
+
427
+// ExitChannelDecl is called when production channelDecl is exited.
428
+func (s *BaseOgListener) ExitChannelDecl(ctx *ChannelDeclContext) {}
429
+
430
+// EnterMethodSpec is called when production methodSpec is entered.
431
+func (s *BaseOgListener) EnterMethodSpec(ctx *MethodSpecContext) {}
432
+
433
+// ExitMethodSpec is called when production methodSpec is exited.
434
+func (s *BaseOgListener) ExitMethodSpec(ctx *MethodSpecContext) {}
435
+
436
+// EnterFunctionType is called when production functionType is entered.
437
+func (s *BaseOgListener) EnterFunctionType(ctx *FunctionTypeContext) {}
438
+
439
+// ExitFunctionType is called when production functionType is exited.
440
+func (s *BaseOgListener) ExitFunctionType(ctx *FunctionTypeContext) {}
441
+
442
+// EnterSignature is called when production signature is entered.
443
+func (s *BaseOgListener) EnterSignature(ctx *SignatureContext) {}
444
+
445
+// ExitSignature is called when production signature is exited.
446
+func (s *BaseOgListener) ExitSignature(ctx *SignatureContext) {}
447
+
448
+// EnterTemplateSpec is called when production templateSpec is entered.
449
+func (s *BaseOgListener) EnterTemplateSpec(ctx *TemplateSpecContext) {}
450
+
451
+// ExitTemplateSpec is called when production templateSpec is exited.
452
+func (s *BaseOgListener) ExitTemplateSpec(ctx *TemplateSpecContext) {}
453
+
454
+// EnterResult is called when production result is entered.
455
+func (s *BaseOgListener) EnterResult(ctx *ResultContext) {}
456
+
457
+// ExitResult is called when production result is exited.
458
+func (s *BaseOgListener) ExitResult(ctx *ResultContext) {}
459
+
460
+// EnterParameters is called when production parameters is entered.
461
+func (s *BaseOgListener) EnterParameters(ctx *ParametersContext) {}
462
+
463
+// ExitParameters is called when production parameters is exited.
464
+func (s *BaseOgListener) ExitParameters(ctx *ParametersContext) {}
465
+
466
+// EnterParameterList is called when production parameterList is entered.
467
+func (s *BaseOgListener) EnterParameterList(ctx *ParameterListContext) {}
468
+
469
+// ExitParameterList is called when production parameterList is exited.
470
+func (s *BaseOgListener) ExitParameterList(ctx *ParameterListContext) {}
471
+
472
+// EnterParameterDecl is called when production parameterDecl is entered.
473
+func (s *BaseOgListener) EnterParameterDecl(ctx *ParameterDeclContext) {}
474
+
475
+// ExitParameterDecl is called when production parameterDecl is exited.
476
+func (s *BaseOgListener) ExitParameterDecl(ctx *ParameterDeclContext) {}
477
+
478
+// EnterRestOp is called when production restOp is entered.
479
+func (s *BaseOgListener) EnterRestOp(ctx *RestOpContext) {}
480
+
481
+// ExitRestOp is called when production restOp is exited.
482
+func (s *BaseOgListener) ExitRestOp(ctx *RestOpContext) {}
483
+
484
+// EnterOperand is called when production operand is entered.
485
+func (s *BaseOgListener) EnterOperand(ctx *OperandContext) {}
486
+
487
+// ExitOperand is called when production operand is exited.
488
+func (s *BaseOgListener) ExitOperand(ctx *OperandContext) {}
489
+
490
+// EnterLiteral is called when production literal is entered.
491
+func (s *BaseOgListener) EnterLiteral(ctx *LiteralContext) {}
492
+
493
+// ExitLiteral is called when production literal is exited.
494
+func (s *BaseOgListener) ExitLiteral(ctx *LiteralContext) {}
495
+
496
+// EnterBasicLit is called when production basicLit is entered.
497
+func (s *BaseOgListener) EnterBasicLit(ctx *BasicLitContext) {}
498
+
499
+// ExitBasicLit is called when production basicLit is exited.
500
+func (s *BaseOgListener) ExitBasicLit(ctx *BasicLitContext) {}
501
+
502
+// EnterOperandName is called when production operandName is entered.
503
+func (s *BaseOgListener) EnterOperandName(ctx *OperandNameContext) {}
504
+
505
+// ExitOperandName is called when production operandName is exited.
506
+func (s *BaseOgListener) ExitOperandName(ctx *OperandNameContext) {}
507
+
508
+// EnterThis_ is called when production this_ is entered.
509
+func (s *BaseOgListener) EnterThis_(ctx *This_Context) {}
510
+
511
+// ExitThis_ is called when production this_ is exited.
512
+func (s *BaseOgListener) ExitThis_(ctx *This_Context) {}
513
+
514
+// EnterQualifiedIdent is called when production qualifiedIdent is entered.
515
+func (s *BaseOgListener) EnterQualifiedIdent(ctx *QualifiedIdentContext) {}
516
+
517
+// ExitQualifiedIdent is called when production qualifiedIdent is exited.
518
+func (s *BaseOgListener) ExitQualifiedIdent(ctx *QualifiedIdentContext) {}
519
+
520
+// EnterCompositeLit is called when production compositeLit is entered.
521
+func (s *BaseOgListener) EnterCompositeLit(ctx *CompositeLitContext) {}
522
+
523
+// ExitCompositeLit is called when production compositeLit is exited.
524
+func (s *BaseOgListener) ExitCompositeLit(ctx *CompositeLitContext) {}
525
+
526
+// EnterLiteralType is called when production literalType is entered.
527
+func (s *BaseOgListener) EnterLiteralType(ctx *LiteralTypeContext) {}
528
+
529
+// ExitLiteralType is called when production literalType is exited.
530
+func (s *BaseOgListener) ExitLiteralType(ctx *LiteralTypeContext) {}
531
+
532
+// EnterLiteralValue is called when production literalValue is entered.
533
+func (s *BaseOgListener) EnterLiteralValue(ctx *LiteralValueContext) {}
534
+
535
+// ExitLiteralValue is called when production literalValue is exited.
536
+func (s *BaseOgListener) ExitLiteralValue(ctx *LiteralValueContext) {}
537
+
538
+// EnterElementList is called when production elementList is entered.
539
+func (s *BaseOgListener) EnterElementList(ctx *ElementListContext) {}
540
+
541
+// ExitElementList is called when production elementList is exited.
542
+func (s *BaseOgListener) ExitElementList(ctx *ElementListContext) {}
543
+
544
+// EnterKeyedElement is called when production keyedElement is entered.
545
+func (s *BaseOgListener) EnterKeyedElement(ctx *KeyedElementContext) {}
546
+
547
+// ExitKeyedElement is called when production keyedElement is exited.
548
+func (s *BaseOgListener) ExitKeyedElement(ctx *KeyedElementContext) {}
549
+
550
+// EnterKey is called when production key is entered.
551
+func (s *BaseOgListener) EnterKey(ctx *KeyContext) {}
552
+
553
+// ExitKey is called when production key is exited.
554
+func (s *BaseOgListener) ExitKey(ctx *KeyContext) {}
555
+
556
+// EnterElement is called when production element is entered.
557
+func (s *BaseOgListener) EnterElement(ctx *ElementContext) {}
558
+
559
+// ExitElement is called when production element is exited.
560
+func (s *BaseOgListener) ExitElement(ctx *ElementContext) {}
561
+
562
+// EnterStructType is called when production structType is entered.
563
+func (s *BaseOgListener) EnterStructType(ctx *StructTypeContext) {}
564
+
565
+// ExitStructType is called when production structType is exited.
566
+func (s *BaseOgListener) ExitStructType(ctx *StructTypeContext) {}
567
+
568
+// EnterFieldDecl is called when production fieldDecl is entered.
569
+func (s *BaseOgListener) EnterFieldDecl(ctx *FieldDeclContext) {}
570
+
571
+// ExitFieldDecl is called when production fieldDecl is exited.
572
+func (s *BaseOgListener) ExitFieldDecl(ctx *FieldDeclContext) {}
573
+
574
+// EnterInlineStructMethod is called when production inlineStructMethod is entered.
575
+func (s *BaseOgListener) EnterInlineStructMethod(ctx *InlineStructMethodContext) {}
576
+
577
+// ExitInlineStructMethod is called when production inlineStructMethod is exited.
578
+func (s *BaseOgListener) ExitInlineStructMethod(ctx *InlineStructMethodContext) {}
579
+
580
+// EnterAnonymousField is called when production anonymousField is entered.
581
+func (s *BaseOgListener) EnterAnonymousField(ctx *AnonymousFieldContext) {}
582
+
583
+// ExitAnonymousField is called when production anonymousField is exited.
584
+func (s *BaseOgListener) ExitAnonymousField(ctx *AnonymousFieldContext) {}
585
+
586
+// EnterFunctionLit is called when production functionLit is entered.
587
+func (s *BaseOgListener) EnterFunctionLit(ctx *FunctionLitContext) {}
588
+
589
+// ExitFunctionLit is called when production functionLit is exited.
590
+func (s *BaseOgListener) ExitFunctionLit(ctx *FunctionLitContext) {}
591
+
592
+// EnterPrimaryExpr is called when production primaryExpr is entered.
593
+func (s *BaseOgListener) EnterPrimaryExpr(ctx *PrimaryExprContext) {}
594
+
595
+// ExitPrimaryExpr is called when production primaryExpr is exited.
596
+func (s *BaseOgListener) ExitPrimaryExpr(ctx *PrimaryExprContext) {}
597
+
598
+// EnterSecondaryExpr is called when production secondaryExpr is entered.
599
+func (s *BaseOgListener) EnterSecondaryExpr(ctx *SecondaryExprContext) {}
600
+
601
+// ExitSecondaryExpr is called when production secondaryExpr is exited.
602
+func (s *BaseOgListener) ExitSecondaryExpr(ctx *SecondaryExprContext) {}
603
+
604
+// EnterSelector is called when production selector is entered.
605
+func (s *BaseOgListener) EnterSelector(ctx *SelectorContext) {}
606
+
607
+// ExitSelector is called when production selector is exited.
608
+func (s *BaseOgListener) ExitSelector(ctx *SelectorContext) {}
609
+
610
+// EnterIndex is called when production index is entered.
611
+func (s *BaseOgListener) EnterIndex(ctx *IndexContext) {}
612
+
613
+// ExitIndex is called when production index is exited.
614
+func (s *BaseOgListener) ExitIndex(ctx *IndexContext) {}
615
+
616
+// EnterSlice is called when production slice is entered.
617
+func (s *BaseOgListener) EnterSlice(ctx *SliceContext) {}
618
+
619
+// ExitSlice is called when production slice is exited.
620
+func (s *BaseOgListener) ExitSlice(ctx *SliceContext) {}
621
+
622
+// EnterTypeAssertion is called when production typeAssertion is entered.
623
+func (s *BaseOgListener) EnterTypeAssertion(ctx *TypeAssertionContext) {}
624
+
625
+// ExitTypeAssertion is called when production typeAssertion is exited.
626
+func (s *BaseOgListener) ExitTypeAssertion(ctx *TypeAssertionContext) {}
627
+
628
+// EnterArguments is called when production arguments is entered.
629
+func (s *BaseOgListener) EnterArguments(ctx *ArgumentsContext) {}
630
+
631
+// ExitArguments is called when production arguments is exited.
632
+func (s *BaseOgListener) ExitArguments(ctx *ArgumentsContext) {}
633
+
634
+// EnterMethodExpr is called when production methodExpr is entered.
635
+func (s *BaseOgListener) EnterMethodExpr(ctx *MethodExprContext) {}
636
+
637
+// ExitMethodExpr is called when production methodExpr is exited.
638
+func (s *BaseOgListener) ExitMethodExpr(ctx *MethodExprContext) {}
639
+
640
+// EnterReceiverType is called when production receiverType is entered.
641
+func (s *BaseOgListener) EnterReceiverType(ctx *ReceiverTypeContext) {}
642
+
643
+// ExitReceiverType is called when production receiverType is exited.
644
+func (s *BaseOgListener) ExitReceiverType(ctx *ReceiverTypeContext) {}
645
+
646
+// EnterExpression is called when production expression is entered.
647
+func (s *BaseOgListener) EnterExpression(ctx *ExpressionContext) {}
648
+
649
+// ExitExpression is called when production expression is exited.
650
+func (s *BaseOgListener) ExitExpression(ctx *ExpressionContext) {}
651
+
652
+// EnterUnaryExpr is called when production unaryExpr is entered.
653
+func (s *BaseOgListener) EnterUnaryExpr(ctx *UnaryExprContext) {}
654
+
655
+// ExitUnaryExpr is called when production unaryExpr is exited.
656
+func (s *BaseOgListener) ExitUnaryExpr(ctx *UnaryExprContext) {}
657
+
658
+// EnterConversion is called when production conversion is entered.
659
+func (s *BaseOgListener) EnterConversion(ctx *ConversionContext) {}
660
+
661
+// ExitConversion is called when production conversion is exited.
662
+func (s *BaseOgListener) ExitConversion(ctx *ConversionContext) {}
663
+
664
+// EnterEos is called when production eos is entered.
665
+func (s *BaseOgListener) EnterEos(ctx *EosContext) {}
666
+
667
+// ExitEos is called when production eos is exited.
668
+func (s *BaseOgListener) ExitEos(ctx *EosContext) {}

+ 785
- 0
parser/og_base_visitor.go View File

@@ -0,0 +1,785 @@
1
+// Generated from ./parser/Og.g4 by ANTLR 4.7.1.
2
+
3
+package parser // Og
4
+
5
+//import "github.com/antlr/antlr4/runtime/Go/antlr"
6
+
7
+//type OgVisitor struct {
8
+//    *antlr.BaseParseTreeVisitor
9
+//}
10
+
11
+//func (v *OgVisitor) Init() interface{} {
12
+//    return nil
13
+//}
14
+
15
+//func (v *OgVisitor) VisitNext(node antlr.Tree, resultSoFar interface{}) bool {
16
+//    return true
17
+//}
18
+
19
+//func (v *OgVisitor) Aggregate(resultSoFar, childResult interface{}) interface{} {
20
+//    return childResult
21
+//}
22
+
23
+//func (v *OgVisitor) VisitTerminal(node antlr.TerminalNode) interface{} {
24
+//    return nil
25
+//}
26
+
27
+//func (v *OgVisitor) VisitErrorNode(node antlr.ErrorNode) interface{} {
28
+//    return nil
29
+//}
30
+
31
+//func (v *OgVisitor) VisitSourceFile(ctx *parser.SourceFileContext, delegate antlr.ParseTreeVisitor) interface{} {
32
+//  // before children
33
+//  r := v.VisitChildren(ctx, delegate)
34
+//  // afer children
35
+//  return r
36
+//}
37
+
38
+//func (v *OgVisitor) VisitInterp(ctx *parser.InterpContext, delegate antlr.ParseTreeVisitor) interface{} {
39
+//  // before children
40
+//  r := v.VisitChildren(ctx, delegate)
41
+//  // afer children
42
+//  return r
43
+//}
44
+
45
+//func (v *OgVisitor) VisitPackageClause(ctx *parser.PackageClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
46
+//  // before children
47
+//  r := v.VisitChildren(ctx, delegate)
48
+//  // afer children
49
+//  return r
50
+//}
51
+
52
+//func (v *OgVisitor) VisitImportDecl(ctx *parser.ImportDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
53
+//  // before children
54
+//  r := v.VisitChildren(ctx, delegate)
55
+//  // afer children
56
+//  return r
57
+//}
58
+
59
+//func (v *OgVisitor) VisitImportBody(ctx *parser.ImportBodyContext, delegate antlr.ParseTreeVisitor) interface{} {
60
+//  // before children
61
+//  r := v.VisitChildren(ctx, delegate)
62
+//  // afer children
63
+//  return r
64
+//}
65
+
66
+//func (v *OgVisitor) VisitImportSpec(ctx *parser.ImportSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
67
+//  // before children
68
+//  r := v.VisitChildren(ctx, delegate)
69
+//  // afer children
70
+//  return r
71
+//}
72
+
73
+//func (v *OgVisitor) VisitImportPath(ctx *parser.ImportPathContext, delegate antlr.ParseTreeVisitor) interface{} {
74
+//  // before children
75
+//  r := v.VisitChildren(ctx, delegate)
76
+//  // afer children
77
+//  return r
78
+//}
79
+
80
+//func (v *OgVisitor) VisitTopLevelDecl(ctx *parser.TopLevelDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
81
+//  // before children
82
+//  r := v.VisitChildren(ctx, delegate)
83
+//  // afer children
84
+//  return r
85
+//}
86
+
87
+//func (v *OgVisitor) VisitDeclaration(ctx *parser.DeclarationContext, delegate antlr.ParseTreeVisitor) interface{} {
88
+//  // before children
89
+//  r := v.VisitChildren(ctx, delegate)
90
+//  // afer children
91
+//  return r
92
+//}
93
+
94
+//func (v *OgVisitor) VisitConstDecl(ctx *parser.ConstDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
95
+//  // before children
96
+//  r := v.VisitChildren(ctx, delegate)
97
+//  // afer children
98
+//  return r
99
+//}
100
+
101
+//func (v *OgVisitor) VisitConstSpec(ctx *parser.ConstSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
102
+//  // before children
103
+//  r := v.VisitChildren(ctx, delegate)
104
+//  // afer children
105
+//  return r
106
+//}
107
+
108
+//func (v *OgVisitor) VisitIdentifierList(ctx *parser.IdentifierListContext, delegate antlr.ParseTreeVisitor) interface{} {
109
+//  // before children
110
+//  r := v.VisitChildren(ctx, delegate)
111
+//  // afer children
112
+//  return r
113
+//}
114
+
115
+//func (v *OgVisitor) VisitExpressionList(ctx *parser.ExpressionListContext, delegate antlr.ParseTreeVisitor) interface{} {
116
+//  // before children
117
+//  r := v.VisitChildren(ctx, delegate)
118
+//  // afer children
119
+//  return r
120
+//}
121
+
122
+//func (v *OgVisitor) VisitTypeDecl(ctx *parser.TypeDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
123
+//  // before children
124
+//  r := v.VisitChildren(ctx, delegate)
125
+//  // afer children
126
+//  return r
127
+//}
128
+
129
+//func (v *OgVisitor) VisitTypeSpec(ctx *parser.TypeSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
130
+//  // before children
131
+//  r := v.VisitChildren(ctx, delegate)
132
+//  // afer children
133
+//  return r
134
+//}
135
+
136
+//func (v *OgVisitor) VisitFunctionDecl(ctx *parser.FunctionDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
137
+//  // before children
138
+//  r := v.VisitChildren(ctx, delegate)
139
+//  // afer children
140
+//  return r
141
+//}
142
+
143
+//func (v *OgVisitor) VisitFunction(ctx *parser.FunctionContext, delegate antlr.ParseTreeVisitor) interface{} {
144
+//  // before children
145
+//  r := v.VisitChildren(ctx, delegate)
146
+//  // afer children
147
+//  return r
148
+//}
149
+
150
+//func (v *OgVisitor) VisitMethodDecl(ctx *parser.MethodDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
151
+//  // before children
152
+//  r := v.VisitChildren(ctx, delegate)
153
+//  // afer children
154
+//  return r
155
+//}
156
+
157
+//func (v *OgVisitor) VisitReceiver(ctx *parser.ReceiverContext, delegate antlr.ParseTreeVisitor) interface{} {
158
+//  // before children
159
+//  r := v.VisitChildren(ctx, delegate)
160
+//  // afer children
161
+//  return r
162
+//}
163
+
164
+//func (v *OgVisitor) VisitVarDecl(ctx *parser.VarDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
165
+//  // before children
166
+//  r := v.VisitChildren(ctx, delegate)
167
+//  // afer children
168
+//  return r
169
+//}
170
+
171
+//func (v *OgVisitor) VisitVarSpec(ctx *parser.VarSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
172
+//  // before children
173
+//  r := v.VisitChildren(ctx, delegate)
174
+//  // afer children
175
+//  return r
176
+//}
177
+
178
+//func (v *OgVisitor) VisitBlock(ctx *parser.BlockContext, delegate antlr.ParseTreeVisitor) interface{} {
179
+//  // before children
180
+//  r := v.VisitChildren(ctx, delegate)
181
+//  // afer children
182
+//  return r
183
+//}
184
+
185
+//func (v *OgVisitor) VisitStatementList(ctx *parser.StatementListContext, delegate antlr.ParseTreeVisitor) interface{} {
186
+//  // before children
187
+//  r := v.VisitChildren(ctx, delegate)
188
+//  // afer children
189
+//  return r
190
+//}
191
+
192
+//func (v *OgVisitor) VisitStatement(ctx *parser.StatementContext, delegate antlr.ParseTreeVisitor) interface{} {
193
+//  // before children
194
+//  r := v.VisitChildren(ctx, delegate)
195
+//  // afer children
196
+//  return r
197
+//}
198
+
199
+//func (v *OgVisitor) VisitSimpleStmt(ctx *parser.SimpleStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
200
+//  // before children
201
+//  r := v.VisitChildren(ctx, delegate)
202
+//  // afer children
203
+//  return r
204
+//}
205
+
206
+//func (v *OgVisitor) VisitSendStmt(ctx *parser.SendStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
207
+//  // before children
208
+//  r := v.VisitChildren(ctx, delegate)
209
+//  // afer children
210
+//  return r
211
+//}
212
+
213
+//func (v *OgVisitor) VisitIncDecStmt(ctx *parser.IncDecStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
214
+//  // before children
215
+//  r := v.VisitChildren(ctx, delegate)
216
+//  // afer children
217
+//  return r
218
+//}
219
+
220
+//func (v *OgVisitor) VisitAssignment(ctx *parser.AssignmentContext, delegate antlr.ParseTreeVisitor) interface{} {
221
+//  // before children
222
+//  r := v.VisitChildren(ctx, delegate)
223
+//  // afer children
224
+//  return r
225
+//}
226
+
227
+//func (v *OgVisitor) VisitAssign_op(ctx *parser.Assign_opContext, delegate antlr.ParseTreeVisitor) interface{} {
228
+//  // before children
229
+//  r := v.VisitChildren(ctx, delegate)
230
+//  // afer children
231
+//  return r
232
+//}
233
+
234
+//func (v *OgVisitor) VisitShortVarDecl(ctx *parser.ShortVarDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
235
+//  // before children
236
+//  r := v.VisitChildren(ctx, delegate)
237
+//  // afer children
238
+//  return r
239
+//}
240
+
241
+//func (v *OgVisitor) VisitEmptyStmt(ctx *parser.EmptyStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
242
+//  // before children
243
+//  r := v.VisitChildren(ctx, delegate)
244
+//  // afer children
245
+//  return r
246
+//}
247
+
248
+//func (v *OgVisitor) VisitLabeledStmt(ctx *parser.LabeledStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
249
+//  // before children
250
+//  r := v.VisitChildren(ctx, delegate)
251
+//  // afer children
252
+//  return r
253
+//}
254
+
255
+//func (v *OgVisitor) VisitReturnStmt(ctx *parser.ReturnStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
256
+//  // before children
257
+//  r := v.VisitChildren(ctx, delegate)
258
+//  // afer children
259
+//  return r
260
+//}
261
+
262
+//func (v *OgVisitor) VisitBreakStmt(ctx *parser.BreakStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
263
+//  // before children
264
+//  r := v.VisitChildren(ctx, delegate)
265
+//  // afer children
266
+//  return r
267
+//}
268
+
269
+//func (v *OgVisitor) VisitContinueStmt(ctx *parser.ContinueStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
270
+//  // before children
271
+//  r := v.VisitChildren(ctx, delegate)
272
+//  // afer children
273
+//  return r
274
+//}
275
+
276
+//func (v *OgVisitor) VisitGotoStmt(ctx *parser.GotoStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
277
+//  // before children
278
+//  r := v.VisitChildren(ctx, delegate)
279
+//  // afer children
280
+//  return r
281
+//}
282
+
283
+//func (v *OgVisitor) VisitFallthroughStmt(ctx *parser.FallthroughStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
284
+//  // before children
285
+//  r := v.VisitChildren(ctx, delegate)
286
+//  // afer children
287
+//  return r
288
+//}
289
+
290
+//func (v *OgVisitor) VisitDeferStmt(ctx *parser.DeferStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
291
+//  // before children
292
+//  r := v.VisitChildren(ctx, delegate)
293
+//  // afer children
294
+//  return r
295
+//}
296
+
297
+//func (v *OgVisitor) VisitIfStmt(ctx *parser.IfStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
298
+//  // before children
299
+//  r := v.VisitChildren(ctx, delegate)
300
+//  // afer children
301
+//  return r
302
+//}
303
+
304
+//func (v *OgVisitor) VisitSwitchStmt(ctx *parser.SwitchStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
305
+//  // before children
306
+//  r := v.VisitChildren(ctx, delegate)
307
+//  // afer children
308
+//  return r
309
+//}
310
+
311
+//func (v *OgVisitor) VisitExprSwitchStmt(ctx *parser.ExprSwitchStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
312
+//  // before children
313
+//  r := v.VisitChildren(ctx, delegate)
314
+//  // afer children
315
+//  return r
316
+//}
317
+
318
+//func (v *OgVisitor) VisitExprCaseClause(ctx *parser.ExprCaseClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
319
+//  // before children
320
+//  r := v.VisitChildren(ctx, delegate)
321
+//  // afer children
322
+//  return r
323
+//}
324
+
325
+//func (v *OgVisitor) VisitExprSwitchCase(ctx *parser.ExprSwitchCaseContext, delegate antlr.ParseTreeVisitor) interface{} {
326
+//  // before children
327
+//  r := v.VisitChildren(ctx, delegate)
328
+//  // afer children
329
+//  return r
330
+//}
331
+
332
+//func (v *OgVisitor) VisitTypeSwitchStmt(ctx *parser.TypeSwitchStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
333
+//  // before children
334
+//  r := v.VisitChildren(ctx, delegate)
335
+//  // afer children
336
+//  return r
337
+//}
338
+
339
+//func (v *OgVisitor) VisitTypeSwitchGuard(ctx *parser.TypeSwitchGuardContext, delegate antlr.ParseTreeVisitor) interface{} {
340
+//  // before children
341
+//  r := v.VisitChildren(ctx, delegate)
342
+//  // afer children
343
+//  return r
344
+//}
345
+
346
+//func (v *OgVisitor) VisitTypeCaseClause(ctx *parser.TypeCaseClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
347
+//  // before children
348
+//  r := v.VisitChildren(ctx, delegate)
349
+//  // afer children
350
+//  return r
351
+//}
352
+
353
+//func (v *OgVisitor) VisitTypeSwitchCase(ctx *parser.TypeSwitchCaseContext, delegate antlr.ParseTreeVisitor) interface{} {
354
+//  // before children
355
+//  r := v.VisitChildren(ctx, delegate)
356
+//  // afer children
357
+//  return r
358
+//}
359
+
360
+//func (v *OgVisitor) VisitTypeList(ctx *parser.TypeListContext, delegate antlr.ParseTreeVisitor) interface{} {
361
+//  // before children
362
+//  r := v.VisitChildren(ctx, delegate)
363
+//  // afer children
364
+//  return r
365
+//}
366
+
367
+//func (v *OgVisitor) VisitSelectStmt(ctx *parser.SelectStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
368
+//  // before children
369
+//  r := v.VisitChildren(ctx, delegate)
370
+//  // afer children
371
+//  return r
372
+//}
373
+
374
+//func (v *OgVisitor) VisitCommClause(ctx *parser.CommClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
375
+//  // before children
376
+//  r := v.VisitChildren(ctx, delegate)
377
+//  // afer children
378
+//  return r
379
+//}
380
+
381
+//func (v *OgVisitor) VisitCommCase(ctx *parser.CommCaseContext, delegate antlr.ParseTreeVisitor) interface{} {
382
+//  // before children
383
+//  r := v.VisitChildren(ctx, delegate)
384
+//  // afer children
385
+//  return r
386
+//}
387
+
388
+//func (v *OgVisitor) VisitRecvStmt(ctx *parser.RecvStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
389
+//  // before children
390
+//  r := v.VisitChildren(ctx, delegate)
391
+//  // afer children
392
+//  return r
393
+//}
394
+
395
+//func (v *OgVisitor) VisitForStmt(ctx *parser.ForStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
396
+//  // before children
397
+//  r := v.VisitChildren(ctx, delegate)
398
+//  // afer children
399
+//  return r
400
+//}
401
+
402
+//func (v *OgVisitor) VisitForClause(ctx *parser.ForClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
403
+//  // before children
404
+//  r := v.VisitChildren(ctx, delegate)
405
+//  // afer children
406
+//  return r
407
+//}
408
+
409
+//func (v *OgVisitor) VisitRangeClause(ctx *parser.RangeClauseContext, delegate antlr.ParseTreeVisitor) interface{} {
410
+//  // before children
411
+//  r := v.VisitChildren(ctx, delegate)
412
+//  // afer children
413
+//  return r
414
+//}
415
+
416
+//func (v *OgVisitor) VisitGoStmt(ctx *parser.GoStmtContext, delegate antlr.ParseTreeVisitor) interface{} {
417
+//  // before children
418
+//  r := v.VisitChildren(ctx, delegate)
419
+//  // afer children
420
+//  return r
421
+//}
422
+
423
+//func (v *OgVisitor) VisitType_(ctx *parser.Type_Context, delegate antlr.ParseTreeVisitor) interface{} {
424
+//  // before children
425
+//  r := v.VisitChildren(ctx, delegate)
426
+//  // afer children
427
+//  return r
428
+//}
429
+
430
+//func (v *OgVisitor) VisitTypeName(ctx *parser.TypeNameContext, delegate antlr.ParseTreeVisitor) interface{} {
431
+//  // before children
432
+//  r := v.VisitChildren(ctx, delegate)
433
+//  // afer children
434
+//  return r
435
+//}
436
+
437
+//func (v *OgVisitor) VisitTypeLit(ctx *parser.TypeLitContext, delegate antlr.ParseTreeVisitor) interface{} {
438
+//  // before children
439
+//  r := v.VisitChildren(ctx, delegate)
440
+//  // afer children
441
+//  return r
442
+//}
443
+
444
+//func (v *OgVisitor) VisitArrayType(ctx *parser.ArrayTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
445
+//  // before children
446
+//  r := v.VisitChildren(ctx, delegate)
447
+//  // afer children
448
+//  return r
449
+//}
450
+
451
+//func (v *OgVisitor) VisitArrayLength(ctx *parser.ArrayLengthContext, delegate antlr.ParseTreeVisitor) interface{} {
452
+//  // before children
453
+//  r := v.VisitChildren(ctx, delegate)
454
+//  // afer children
455
+//  return r
456
+//}
457
+
458
+//func (v *OgVisitor) VisitElementType(ctx *parser.ElementTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
459
+//  // before children
460
+//  r := v.VisitChildren(ctx, delegate)
461
+//  // afer children
462
+//  return r
463
+//}
464
+
465
+//func (v *OgVisitor) VisitPointerType(ctx *parser.PointerTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
466
+//  // before children
467
+//  r := v.VisitChildren(ctx, delegate)
468
+//  // afer children
469
+//  return r
470
+//}
471
+
472
+//func (v *OgVisitor) VisitInterfaceType(ctx *parser.InterfaceTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
473
+//  // before children
474
+//  r := v.VisitChildren(ctx, delegate)
475
+//  // afer children
476
+//  return r
477
+//}
478
+
479
+//func (v *OgVisitor) VisitSliceType(ctx *parser.SliceTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
480
+//  // before children
481
+//  r := v.VisitChildren(ctx, delegate)
482
+//  // afer children
483
+//  return r
484
+//}
485
+
486
+//func (v *OgVisitor) VisitMapType(ctx *parser.MapTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
487
+//  // before children
488
+//  r := v.VisitChildren(ctx, delegate)
489
+//  // afer children
490
+//  return r
491
+//}
492
+
493
+//func (v *OgVisitor) VisitChannelType(ctx *parser.ChannelTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
494
+//  // before children
495
+//  r := v.VisitChildren(ctx, delegate)
496
+//  // afer children
497
+//  return r
498
+//}
499
+
500
+//func (v *OgVisitor) VisitChannelDecl(ctx *parser.ChannelDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
501
+//  // before children
502
+//  r := v.VisitChildren(ctx, delegate)
503
+//  // afer children
504
+//  return r
505
+//}
506
+
507
+//func (v *OgVisitor) VisitMethodSpec(ctx *parser.MethodSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
508
+//  // before children
509
+//  r := v.VisitChildren(ctx, delegate)
510
+//  // afer children
511
+//  return r
512
+//}
513
+
514
+//func (v *OgVisitor) VisitFunctionType(ctx *parser.FunctionTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
515
+//  // before children
516
+//  r := v.VisitChildren(ctx, delegate)
517
+//  // afer children
518
+//  return r
519
+//}
520
+
521
+//func (v *OgVisitor) VisitSignature(ctx *parser.SignatureContext, delegate antlr.ParseTreeVisitor) interface{} {
522
+//  // before children
523
+//  r := v.VisitChildren(ctx, delegate)
524
+//  // afer children
525
+//  return r
526
+//}
527
+
528
+//func (v *OgVisitor) VisitTemplateSpec(ctx *parser.TemplateSpecContext, delegate antlr.ParseTreeVisitor) interface{} {
529
+//  // before children
530
+//  r := v.VisitChildren(ctx, delegate)
531
+//  // afer children
532
+//  return r
533
+//}
534
+
535
+//func (v *OgVisitor) VisitResult(ctx *parser.ResultContext, delegate antlr.ParseTreeVisitor) interface{} {
536
+//  // before children
537
+//  r := v.VisitChildren(ctx, delegate)
538
+//  // afer children
539
+//  return r
540
+//}
541
+
542
+//func (v *OgVisitor) VisitParameters(ctx *parser.ParametersContext, delegate antlr.ParseTreeVisitor) interface{} {
543
+//  // before children
544
+//  r := v.VisitChildren(ctx, delegate)
545
+//  // afer children
546
+//  return r
547
+//}
548
+
549
+//func (v *OgVisitor) VisitParameterList(ctx *parser.ParameterListContext, delegate antlr.ParseTreeVisitor) interface{} {
550
+//  // before children
551
+//  r := v.VisitChildren(ctx, delegate)
552
+//  // afer children
553
+//  return r
554
+//}
555
+
556
+//func (v *OgVisitor) VisitParameterDecl(ctx *parser.ParameterDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
557
+//  // before children
558
+//  r := v.VisitChildren(ctx, delegate)
559
+//  // afer children
560
+//  return r
561
+//}
562
+
563
+//func (v *OgVisitor) VisitRestOp(ctx *parser.RestOpContext, delegate antlr.ParseTreeVisitor) interface{} {
564
+//  // before children
565
+//  r := v.VisitChildren(ctx, delegate)
566
+//  // afer children
567
+//  return r
568
+//}
569
+
570
+//func (v *OgVisitor) VisitOperand(ctx *parser.OperandContext, delegate antlr.ParseTreeVisitor) interface{} {
571
+//  // before children
572
+//  r := v.VisitChildren(ctx, delegate)
573
+//  // afer children
574
+//  return r
575
+//}
576
+
577
+//func (v *OgVisitor) VisitLiteral(ctx *parser.LiteralContext, delegate antlr.ParseTreeVisitor) interface{} {
578
+//  // before children
579
+//  r := v.VisitChildren(ctx, delegate)
580
+//  // afer children
581
+//  return r
582
+//}
583
+
584
+//func (v *OgVisitor) VisitBasicLit(ctx *parser.BasicLitContext, delegate antlr.ParseTreeVisitor) interface{} {
585
+//  // before children
586
+//  r := v.VisitChildren(ctx, delegate)
587
+//  // afer children
588
+//  return r
589
+//}
590
+
591
+//func (v *OgVisitor) VisitOperandName(ctx *parser.OperandNameContext, delegate antlr.ParseTreeVisitor) interface{} {
592
+//  // before children
593
+//  r := v.VisitChildren(ctx, delegate)
594
+//  // afer children
595
+//  return r
596
+//}
597
+
598
+//func (v *OgVisitor) VisitThis_(ctx *parser.This_Context, delegate antlr.ParseTreeVisitor) interface{} {
599
+//  // before children
600
+//  r := v.VisitChildren(ctx, delegate)
601
+//  // afer children
602
+//  return r
603
+//}
604
+
605
+//func (v *OgVisitor) VisitQualifiedIdent(ctx *parser.QualifiedIdentContext, delegate antlr.ParseTreeVisitor) interface{} {
606
+//  // before children
607
+//  r := v.VisitChildren(ctx, delegate)
608
+//  // afer children
609
+//  return r
610
+//}
611
+
612
+//func (v *OgVisitor) VisitCompositeLit(ctx *parser.CompositeLitContext, delegate antlr.ParseTreeVisitor) interface{} {
613
+//  // before children
614
+//  r := v.VisitChildren(ctx, delegate)
615
+//  // afer children
616
+//  return r
617
+//}
618
+
619
+//func (v *OgVisitor) VisitLiteralType(ctx *parser.LiteralTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
620
+//  // before children
621
+//  r := v.VisitChildren(ctx, delegate)
622
+//  // afer children
623
+//  return r
624
+//}
625
+
626
+//func (v *OgVisitor) VisitLiteralValue(ctx *parser.LiteralValueContext, delegate antlr.ParseTreeVisitor) interface{} {
627
+//  // before children
628
+//  r := v.VisitChildren(ctx, delegate)
629
+//  // afer children
630
+//  return r
631
+//}
632
+
633
+//func (v *OgVisitor) VisitElementList(ctx *parser.ElementListContext, delegate antlr.ParseTreeVisitor) interface{} {
634
+//  // before children
635
+//  r := v.VisitChildren(ctx, delegate)
636
+//  // afer children
637
+//  return r
638
+//}
639
+
640
+//func (v *OgVisitor) VisitKeyedElement(ctx *parser.KeyedElementContext, delegate antlr.ParseTreeVisitor) interface{} {
641
+//  // before children
642
+//  r := v.VisitChildren(ctx, delegate)
643
+//  // afer children
644
+//  return r
645
+//}
646
+
647
+//func (v *OgVisitor) VisitKey(ctx *parser.KeyContext, delegate antlr.ParseTreeVisitor) interface{} {
648
+//  // before children
649
+//  r := v.VisitChildren(ctx, delegate)
650
+//  // afer children
651
+//  return r
652
+//}
653
+
654
+//func (v *OgVisitor) VisitElement(ctx *parser.ElementContext, delegate antlr.ParseTreeVisitor) interface{} {
655
+//  // before children
656
+//  r := v.VisitChildren(ctx, delegate)
657
+//  // afer children
658
+//  return r
659
+//}
660
+
661
+//func (v *OgVisitor) VisitStructType(ctx *parser.StructTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
662
+//  // before children
663
+//  r := v.VisitChildren(ctx, delegate)
664
+//  // afer children
665
+//  return r
666
+//}
667
+
668
+//func (v *OgVisitor) VisitFieldDecl(ctx *parser.FieldDeclContext, delegate antlr.ParseTreeVisitor) interface{} {
669
+//  // before children
670
+//  r := v.VisitChildren(ctx, delegate)
671
+//  // afer children
672
+//  return r
673
+//}
674
+
675
+//func (v *OgVisitor) VisitInlineStructMethod(ctx *parser.InlineStructMethodContext, delegate antlr.ParseTreeVisitor) interface{} {
676
+//  // before children
677
+//  r := v.VisitChildren(ctx, delegate)
678
+//  // afer children
679
+//  return r
680
+//}
681
+
682
+//func (v *OgVisitor) VisitAnonymousField(ctx *parser.AnonymousFieldContext, delegate antlr.ParseTreeVisitor) interface{} {
683
+//  // before children
684
+//  r := v.VisitChildren(ctx, delegate)
685
+//  // afer children
686
+//  return r
687
+//}
688
+
689
+//func (v *OgVisitor) VisitFunctionLit(ctx *parser.FunctionLitContext, delegate antlr.ParseTreeVisitor) interface{} {
690
+//  // before children
691
+//  r := v.VisitChildren(ctx, delegate)
692
+//  // afer children
693
+//  return r
694
+//}
695
+
696
+//func (v *OgVisitor) VisitPrimaryExpr(ctx *parser.PrimaryExprContext, delegate antlr.ParseTreeVisitor) interface{} {
697
+//  // before children
698
+//  r := v.VisitChildren(ctx, delegate)
699
+//  // afer children
700
+//  return r
701
+//}
702
+
703
+//func (v *OgVisitor) VisitSecondaryExpr(ctx *parser.SecondaryExprContext, delegate antlr.ParseTreeVisitor) interface{} {
704
+//  // before children
705
+//  r := v.VisitChildren(ctx, delegate)
706
+//  // afer children
707
+//  return r
708
+//}
709
+
710
+//func (v *OgVisitor) VisitSelector(ctx *parser.SelectorContext, delegate antlr.ParseTreeVisitor) interface{} {
711
+//  // before children
712
+//  r := v.VisitChildren(ctx, delegate)
713
+//  // afer children
714
+//  return r
715
+//}
716
+
717
+//func (v *OgVisitor) VisitIndex(ctx *parser.IndexContext, delegate antlr.ParseTreeVisitor) interface{} {
718
+//  // before children
719
+//  r := v.VisitChildren(ctx, delegate)
720
+//  // afer children
721
+//  return r
722
+//}
723
+
724
+//func (v *OgVisitor) VisitSlice(ctx *parser.SliceContext, delegate antlr.ParseTreeVisitor) interface{} {
725
+//  // before children
726
+//  r := v.VisitChildren(ctx, delegate)
727
+//  // afer children
728
+//  return r
729
+//}
730
+
731
+//func (v *OgVisitor) VisitTypeAssertion(ctx *parser.TypeAssertionContext, delegate antlr.ParseTreeVisitor) interface{} {
732
+//  // before children
733
+//  r := v.VisitChildren(ctx, delegate)
734
+//  // afer children
735
+//  return r
736
+//}
737
+
738
+//func (v *OgVisitor) VisitArguments(ctx *parser.ArgumentsContext, delegate antlr.ParseTreeVisitor) interface{} {
739
+//  // before children
740
+//  r := v.VisitChildren(ctx, delegate)
741
+//  // afer children
742
+//  return r
743
+//}
744
+
745
+//func (v *OgVisitor) VisitMethodExpr(ctx *parser.MethodExprContext, delegate antlr.ParseTreeVisitor) interface{} {
746
+//  // before children
747
+//  r := v.VisitChildren(ctx, delegate)
748
+//  // afer children
749
+//  return r
750
+//}
751
+
752
+//func (v *OgVisitor) VisitReceiverType(ctx *parser.ReceiverTypeContext, delegate antlr.ParseTreeVisitor) interface{} {
753
+//  // before children
754
+//  r := v.VisitChildren(ctx, delegate)
755
+//  // afer children
756
+//  return r
757
+//}
758
+
759
+//func (v *OgVisitor) VisitExpression(ctx *parser.ExpressionContext, delegate antlr.ParseTreeVisitor) interface{} {
760
+//  // before children
761
+//  r := v.VisitChildren(ctx, delegate)
762
+//  // afer children
763
+//  return r
764
+//}
765
+
766
+//func (v *OgVisitor) VisitUnaryExpr(ctx *parser.UnaryExprContext, delegate antlr.ParseTreeVisitor) interface{} {
767
+//  // before children
768
+//  r := v.VisitChildren(ctx, delegate)
769
+//  // afer children
770
+//  return r
771
+//}
772
+
773
+//func (v *OgVisitor) VisitConversion(ctx *parser.ConversionContext, delegate antlr.ParseTreeVisitor) interface{} {
774
+//  // before children
775
+//  r := v.VisitChildren(ctx, delegate)
776
+//  // afer children
777
+//  return r
778
+//}
779
+
780
+//func (v *OgVisitor) VisitEos(ctx *parser.EosContext, delegate antlr.ParseTreeVisitor) interface{} {
781
+//  // before children
782
+//  r := v.VisitChildren(ctx, delegate)
783
+//  // afer children
784
+//  return r
785
+//}

+ 656
- 0
parser/og_lexer.go View File

@@ -0,0 +1,656 @@
1
+// Generated from ./parser/Og.g4 by ANTLR 4.7.1.
2
+
3
+package parser
4
+
5
+import (
6
+	"fmt"
7
+	"unicode"
8
+
9
+	"github.com/antlr/antlr4/runtime/Go/antlr"
10
+)
11
+
12
+// Suppress unused import error
13
+var _ = fmt.Printf
14
+var _ = unicode.IsLetter
15
+
16
+var serializedLexerAtn = []uint16{
17
+	3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 86, 867,
18
+	8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7,
19
+	9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12,
20
+	4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4,
21
+	18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23,
22
+	9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9,
23
+	28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33,
24
+	4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4,
25
+	39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44,
26
+	9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9,
27
+	49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54,
28
+	4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4,
29
+	60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65,
30
+	9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9,
31
+	70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75,
32
+	4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4,
33
+	81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86,
34
+	9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9,
35
+	91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96,
36
+	4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101,
37
+	4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106,
38
+	9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 3, 2, 3, 2, 3,
39
+	2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3,
40
+	4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3,
41
+	9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12,
42
+	3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3,
43
+	16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19,
44
+	3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3,
45
+	24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28,
46
+	3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3,
47
+	32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35,
48
+	3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3,
49
+	37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38,
50
+	3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3,
51
+	39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41,
52
+	3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3,
53
+	44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45,
54
+	3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3,
55
+	48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51,
56
+	3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3,
57
+	53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 56, 3, 56, 3, 57,
58
+	3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3,
59
+	59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62,
60
+	3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3,
61
+	63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66,
62
+	3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 70, 3,
63
+	70, 5, 70, 478, 10, 70, 3, 70, 3, 70, 5, 70, 482, 10, 70, 3, 70, 7, 70,
64
+	485, 10, 70, 12, 70, 14, 70, 488, 11, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3,
65
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
66
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
67
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
68
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
69
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
70
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
71
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
72
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
73
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
74
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
75
+	71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71,
76
+	3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3,
77
+	71, 3, 71, 3, 71, 3, 71, 5, 71, 624, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72,
78
+	3, 72, 3, 72, 3, 72, 5, 72, 633, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3,
79
+	73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 645, 10, 73, 3, 74, 3, 74,
80
+	3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 657, 10,
81
+	75, 3, 76, 3, 76, 3, 76, 5, 76, 662, 10, 76, 3, 77, 3, 77, 3, 77, 3, 78,
82
+	3, 78, 3, 78, 5, 78, 670, 10, 78, 3, 79, 3, 79, 7, 79, 674, 10, 79, 12,
83
+	79, 14, 79, 677, 11, 79, 3, 80, 3, 80, 7, 80, 681, 10, 80, 12, 80, 14,
84
+	80, 684, 11, 80, 3, 81, 3, 81, 3, 81, 6, 81, 689, 10, 81, 13, 81, 14, 81,
85
+	690, 3, 82, 3, 82, 3, 82, 5, 82, 696, 10, 82, 3, 82, 5, 82, 699, 10, 82,
86
+	3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 707, 10, 82, 5, 82, 709,
87
+	10, 82, 3, 83, 6, 83, 712, 10, 83, 13, 83, 14, 83, 713, 3, 84, 3, 84, 5,
88
+	84, 718, 10, 84, 3, 84, 3, 84, 3, 85, 3, 85, 5, 85, 724, 10, 85, 3, 85,
89
+	3, 85, 3, 86, 3, 86, 3, 86, 5, 86, 731, 10, 86, 3, 86, 3, 86, 3, 87, 3,
90
+	87, 3, 87, 3, 87, 5, 87, 739, 10, 87, 3, 88, 3, 88, 5, 88, 743, 10, 88,
91
+	3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3,
92
+	91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92,
93
+	3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3,
94
+	93, 3, 93, 3, 94, 3, 94, 5, 94, 780, 10, 94, 3, 95, 3, 95, 3, 95, 3, 95,
95
+	7, 95, 786, 10, 95, 12, 95, 14, 95, 789, 11, 95, 3, 95, 3, 95, 3, 96, 3,
96
+	96, 3, 96, 3, 96, 3, 96, 7, 96, 798, 10, 96, 12, 96, 14, 96, 801, 11, 96,
97
+	3, 96, 3, 96, 3, 97, 3, 97, 5, 97, 807, 10, 97, 3, 98, 3, 98, 3, 99, 3,
98
+	99, 3, 100, 3, 100, 3, 101, 3, 101, 3, 102, 3, 102, 3, 103, 5, 103, 820,
99
+	10, 103, 3, 104, 5, 104, 823, 10, 104, 3, 105, 6, 105, 826, 10, 105, 13,
100
+	105, 14, 105, 827, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 7, 106,
101
+	836, 10, 106, 12, 106, 14, 106, 839, 11, 106, 3, 106, 3, 106, 3, 106, 3,
102
+	106, 3, 106, 3, 107, 3, 107, 3, 107, 5, 107, 849, 10, 107, 3, 107, 7, 107,
103
+	852, 10, 107, 12, 107, 14, 107, 855, 11, 107, 3, 107, 3, 107, 3, 108, 6,
104
+	108, 860, 10, 108, 13, 108, 14, 108, 861, 3, 108, 3, 108, 3, 109, 3, 109,
105
+	5, 787, 799, 837, 2, 110, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9,
106
+	17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18,
107
+	35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27,
108
+	53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36,
109
+	71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45,
110
+	89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105,
111
+	54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121,
112
+	62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137,
113
+	70, 139, 71, 141, 72, 143, 73, 145, 2, 147, 2, 149, 2, 151, 2, 153, 74,
114
+	155, 75, 157, 2, 159, 2, 161, 2, 163, 76, 165, 2, 167, 2, 169, 77, 171,
115
+	78, 173, 2, 175, 2, 177, 2, 179, 2, 181, 79, 183, 80, 185, 2, 187, 81,
116
+	189, 2, 191, 2, 193, 2, 195, 2, 197, 2, 199, 2, 201, 2, 203, 2, 205, 2,
117
+	207, 2, 209, 82, 211, 83, 213, 84, 215, 85, 217, 86, 3, 2, 19, 6, 2, 45,
118
+	45, 47, 47, 96, 96, 126, 126, 5, 2, 39, 39, 44, 44, 49, 49, 7, 2, 35, 35,
119
+	40, 40, 44, 45, 47, 47, 96, 96, 3, 2, 51, 59, 4, 2, 90, 90, 122, 122, 4,
120
+	2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 11, 2, 36, 36, 41, 41, 94, 94,
121
+	99, 100, 104, 104, 112, 112, 116, 116, 118, 118, 120, 120, 4, 2, 98, 98,
122
+	128, 128, 3, 2, 50, 59, 3, 2, 50, 57, 5, 2, 50, 59, 67, 72, 99, 104, 3,
123
+	2, 12, 12, 22, 2, 50, 59, 1634, 1643, 1778, 1787, 2408, 2417, 2536, 2545,
124
+	2664, 2673, 2792, 2801, 2920, 2929, 3049, 3057, 3176, 3185, 3304, 3313,
125
+	3432, 3441, 3666, 3675, 3794, 3803, 3874, 3883, 4162, 4171, 4971, 4979,
126
+	6114, 6123, 6162, 6171, 65298, 65307, 260, 2, 67, 92, 99, 124, 172, 172,
127
+	183, 183, 188, 188, 194, 216, 218, 248, 250, 545, 548, 565, 594, 687, 690,
128
+	698, 701, 707, 722, 723, 738, 742, 752, 752, 892, 892, 904, 904, 906, 908,
129
+	910, 910, 912, 931, 933, 976, 978, 985, 988, 1013, 1026, 1155, 1166, 1222,
130
+	1225, 1226, 1229, 1230, 1234, 1271, 1274, 1275, 1331, 1368, 1371, 1371,
131
+	1379, 1417, 1490, 1516, 1522, 1524, 1571, 1596, 1602, 1612, 1651, 1749,
132
+	1751, 1751, 1767, 1768, 1788, 1790, 1810, 1810, 1812, 1838, 1922, 1959,
133
+	2311, 2363, 2367, 2367, 2386, 2386, 2394, 2403, 2439, 2446, 2449, 2450,
134
+	2453, 2474, 2476, 2482, 2484, 2484, 2488, 2491, 2526, 2527, 2529, 2531,
135
+	2546, 2547, 2567, 2572, 2577, 2578, 2581, 2602, 2604, 2610, 2612, 2613,
136
+	2615, 2616, 2618, 2619, 2651, 2654, 2656, 2656, 2676, 2678, 2695, 2701,
137
+	2703, 2703, 2705, 2707, 2709, 2730, 2732, 2738, 2740, 2741, 2743, 2747,
138
+	2751, 2751, 2770, 2770, 2786, 2786, 2823, 2830, 2833, 2834, 2837, 2858,
139
+	2860, 2866, 2868, 2869, 2872, 2875, 2879, 2879, 2910, 2911, 2913, 2915,
140
+	2951, 2956, 2960, 2962, 2964, 2967, 2971, 2972, 2974, 2974, 2976, 2977,
141
+	2981, 2982, 2986, 2988, 2992, 2999, 3001, 3003, 3079, 3086, 3088, 3090,
142
+	3092, 3114, 3116, 3125, 3127, 3131, 3170, 3171, 3207, 3214, 3216, 3218,
143
+	3220, 3242, 3244, 3253, 3255, 3259, 3296, 3296, 3298, 3299, 3335, 3342,
144
+	3344, 3346, 3348, 3370, 3372, 3387, 3426, 3427, 3463, 3480, 3484, 3507,
145
+	3509, 3517, 3519, 3519, 3522, 3528, 3587, 3634, 3636, 3637, 3650, 3656,
146
+	3715, 3716, 3718, 3718, 3721, 3722, 3724, 3724, 3727, 3727, 3734, 3737,
147
+	3739, 3745, 3747, 3749, 3751, 3751, 3753, 3753, 3756, 3757, 3759, 3762,
148
+	3764, 3765, 3775, 3782, 3784, 3784, 3806, 3807, 3842, 3842, 3906, 3948,
149
+	3978, 3981, 4098, 4131, 4133, 4137, 4139, 4140, 4178, 4183, 4258, 4295,
150
+	4306, 4344, 4354, 4443, 4449, 4516, 4522, 4603, 4610, 4616, 4618, 4680,
151
+	4682, 4682, 4684, 4687, 4690, 4696, 4698, 4698, 4700, 4703, 4706, 4744,
152
+	4746, 4746, 4748, 4751, 4754, 4784, 4786, 4786, 4788, 4791, 4794, 4800,
153
+	4802, 4802, 4804, 4807, 4810, 4816, 4818, 4824, 4826, 4848, 4850, 4880,
154
+	4882, 4882, 4884, 4887, 4890, 4896, 4898, 4936, 4938, 4956, 5026, 5110,
155
+	5123, 5752, 5763, 5788, 5794, 5868, 6018, 6069, 6178, 6265, 6274, 6314,
156
+	7682, 7837, 7842, 7931, 7938, 7959, 7962, 7967, 7970, 8007, 8010, 8015,
157
+	8018, 8025, 8027, 8027, 8029, 8029, 8031, 8031, 8033, 8063, 8066, 8118,
158
+	8120, 8126, 8128, 8128, 8132, 8134, 8136, 8142, 8146, 8149, 8152, 8157,
159
+	8162, 8174, 8180, 8182, 8184, 8190, 8321, 8321, 8452, 8452, 8457, 8457,
160
+	8460, 8469, 8471, 8471, 8475, 8479, 8486, 8486, 8488, 8488, 8490, 8490,
161
+	8492, 8495, 8497, 8499, 8501, 8507, 8546, 8581, 12295, 12297, 12323, 12331,
162
+	12339, 12343, 12346, 12348, 12355, 12438, 12447, 12448, 12451, 12540, 12542,
163
+	12544, 12551, 12590, 12595, 12688, 12706, 12729, 13314, 13314, 19895, 19895,
164
+	19970, 19970, 40871, 40871, 40962, 42126, 44034, 44034, 55205, 55205, 63746,
165
+	64047, 64258, 64264, 64277, 64281, 64287, 64287, 64289, 64298, 64300, 64312,
166
+	64314, 64318, 64320, 64320, 64322, 64323, 64325, 64326, 64328, 64435, 64469,
167
+	64831, 64850, 64913, 64916, 64969, 65010, 65021, 65138, 65140, 65142, 65142,
168
+	65144, 65278, 65315, 65340, 65347, 65372, 65384, 65472, 65476, 65481, 65484,
169
+	65489, 65492, 65497, 65500, 65502, 4, 2, 11, 11, 34, 34, 4, 2, 12, 12,
170
+	15, 15, 2, 916, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2,
171
+	9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2,
172
+	2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2,
173
+	2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2,
174
+	2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3,
175
+	2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47,
176
+	3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2,
177
+	55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2,
178
+	2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2,
179
+	2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2,
180
+	2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3,
181
+	2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93,
182
+	3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2,
183
+	101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2,
184
+	2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115,
185
+	3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2,
186
+	2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3,
187
+	2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2,
188
+	137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2,
189
+	2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 169,
190
+	3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2,
191
+	2, 187, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3,
192
+	2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 3, 219, 3, 2, 2, 2, 5,
193
+	227, 3, 2, 2, 2, 7, 229, 3, 2, 2, 2, 9, 236, 3, 2, 2, 2, 11, 238, 3, 2,
194
+	2, 2, 13, 240, 3, 2, 2, 2, 15, 242, 3, 2, 2, 2, 17, 244, 3, 2, 2, 2, 19,
195
+	246, 3, 2, 2, 2, 21, 248, 3, 2, 2, 2, 23, 254, 3, 2, 2, 2, 25, 256, 3,
196
+	2, 2, 2, 27, 258, 3, 2, 2, 2, 29, 260, 3, 2, 2, 2, 31, 265, 3, 2, 2, 2,
197
+	33, 268, 3, 2, 2, 2, 35, 270, 3, 2, 2, 2, 37, 274, 3, 2, 2, 2, 39, 277,
198
+	3, 2, 2, 2, 41, 280, 3, 2, 2, 2, 43, 283, 3, 2, 2, 2, 45, 285, 3, 2, 2,
199
+	2, 47, 287, 3, 2, 2, 2, 49, 289, 3, 2, 2, 2, 51, 291, 3, 2, 2, 2, 53, 293,
200
+	3, 2, 2, 2, 55, 295, 3, 2, 2, 2, 57, 298, 3, 2, 2, 2, 59, 301, 3, 2, 2,
201
+	2, 61, 303, 3, 2, 2, 2, 63, 306, 3, 2, 2, 2, 65, 309, 3, 2, 2, 2, 67, 311,
202
+	3, 2, 2, 2, 69, 313, 3, 2, 2, 2, 71, 320, 3, 2, 2, 2, 73, 326, 3, 2, 2,
203
+	2, 75, 335, 3, 2, 2, 2, 77, 340, 3, 2, 2, 2, 79, 352, 3, 2, 2, 2, 81, 358,
204
+	3, 2, 2, 2, 83, 361, 3, 2, 2, 2, 85, 364, 3, 2, 2, 2, 87, 369, 3, 2, 2,
205
+	2, 89, 376, 3, 2, 2, 2, 91, 383, 3, 2, 2, 2, 93, 387, 3, 2, 2, 2, 95, 390,
206
+	3, 2, 2, 2, 97, 393, 3, 2, 2, 2, 99, 395, 3, 2, 2, 2, 101, 397, 3, 2, 2,
207
+	2, 103, 407, 3, 2, 2, 2, 105, 411, 3, 2, 2, 2, 107, 416, 3, 2, 2, 2, 109,
208
+	419, 3, 2, 2, 2, 111, 421, 3, 2, 2, 2, 113, 423, 3, 2, 2, 2, 115, 427,
209
+	3, 2, 2, 2, 117, 432, 3, 2, 2, 2, 119, 438, 3, 2, 2, 2, 121, 442, 3, 2,
210
+	2, 2, 123, 444, 3, 2, 2, 2, 125, 451, 3, 2, 2, 2, 127, 457, 3, 2, 2, 2,
211
+	129, 460, 3, 2, 2, 2, 131, 463, 3, 2, 2, 2, 133, 466, 3, 2, 2, 2, 135,
212
+	469, 3, 2, 2, 2, 137, 472, 3, 2, 2, 2, 139, 477, 3, 2, 2, 2, 141, 623,
213
+	3, 2, 2, 2, 143, 632, 3, 2, 2, 2, 145, 644, 3, 2, 2, 2, 147, 646, 3, 2,
214
+	2, 2, 149, 656, 3, 2, 2, 2, 151, 661, 3, 2, 2, 2, 153, 663, 3, 2, 2, 2,
215
+	155, 669, 3, 2, 2, 2, 157, 671, 3, 2, 2, 2, 159, 678, 3, 2, 2, 2, 161,
216
+	685, 3, 2, 2, 2, 163, 708, 3, 2, 2, 2, 165, 711, 3, 2, 2, 2, 167, 715,
217
+	3, 2, 2, 2, 169, 723, 3, 2, 2, 2, 171, 727, 3, 2, 2, 2, 173, 738, 3, 2,
218
+	2, 2, 175, 742, 3, 2, 2, 2, 177, 744, 3, 2, 2, 2, 179, 749, 3, 2, 2, 2,
219
+	181, 754, 3, 2, 2, 2, 183, 762, 3, 2, 2, 2, 185, 774, 3, 2, 2, 2, 187,
220
+	779, 3, 2, 2, 2, 189, 781, 3, 2, 2, 2, 191, 792, 3, 2, 2, 2, 193, 806,
221
+	3, 2, 2, 2, 195, 808, 3, 2, 2, 2, 197, 810, 3, 2, 2, 2, 199, 812, 3, 2,
222
+	2, 2, 201, 814, 3, 2, 2, 2, 203, 816, 3, 2, 2, 2, 205, 819, 3, 2, 2, 2,
223
+	207, 822, 3, 2, 2, 2, 209, 825, 3, 2, 2, 2, 211, 831, 3, 2, 2, 2, 213,
224
+	848, 3, 2, 2, 2, 215, 859, 3, 2, 2, 2, 217, 865, 3, 2, 2, 2, 219, 220,
225
+	7, 114, 2, 2, 220, 221, 7, 99, 2, 2, 221, 222, 7, 101, 2, 2, 222, 223,
226
+	7, 109, 2, 2, 223, 224, 7, 99, 2, 2, 224, 225, 7, 105, 2, 2, 225, 226,
227
+	7, 103, 2, 2, 226, 4, 3, 2, 2, 2, 227, 228, 7, 35, 2, 2, 228, 6, 3, 2,
228
+	2, 2, 229, 230, 7, 107, 2, 2, 230, 231, 7, 111, 2, 2, 231, 232, 7, 114,
229
+	2, 2, 232, 233, 7, 113, 2, 2, 233, 234, 7, 116, 2, 2, 234, 235, 7, 118,
230
+	2, 2, 235, 8, 3, 2, 2, 2, 236, 237, 7, 42, 2, 2, 237, 10, 3, 2, 2, 2, 238,
231
+	239, 7, 43, 2, 2, 239, 12, 3, 2, 2, 2, 240, 241, 7, 125, 2, 2, 241, 14,
232
+	3, 2, 2, 2, 242, 243, 7, 127, 2, 2, 243, 16, 3, 2, 2, 2, 244, 245, 7, 60,
233
+	2, 2, 245, 18, 3, 2, 2, 2, 246, 247, 7, 48, 2, 2, 247, 20, 3, 2, 2, 2,
234
+	248, 249, 7, 101, 2, 2, 249, 250, 7, 113, 2, 2, 250, 251, 7, 112, 2, 2,
235
+	251, 252, 7, 117, 2, 2, 252, 253, 7, 118, 2, 2, 253, 22, 3, 2, 2, 2, 254,
236
+	255, 7, 63, 2, 2, 255, 24, 3, 2, 2, 2, 256, 257, 7, 97, 2, 2, 257, 26,
237
+	3, 2, 2, 2, 258, 259, 7, 46, 2, 2, 259, 28, 3, 2, 2, 2, 260, 261, 7, 118,
238
+	2, 2, 261, 262, 7, 123, 2, 2, 262, 263, 7, 114, 2, 2, 263, 264, 7, 103,
239
+	2, 2, 264, 30, 3, 2, 2, 2, 265, 266, 7, 60, 2, 2, 266, 267, 7, 60, 2, 2,
240
+	267, 32, 3, 2, 2, 2, 268, 269, 7, 44, 2, 2, 269, 34, 3, 2, 2, 2, 270, 271,
241
+	7, 120, 2, 2, 271, 272, 7, 99, 2, 2, 272, 273, 7, 116, 2, 2, 273, 36, 3,
242
+	2, 2, 2, 274, 275, 7, 62, 2, 2, 275, 276, 7, 47, 2, 2, 276, 38, 3, 2, 2,
243
+	2, 277, 278, 7, 45, 2, 2, 278, 279, 7, 45, 2, 2, 279, 40, 3, 2, 2, 2, 280,
244
+	281, 7, 47, 2, 2, 281, 282, 7, 47, 2, 2, 282, 42, 3, 2, 2, 2, 283, 284,
245
+	7, 45, 2, 2, 284, 44, 3, 2, 2, 2, 285, 286, 7, 47, 2, 2, 286, 46, 3, 2,
246
+	2, 2, 287, 288, 7, 126, 2, 2, 288, 48, 3, 2, 2, 2, 289, 290, 7, 96, 2,
247
+	2, 290, 50, 3, 2, 2, 2, 291, 292, 7, 49, 2, 2, 292, 52, 3, 2, 2, 2, 293,
248
+	294, 7, 39, 2, 2, 294, 54, 3, 2, 2, 2, 295, 296, 7, 62, 2, 2, 296, 297,
249
+	7, 62, 2, 2, 297, 56, 3, 2, 2, 2, 298, 299, 7, 64, 2, 2, 299, 300, 7, 64,
250
+	2, 2, 300, 58, 3, 2, 2, 2, 301, 302, 7, 40, 2, 2, 302, 60, 3, 2, 2, 2,
251
+	303, 304, 7, 40, 2, 2, 304, 305, 7, 96, 2, 2, 305, 62, 3, 2, 2, 2, 306,
252
+	307, 7, 60, 2, 2, 307, 308, 7, 63, 2, 2, 308, 64, 3, 2, 2, 2, 309, 310,
253
+	7, 61, 2, 2, 310, 66, 3, 2, 2, 2, 311, 312, 7, 128, 2, 2, 312, 68, 3, 2,
254
+	2, 2, 313, 314, 7, 116, 2, 2, 314, 315, 7, 103, 2, 2, 315, 316, 7, 118,
255
+	2, 2, 316, 317, 7, 119, 2, 2, 317, 318, 7, 116, 2, 2, 318, 319, 7, 112,
256
+	2, 2, 319, 70, 3, 2, 2, 2, 320, 321, 7, 100, 2, 2, 321, 322, 7, 116, 2,
257
+	2, 322, 323, 7, 103, 2, 2, 323, 324, 7, 99, 2, 2, 324, 325, 7, 109, 2,
258
+	2, 325, 72, 3, 2, 2, 2, 326, 327, 7, 101, 2, 2, 327, 328, 7, 113, 2, 2,
259
+	328, 329, 7, 112, 2, 2, 329, 330, 7, 118, 2, 2, 330, 331, 7, 107, 2, 2,
260
+	331, 332, 7, 112, 2, 2, 332, 333, 7, 119, 2, 2, 333, 334, 7, 103, 2, 2,
261
+	334, 74, 3, 2, 2, 2, 335, 336, 7, 105, 2, 2, 336, 337, 7, 113, 2, 2, 337,
262
+	338, 7, 118, 2, 2, 338, 339, 7, 113, 2, 2, 339, 76, 3, 2, 2, 2, 340, 341,
263
+	7, 104, 2, 2, 341, 342, 7, 99, 2, 2, 342, 343, 7, 110, 2, 2, 343, 344,
264
+	7, 110, 2, 2, 344, 345, 7, 118, 2, 2, 345, 346, 7, 106, 2, 2, 346, 347,
265
+	7, 116, 2, 2, 347, 348, 7, 113, 2, 2, 348, 349, 7, 119, 2, 2, 349, 350,
266
+	7, 105, 2, 2, 350, 351, 7, 106, 2, 2, 351, 78, 3, 2, 2, 2, 352, 353, 7,
267
+	102, 2, 2, 353, 354, 7, 103, 2, 2, 354, 355, 7, 104, 2, 2, 355, 356, 7,
268
+	103, 2, 2, 356, 357, 7, 116, 2, 2, 357, 80, 3, 2, 2, 2, 358, 359, 7, 107,
269
+	2, 2, 359, 360, 7, 104, 2, 2, 360, 82, 3, 2, 2, 2, 361, 362, 7, 63, 2,
270
+	2, 362, 363, 7, 64, 2, 2, 363, 84, 3, 2, 2, 2, 364, 365, 7, 103, 2, 2,
271
+	365, 366, 7, 110, 2, 2, 366, 367, 7, 117, 2, 2, 367, 368, 7, 103, 2, 2,
272
+	368, 86, 3, 2, 2, 2, 369, 370, 7, 117, 2, 2, 370, 371, 7, 121, 2, 2, 371,
273
+	372, 7, 107, 2, 2, 372, 373, 7, 118, 2, 2, 373, 374, 7, 101, 2, 2, 374,
274
+	375, 7, 106, 2, 2, 375, 88, 3, 2, 2, 2, 376, 377, 7, 117, 2, 2, 377, 378,
275
+	7, 103, 2, 2, 378, 379, 7, 110, 2, 2, 379, 380, 7, 103, 2, 2, 380, 381,
276
+	7, 101, 2, 2, 381, 382, 7, 118, 2, 2, 382, 90, 3, 2, 2, 2, 383, 384, 7,
277
+	104, 2, 2, 384, 385, 7, 113, 2, 2, 385, 386, 7, 116, 2, 2, 386, 92, 3,
278
+	2, 2, 2, 387, 388, 7, 107, 2, 2, 388, 389, 7, 112, 2, 2, 389, 94, 3, 2,
279
+	2, 2, 390, 391, 7, 105, 2, 2, 391, 392, 7, 113, 2, 2, 392, 96, 3, 2, 2,
280
+	2, 393, 394, 7, 93, 2, 2, 394, 98, 3, 2, 2, 2, 395, 396, 7, 95, 2, 2, 396,
281
+	100, 3, 2, 2, 2, 397, 398, 7, 107, 2, 2, 398, 399, 7, 112, 2, 2, 399, 400,
282
+	7, 118, 2, 2, 400, 401, 7, 103, 2, 2, 401, 402, 7, 116, 2, 2, 402, 403,
283
+	7, 104, 2, 2, 403, 404, 7, 99, 2, 2, 404, 405, 7, 101, 2, 2, 405, 406,
284
+	7, 103, 2, 2, 406, 102, 3, 2, 2, 2, 407, 408, 7, 111, 2, 2, 408, 409, 7,
285
+	99, 2, 2, 409, 410, 7, 114, 2, 2, 410, 104, 3, 2, 2, 2, 411, 412, 7, 101,
286
+	2, 2, 412, 413, 7, 106, 2, 2, 413, 414, 7, 99, 2, 2, 414, 415, 7, 112,
287
+	2, 2, 415, 106, 3, 2, 2, 2, 416, 417, 7, 104, 2, 2, 417, 418, 7, 112, 2,
288
+	2, 418, 108, 3, 2, 2, 2, 419, 420, 7, 62, 2, 2, 420, 110, 3, 2, 2, 2, 421,
289
+	422, 7, 64, 2, 2, 422, 112, 3, 2, 2, 2, 423, 424, 7, 48, 2, 2, 424, 425,
290
+	7, 48, 2, 2, 425, 426, 7, 48, 2, 2, 426, 114, 3, 2, 2, 2, 427, 428, 7,
291
+	118, 2, 2, 428, 429, 7, 116, 2, 2, 429, 430, 7, 119, 2, 2, 430, 431, 7,
292
+	103, 2, 2, 431, 116, 3, 2, 2, 2, 432, 433, 7, 104, 2, 2, 433, 434, 7, 99,
293
+	2, 2, 434, 435, 7, 110, 2, 2, 435, 436, 7, 117, 2, 2, 436, 437, 7, 103,
294
+	2, 2, 437, 118, 3, 2, 2, 2, 438, 439, 7, 112, 2, 2, 439, 440, 7, 107, 2,
295
+	2, 440, 441, 7, 110, 2, 2, 441, 120, 3, 2, 2, 2, 442, 443, 7, 66, 2, 2,
296
+	443, 122, 3, 2, 2, 2, 444, 445, 7, 117, 2, 2, 445, 446, 7, 118, 2, 2, 446,
297
+	447, 7, 116, 2, 2, 447, 448, 7, 119, 2, 2, 448, 449, 7, 101, 2, 2, 449,
298
+	450, 7, 118, 2, 2, 450, 124, 3, 2, 2, 2, 451, 452, 7, 101, 2, 2, 452, 453,
299
+	7, 110, 2, 2, 453, 454, 7, 99, 2, 2, 454, 455, 7, 117, 2, 2, 455, 456,
300
+	7, 117, 2, 2, 456, 126, 3, 2, 2, 2, 457, 458, 7, 126, 2, 2, 458, 459, 7,
301
+	126, 2, 2, 459, 128, 3, 2, 2, 2, 460, 461, 7, 40, 2, 2, 461, 462, 7, 40,
302
+	2, 2, 462, 130, 3, 2, 2, 2, 463, 464, 7, 63, 2, 2, 464, 465, 7, 63, 2,
303
+	2, 465, 132, 3, 2, 2, 2, 466, 467, 7, 35, 2, 2, 467, 468, 7, 63, 2, 2,
304
+	468, 134, 3, 2, 2, 2, 469, 470, 7, 62, 2, 2, 470, 471, 7, 63, 2, 2, 471,
305
+	136, 3, 2, 2, 2, 472, 473, 7, 64, 2, 2, 473, 474, 7, 63, 2, 2, 474, 138,
306
+	3, 2, 2, 2, 475, 478, 7, 97, 2, 2, 476, 478, 5, 193, 97, 2, 477, 475, 3,
307
+	2, 2, 2, 477, 476, 3, 2, 2, 2, 478, 486, 3, 2, 2, 2, 479, 482, 7, 97, 2,
308
+	2, 480, 482, 5, 193, 97, 2, 481, 479, 3, 2, 2, 2, 481, 480, 3, 2, 2, 2,
309
+	482, 485, 3, 2, 2, 2, 483, 485, 5, 205, 103, 2, 484, 481, 3, 2, 2, 2, 484,
310
+	483, 3, 2, 2, 2, 485, 488, 3, 2, 2, 2, 486, 484, 3, 2, 2, 2, 486, 487,
311
+	3, 2, 2, 2, 487, 140, 3, 2, 2, 2, 488, 486, 3, 2, 2, 2, 489, 490, 7, 100,
312
+	2, 2, 490, 491, 7, 116, 2, 2, 491, 492, 7, 103, 2, 2, 492, 493, 7, 99,
313
+	2, 2, 493, 624, 7, 109, 2, 2, 494, 495, 7, 102, 2, 2, 495, 496, 7, 103,
314
+	2, 2, 496, 497, 7, 104, 2, 2, 497, 498, 7, 99, 2, 2, 498, 499, 7, 119,
315
+	2, 2, 499, 500, 7, 110, 2, 2, 500, 624, 7, 118, 2, 2, 501, 502, 7, 104,
316
+	2, 2, 502, 503, 7, 119, 2, 2, 503, 504, 7, 112, 2, 2, 504, 624, 7, 101,
317
+	2, 2, 505, 506, 7, 107, 2, 2, 506, 507, 7, 112, 2, 2, 507, 508, 7, 118,
318
+	2, 2, 508, 509, 7, 103, 2, 2, 509, 510, 7, 116, 2, 2, 510, 511, 7, 104,
319
+	2, 2, 511, 512, 7, 99, 2, 2, 512, 513, 7, 101, 2, 2, 513, 624, 7, 103,
320
+	2, 2, 514, 515, 7, 117, 2, 2, 515, 516, 7, 103, 2, 2, 516, 517, 7, 110,
321
+	2, 2, 517, 518, 7, 103, 2, 2, 518, 519, 7, 101, 2, 2, 519, 624, 7, 118,
322
+	2, 2, 520, 521, 7, 101, 2, 2, 521, 522, 7, 99, 2, 2, 522, 523, 7, 117,
323
+	2, 2, 523, 624, 7, 103, 2, 2, 524, 525, 7, 102, 2, 2, 525, 526, 7, 103,
324
+	2, 2, 526, 527, 7, 104, 2, 2, 527, 528, 7, 103, 2, 2, 528, 624, 7, 116,
325
+	2, 2, 529, 530, 7, 105, 2, 2, 530, 624, 7, 113, 2, 2, 531, 532, 7, 111,
326
+	2, 2, 532, 533, 7, 99, 2, 2, 533, 624, 7, 114, 2, 2, 534, 535, 7, 117,
327
+	2, 2, 535, 536, 7, 118, 2, 2, 536, 537, 7, 116, 2, 2, 537, 538, 7, 119,
328
+	2, 2, 538, 539, 7, 101, 2, 2, 539, 624, 7, 118, 2, 2, 540, 541, 7, 101,
329
+	2, 2, 541, 542, 7, 106, 2, 2, 542, 543, 7, 99, 2, 2, 543, 624, 7, 112,
330
+	2, 2, 544, 545, 7, 103, 2, 2, 545, 546, 7, 110, 2, 2, 546, 547, 7, 117,
331
+	2, 2, 547, 624, 7, 103, 2, 2, 548, 549, 7, 105, 2, 2, 549, 550, 7, 113,
332
+	2, 2, 550, 551, 7, 118, 2, 2, 551, 624, 7, 113, 2, 2, 552, 553, 7, 114,
333
+	2, 2, 553, 554, 7, 99, 2, 2, 554, 555, 7, 101, 2, 2, 555, 556, 7, 109,
334
+	2, 2, 556, 557, 7, 99, 2, 2, 557, 558, 7, 105, 2, 2, 558, 624, 7, 103,
335
+	2, 2, 559, 560, 7, 117, 2, 2, 560, 561, 7, 121, 2, 2, 561, 562, 7, 107,
336
+	2, 2, 562, 563, 7, 118, 2, 2, 563, 564, 7, 101, 2, 2, 564, 624, 7, 106,
337
+	2, 2, 565, 566, 7, 101, 2, 2, 566, 567, 7, 113, 2, 2, 567, 568, 7, 112,
338
+	2, 2, 568, 569, 7, 117, 2, 2, 569, 624, 7, 118, 2, 2, 570, 571, 7, 104,
339
+	2, 2, 571, 572, 7, 99, 2, 2, 572, 573, 7, 110, 2, 2, 573, 574, 7, 110,
340
+	2, 2, 574, 575, 7, 118, 2, 2, 575, 576, 7, 106, 2, 2, 576, 577, 7, 116,
341
+	2, 2, 577, 578, 7, 113, 2, 2, 578, 579, 7, 119, 2, 2, 579, 580, 7, 105,
342
+	2, 2, 580, 624, 7, 106, 2, 2, 581, 582, 7, 107, 2, 2, 582, 624, 7, 104,
343
+	2, 2, 583, 584, 7, 116, 2, 2, 584, 585, 7, 99, 2, 2, 585, 586, 7, 112,
344
+	2, 2, 586, 587, 7, 105, 2, 2, 587, 624, 7, 103, 2, 2, 588, 589, 7, 118,
345
+	2, 2, 589, 590, 7, 123, 2, 2, 590, 591, 7, 114, 2, 2, 591, 624, 7, 103,
346
+	2, 2, 592, 593, 7, 101, 2, 2, 593, 594, 7, 113, 2, 2, 594, 595, 7, 112,
347
+	2, 2, 595, 596, 7, 118, 2, 2, 596, 597, 7, 107, 2, 2, 597, 598, 7, 112,
348
+	2, 2, 598, 599, 7, 119, 2, 2, 599, 624, 7, 103, 2, 2, 600, 601, 7, 104,
349
+	2, 2, 601, 602, 7, 113, 2, 2, 602, 624, 7, 116, 2, 2, 603, 604, 7, 107,
350
+	2, 2, 604, 605, 7, 111, 2, 2, 605, 606, 7, 114, 2, 2, 606, 607, 7, 113,
351
+	2, 2, 607, 608, 7, 116, 2, 2, 608, 624, 7, 118, 2, 2, 609, 610, 7, 116,
352
+	2, 2, 610, 611, 7, 103, 2, 2, 611, 612, 7, 118, 2, 2, 612, 613, 7, 119,
353
+	2, 2, 613, 614, 7, 116, 2, 2, 614, 624, 7, 112, 2, 2, 615, 616, 7, 120,
354
+	2, 2, 616, 617, 7, 99, 2, 2, 617, 624, 7, 116, 2, 2, 618, 619, 7, 101,
355
+	2, 2, 619, 620, 7, 110, 2, 2, 620, 621, 7, 99, 2, 2, 621, 622, 7, 117,
356
+	2, 2, 622, 624, 7, 117, 2, 2, 623, 489, 3, 2, 2, 2, 623, 494, 3, 2, 2,
357
+	2, 623, 501, 3, 2, 2, 2, 623, 505, 3, 2, 2, 2, 623, 514, 3, 2, 2, 2, 623,
358
+	520, 3, 2, 2, 2, 623, 524, 3, 2, 2, 2, 623, 529, 3, 2, 2, 2, 623, 531,
359
+	3, 2, 2, 2, 623, 534, 3, 2, 2, 2, 623, 540, 3, 2, 2, 2, 623, 544, 3, 2,
360
+	2, 2, 623, 548, 3, 2, 2, 2, 623, 552, 3, 2, 2, 2, 623, 559, 3, 2, 2, 2,
361
+	623, 565, 3, 2, 2, 2, 623, 570, 3, 2, 2, 2, 623, 581, 3, 2, 2, 2, 623,
362
+	583, 3, 2, 2, 2, 623, 588, 3, 2, 2, 2, 623, 592, 3, 2, 2, 2, 623, 600,
363
+	3, 2, 2, 2, 623, 603, 3, 2, 2, 2, 623, 609, 3, 2, 2, 2, 623, 615, 3, 2,
364
+	2, 2, 623, 618, 3, 2, 2, 2, 624, 142, 3, 2, 2, 2, 625, 626, 7, 126, 2,
365
+	2, 626, 633, 7, 126, 2, 2, 627, 628, 7, 40, 2, 2, 628, 633, 7, 40, 2, 2,
366
+	629, 633, 5, 145, 73, 2, 630, 633, 5, 147, 74, 2, 631, 633, 5, 149, 75,
367
+	2, 632, 625, 3, 2, 2, 2, 632, 627, 3, 2, 2, 2, 632, 629, 3, 2, 2, 2, 632,
368
+	630, 3, 2, 2, 2, 632, 631, 3, 2, 2, 2, 633, 144, 3, 2, 2, 2, 634, 635,
369
+	7, 63, 2, 2, 635, 645, 7, 63, 2, 2, 636, 637, 7, 35, 2, 2, 637, 645, 7,
370
+	63, 2, 2, 638, 645, 7, 62, 2, 2, 639, 640, 7, 62, 2, 2, 640, 645, 7, 63,
371
+	2, 2, 641, 645, 7, 64, 2, 2, 642, 643, 7, 64, 2, 2, 643, 645, 7, 63, 2,
372
+	2, 644, 634, 3, 2, 2, 2, 644, 636, 3, 2, 2, 2, 644, 638, 3, 2, 2, 2, 644,
373
+	639, 3, 2, 2, 2, 644, 641, 3, 2, 2, 2, 644, 642, 3, 2, 2, 2, 645, 146,
374
+	3, 2, 2, 2, 646, 647, 9, 2, 2, 2, 647, 148, 3, 2, 2, 2, 648, 657, 9, 3,
375
+	2, 2, 649, 650, 7, 62, 2, 2, 650, 657, 7, 62, 2, 2, 651, 652, 7, 64, 2,
376
+	2, 652, 657, 7, 64, 2, 2, 653, 657, 7, 40, 2, 2, 654, 655, 7, 40, 2, 2,
377
+	655, 657, 7, 96, 2, 2, 656, 648, 3, 2, 2, 2, 656, 649, 3, 2, 2, 2, 656,
378
+	651, 3, 2, 2, 2, 656, 653, 3, 2, 2, 2, 656, 654, 3, 2, 2, 2, 657, 150,
379
+	3, 2, 2, 2, 658, 662, 9, 4, 2, 2, 659, 660, 7, 62, 2, 2, 660, 662, 7, 47,
380
+	2, 2, 661, 658, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 662, 152, 3, 2, 2, 2,
381
+	663, 664, 7, 47, 2, 2, 664, 665, 7, 64, 2, 2, 665, 154, 3, 2, 2, 2, 666,
382
+	670, 5, 157, 79, 2, 667, 670, 5, 159, 80, 2, 668, 670, 5, 161, 81, 2, 669,
383
+	666, 3, 2, 2, 2, 669, 667, 3, 2, 2, 2, 669, 668, 3, 2, 2, 2, 670, 156,
384
+	3, 2, 2, 2, 671, 675, 9, 5, 2, 2, 672, 674, 5, 195, 98, 2, 673, 672, 3,
385
+	2, 2, 2, 674, 677, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 675, 676, 3, 2, 2,
386
+	2, 676, 158, 3, 2, 2, 2, 677, 675, 3, 2, 2, 2, 678, 682, 7, 50, 2, 2, 679,
387
+	681, 5, 197, 99, 2, 680, 679, 3, 2, 2, 2, 681, 684, 3, 2, 2, 2, 682, 680,
388
+	3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 160, 3, 2, 2, 2, 684, 682, 3, 2,
389
+	2, 2, 685, 686, 7, 50, 2, 2, 686, 688, 9, 6, 2, 2, 687, 689, 5, 199, 100,
390
+	2, 688, 687, 3, 2, 2, 2, 689, 690, 3, 2, 2, 2, 690, 688, 3, 2, 2, 2, 690,
391
+	691, 3, 2, 2, 2, 691, 162, 3, 2, 2, 2, 692, 693, 5, 165, 83, 2, 693, 695,
392
+	7, 48, 2, 2, 694, 696, 5, 165, 83, 2, 695, 694, 3, 2, 2, 2, 695, 696, 3,
393
+	2, 2, 2, 696, 698, 3, 2, 2, 2, 697, 699, 5, 167, 84, 2, 698, 697, 3, 2,
394
+	2, 2, 698, 699, 3, 2, 2, 2, 699, 709, 3, 2, 2, 2, 700, 701, 5, 165, 83,
395
+	2, 701, 702, 5, 167, 84, 2, 702, 709, 3, 2, 2, 2, 703, 704, 7, 48, 2, 2,
396
+	704, 706, 5, 165, 83, 2, 705, 707, 5, 167, 84, 2, 706, 705, 3, 2, 2, 2,
397
+	706, 707, 3, 2, 2, 2, 707, 709, 3, 2, 2, 2, 708, 692, 3, 2, 2, 2, 708,
398
+	700, 3, 2, 2, 2, 708, 703, 3, 2, 2, 2, 709, 164, 3, 2, 2, 2, 710, 712,
399
+	5, 195, 98, 2, 711, 710, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 711, 3,
400
+	2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 166, 3, 2, 2, 2, 715, 717, 9, 7, 2,
401
+	2, 716, 718, 9, 8, 2, 2, 717, 716, 3, 2, 2, 2, 717, 718, 3, 2, 2, 2, 718,
402
+	719, 3, 2, 2, 2, 719, 720, 5, 165, 83, 2, 720, 168, 3, 2, 2, 2, 721, 724,
403
+	5, 165, 83, 2, 722, 724, 5, 163, 82, 2, 723, 721, 3, 2, 2, 2, 723, 722,
404
+	3, 2, 2, 2, 724, 725, 3, 2, 2, 2, 725, 726, 7, 107, 2, 2, 726, 170, 3,
405
+	2, 2, 2, 727, 730, 7, 41, 2, 2, 728, 731, 5, 173, 87, 2, 729, 731, 5, 175,
406
+	88, 2, 730, 728, 3, 2, 2, 2, 730, 729, 3, 2, 2, 2, 731, 732, 3, 2, 2, 2,
407
+	732, 733, 7, 41, 2, 2, 733, 172, 3, 2, 2, 2, 734, 739, 5, 203, 102, 2,
408
+	735, 739, 5, 181, 91, 2, 736, 739, 5, 183, 92, 2, 737, 739, 5, 185, 93,
409
+	2, 738, 734, 3, 2, 2, 2, 738, 735, 3, 2, 2, 2, 738, 736, 3, 2, 2, 2, 738,
410
+	737, 3, 2, 2, 2, 739, 174, 3, 2, 2, 2, 740, 743, 5, 177, 89, 2, 741, 743,
411
+	5, 179, 90, 2, 742, 740, 3, 2, 2, 2, 742, 741, 3, 2, 2, 2, 743, 176, 3,
412
+	2, 2, 2, 744, 745, 7, 94, 2, 2, 745, 746, 5, 197, 99, 2, 746, 747, 5, 197,
413
+	99, 2, 747, 748, 5, 197, 99, 2, 748, 178, 3, 2, 2, 2, 749, 750, 7, 94,
414
+	2, 2, 750, 751, 7, 122, 2, 2, 751, 752, 5, 199, 100, 2, 752, 753, 5, 199,
415
+	100, 2, 753, 180, 3, 2, 2, 2, 754, 755, 7, 94, 2, 2, 755, 756, 7, 119,
416
+	2, 2, 756, 757, 3, 2, 2, 2, 757, 758, 5, 199, 100, 2, 758, 759, 5, 199,
417
+	100, 2, 759, 760, 5, 199, 100, 2, 760, 761, 5, 199, 100, 2, 761, 182, 3,
418
+	2, 2, 2, 762, 763, 7, 94, 2, 2, 763, 764, 7, 87, 2, 2, 764, 765, 3, 2,
419
+	2, 2, 765, 766, 5, 199, 100, 2, 766, 767, 5, 199, 100, 2, 767, 768, 5,
420
+	199, 100, 2, 768, 769, 5, 199, 100, 2, 769, 770, 5, 199, 100, 2, 770, 771,
421
+	5, 199, 100, 2, 771, 772, 5, 199, 100, 2, 772, 773, 5, 199, 100, 2, 773,
422
+	184, 3, 2, 2, 2, 774, 775, 7, 94, 2, 2, 775, 776, 9, 9, 2, 2, 776, 186,
423
+	3, 2, 2, 2, 777, 780, 5, 189, 95, 2, 778, 780, 5, 191, 96, 2, 779, 777,
424
+	3, 2, 2, 2, 779, 778, 3, 2, 2, 2, 780, 188, 3, 2, 2, 2, 781, 787, 7, 98,
425
+	2, 2, 782, 786, 5, 203, 102, 2, 783, 786, 5, 201, 101, 2, 784, 786, 9,
426
+	10, 2, 2, 785, 782, 3, 2, 2, 2, 785, 783, 3, 2, 2, 2, 785, 784, 3, 2, 2,
427
+	2, 786, 789, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 787, 785, 3, 2, 2, 2, 788,
428
+	790, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 790, 791, 7, 98, 2, 2, 791, 190,
429
+	3, 2, 2, 2, 792, 799, 7, 36, 2, 2, 793, 794, 7, 94, 2, 2, 794, 798, 7,
430
+	36, 2, 2, 795, 798, 5, 173, 87, 2, 796, 798, 5, 175, 88, 2, 797, 793, 3,
431
+	2, 2, 2, 797, 795, 3, 2, 2, 2, 797, 796, 3, 2, 2, 2, 798, 801, 3, 2, 2,
432
+	2, 799, 800, 3, 2, 2, 2, 799, 797, 3, 2, 2, 2, 800, 802, 3, 2, 2, 2, 801,
433
+	799, 3, 2, 2, 2, 802, 803, 7, 36, 2, 2, 803, 192, 3, 2, 2, 2, 804, 807,
434
+	7, 97, 2, 2, 805, 807, 5, 207, 104, 2, 806, 804, 3, 2, 2, 2, 806, 805,
435
+	3, 2, 2, 2, 807, 194, 3, 2, 2, 2, 808, 809, 9, 11, 2, 2, 809, 196, 3, 2,
436
+	2, 2, 810, 811, 9, 12, 2, 2, 811, 198, 3, 2, 2, 2, 812, 813, 9, 13, 2,
437
+	2, 813, 200, 3, 2, 2, 2, 814, 815, 9, 14, 2, 2, 815, 202, 3, 2, 2, 2, 816,
438
+	817, 10, 14, 2, 2, 817, 204, 3, 2, 2, 2, 818, 820, 9, 15, 2, 2, 819, 818,
439
+	3, 2, 2, 2, 820, 206, 3, 2, 2, 2, 821, 823, 9, 16, 2, 2, 822, 821, 3, 2,
440
+	2, 2, 823, 208, 3, 2, 2, 2, 824, 826, 9, 17, 2, 2, 825, 824, 3, 2, 2, 2,
441
+	826, 827, 3, 2, 2, 2, 827, 825, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828,
442
+	829, 3, 2, 2, 2, 829, 830, 8, 105, 2, 2, 830, 210, 3, 2, 2, 2, 831, 832,
443
+	7, 49, 2, 2, 832, 833, 7, 44, 2, 2, 833, 837, 3, 2, 2, 2, 834, 836, 11,
444
+	2, 2, 2, 835, 834, 3, 2, 2, 2, 836, 839, 3, 2, 2, 2, 837, 838, 3, 2, 2,
445
+	2, 837, 835, 3, 2, 2, 2, 838, 840, 3, 2, 2, 2, 839, 837, 3, 2, 2, 2, 840,
446
+	841, 7, 44, 2, 2, 841, 842, 7, 49, 2, 2, 842, 843, 3, 2, 2, 2, 843, 844,
447
+	8, 106, 2, 2, 844, 212, 3, 2, 2, 2, 845, 849, 7, 37, 2, 2, 846, 847, 7,
448
+	49, 2, 2, 847, 849, 7, 49, 2, 2, 848, 845, 3, 2, 2, 2, 848, 846, 3, 2,
449
+	2, 2, 849, 853, 3, 2, 2, 2, 850, 852, 10, 18, 2, 2, 851, 850, 3, 2, 2,
450
+	2, 852, 855, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854,
451
+	856, 3, 2, 2, 2, 855, 853, 3, 2, 2, 2, 856, 857, 8, 107, 3, 2, 857, 214,
452
+	3, 2, 2, 2, 858, 860, 9, 18, 2, 2, 859, 858, 3, 2, 2, 2, 860, 861, 3, 2,
453
+	2, 2, 861, 859, 3, 2, 2, 2, 861, 862, 3, 2, 2, 2, 862, 863, 3, 2, 2, 2,
454
+	863, 864, 8, 108, 2, 2, 864, 216, 3, 2, 2, 2, 865, 866, 11, 2, 2, 2, 866,
455
+	218, 3, 2, 2, 2, 39, 2, 477, 481, 484, 486, 623, 632, 644, 656, 661, 669,
456
+	675, 682, 690, 695, 698, 706, 708, 713, 717, 723, 730, 738, 742, 779, 785,
457
+	787, 797, 799, 806, 819, 822, 827, 837, 848, 853, 861, 4, 2, 3, 2, 8, 2,
458
+	2,
459
+}
460
+
461
+var lexerDeserializer = antlr.NewATNDeserializer(nil)
462
+var lexerAtn = lexerDeserializer.DeserializeFromUInt16(serializedLexerAtn)
463
+
464
+var lexerChannelNames = []string{
465
+	"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
466
+}
467
+
468
+var lexerModeNames = []string{
469
+	"DEFAULT_MODE",
470
+}
471
+
472
+var lexerLiteralNames = []string{
473
+	"", "'package'", "'!'", "'import'", "'('", "')'", "'{'", "'}'", "':'",
474
+	"'.'", "'const'", "'='", "'_'", "','", "'type'", "'::'", "'*'", "'var'",
475
+	"'<-'", "'++'", "'--'", "'+'", "'-'", "'|'", "'^'", "'/'", "'%'", "'<<'",
476
+	"'>>'", "'&'", "'&^'", "':='", "';'", "'~'", "'return'", "'break'", "'continue'",
477
+	"'goto'", "'fallthrough'", "'defer'", "'if'", "'=>'", "'else'", "'switch'",
478
+	"'select'", "'for'", "'in'", "'go'", "'['", "']'", "'interface'", "'map'",
479
+	"'chan'", "'fn'", "'<'", "'>'", "'...'", "'true'", "'false'", "'nil'",
480
+	"'@'", "'struct'", "'class'", "'||'", "'&&'", "'=='", "'!='", "'<='", "'>='",
481
+	"", "", "", "'->'",
482
+}
483
+
484
+var lexerSymbolicNames = []string{
485
+	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
486
+	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
487
+	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
488
+	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "IDENTIFIER",
489
+	"KEYWORD", "BINARY_OP", "FUNC", "INT_LIT", "FLOAT_LIT", "IMAGINARY_LIT",
490
+	"RUNE_LIT", "LITTLE_U_VALUE", "BIG_U_VALUE", "STRING_LIT", "WS", "COMMENT",
491
+	"LINE_COMMENT", "TERMINATOR", "ErrorChar",
492
+}
493
+
494
+var lexerRuleNames = []string{
495
+	"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
496
+	"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
497
+	"T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
498
+	"T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
499
+	"T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
500
+	"T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48",
501
+	"T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56",
502
+	"T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64",
503
+	"T__65", "T__66", "T__67", "IDENTIFIER", "KEYWORD", "BINARY_OP", "REL_OP",
504
+	"ADD_OP", "MUL_OP", "UNARY_OP", "FUNC", "INT_LIT", "DECIMAL_LIT", "OCTAL_LIT",
505
+	"HEX_LIT", "FLOAT_LIT", "DECIMALS", "EXPONENT", "IMAGINARY_LIT", "RUNE_LIT",
506
+	"UNICODE_VALUE", "BYTE_VALUE", "OCTAL_BYTE_VALUE", "HEX_BYTE_VALUE", "LITTLE_U_VALUE",
507
+	"BIG_U_VALUE", "ESCAPED_CHAR", "STRING_LIT", "RAW_STRING_LIT", "INTERPRETED_STRING_LIT",
508
+	"LETTER", "DECIMAL_DIGIT", "OCTAL_DIGIT", "HEX_DIGIT", "NEWLINE", "UNICODE_CHAR",
509
+	"UNICODE_DIGIT", "UNICODE_LETTER", "WS", "COMMENT", "LINE_COMMENT", "TERMINATOR",
510
+	"ErrorChar",
511
+}
512
+
513
+type OgLexer struct {
514
+	*antlr.BaseLexer
515
+	channelNames []string
516
+	modeNames    []string
517
+	// TODO: EOF string
518
+}
519
+
520
+var lexerDecisionToDFA = make([]*antlr.DFA, len(lexerAtn.DecisionToState))
521
+
522
+func init() {
523
+	for index, ds := range lexerAtn.DecisionToState {
524
+		lexerDecisionToDFA[index] = antlr.NewDFA(ds, index)
525
+	}
526
+}
527
+
528
+func NewOgLexer(input antlr.CharStream) *OgLexer {
529
+
530
+	l := new(OgLexer)
531
+
532
+	l.BaseLexer = antlr.NewBaseLexer(input)
533
+	l.Interpreter = antlr.NewLexerATNSimulator(l, lexerAtn, lexerDecisionToDFA, antlr.NewPredictionContextCache())
534
+
535
+	l.channelNames = lexerChannelNames
536
+	l.modeNames = lexerModeNames
537
+	l.RuleNames = lexerRuleNames
538
+	l.LiteralNames = lexerLiteralNames
539
+	l.SymbolicNames = lexerSymbolicNames
540
+	l.GrammarFileName = "Og.g4"
541
+	// TODO: l.EOF = antlr.TokenEOF
542
+
543
+	return l
544
+}
545
+
546
+// OgLexer tokens.
547
+const (
548
+	OgLexerT__0           = 1
549
+	OgLexerT__1           = 2
550
+	OgLexerT__2           = 3
551
+	OgLexerT__3           = 4
552
+	OgLexerT__4           = 5
553
+	OgLexerT__5           = 6
554
+	OgLexerT__6           = 7
555
+	OgLexerT__7           = 8
556
+	OgLexerT__8           = 9
557
+	OgLexerT__9           = 10
558
+	OgLexerT__10          = 11
559
+	OgLexerT__11          = 12
560
+	OgLexerT__12          = 13
561
+	OgLexerT__13          = 14
562
+	OgLexerT__14          = 15
563
+	OgLexerT__15          = 16
564
+	OgLexerT__16          = 17
565
+	OgLexerT__17          = 18
566
+	OgLexerT__18          = 19
567
+	OgLexerT__19          = 20
568
+	OgLexerT__20          = 21
569
+	OgLexerT__21          = 22
570
+	OgLexerT__22          = 23
571
+	OgLexerT__23          = 24
572
+	OgLexerT__24          = 25
573
+	OgLexerT__25          = 26
574
+	OgLexerT__26          = 27
575
+	OgLexerT__27          = 28
576
+	OgLexerT__28          = 29
577
+	OgLexerT__29          = 30
578
+	OgLexerT__30          = 31
579
+	OgLexerT__31          = 32
580
+	OgLexerT__32          = 33
581
+	OgLexerT__33          = 34
582
+	OgLexerT__34          = 35
583
+	OgLexerT__35          = 36
584
+	OgLexerT__36          = 37
585
+	OgLexerT__37          = 38
586
+	OgLexerT__38          = 39
587
+	OgLexerT__39          = 40
588
+	OgLexerT__40          = 41
589
+	OgLexerT__41          = 42
590
+	OgLexerT__42          = 43
591
+	OgLexerT__43          = 44
592
+	OgLexerT__44          = 45
593
+	OgLexerT__45          = 46
594
+	OgLexerT__46          = 47
595
+	OgLexerT__47          = 48
596
+	OgLexerT__48          = 49
597
+	OgLexerT__49          = 50
598
+	OgLexerT__50          = 51
599
+	OgLexerT__51          = 52
600
+	OgLexerT__52          = 53
601
+	OgLexerT__53          = 54
602
+	OgLexerT__54          = 55
603
+	OgLexerT__55          = 56
604
+	OgLexerT__56          = 57
605
+	OgLexerT__57          = 58
606
+	OgLexerT__58          = 59
607
+	OgLexerT__59          = 60
608
+	OgLexerT__60          = 61
609
+	OgLexerT__61          = 62
610
+	OgLexerT__62          = 63
611
+	OgLexerT__63          = 64
612
+	OgLexerT__64          = 65
613
+	OgLexerT__65          = 66
614
+	OgLexerT__66          = 67
615
+	OgLexerT__67          = 68
616
+	OgLexerIDENTIFIER     = 69
617
+	OgLexerKEYWORD        = 70
618
+	OgLexerBINARY_OP      = 71
619
+	OgLexerFUNC           = 72
620
+	OgLexerINT_LIT        = 73
621
+	OgLexerFLOAT_LIT      = 74
622
+	OgLexerIMAGINARY_LIT  = 75
623
+	OgLexerRUNE_LIT       = 76
624
+	OgLexerLITTLE_U_VALUE = 77
625
+	OgLexerBIG_U_VALUE    = 78
626
+	OgLexerSTRING_LIT     = 79
627
+	OgLexerWS             = 80
628
+	OgLexerCOMMENT        = 81
629
+	OgLexerLINE_COMMENT   = 82
630
+	OgLexerTERMINATOR     = 83
631
+	OgLexerErrorChar      = 84
632
+)
633
+
634
+// The most recently produced token.
635
+var lastToken antlr.Token
636
+
637
+/**
638
+ * Return the next token from the character stream and records this last
639
+ * token in case it resides on the default channel. This recorded token
640
+ * is used to determine when the lexer could possibly match a regex
641
+ * literal.
642
+ *
643
+ * @return the next token from the character stream.
644
+ */
645
+func (this *OgLexer) NextToken() antlr.Token {
646
+
647
+	// Get the next token.
648
+	next := this.BaseLexer.NextToken()
649
+
650
+	if next.GetChannel() == antlr.TokenDefaultChannel {
651
+		// Keep track of the last token on the default channel.
652
+		lastToken = next
653
+	}
654
+
655
+	return next
656
+}

+ 658
- 0
parser/og_listener.go View File

@@ -0,0 +1,658 @@
1
+// Generated from ./parser/Og.g4 by ANTLR 4.7.1.
2
+
3
+package parser // Og
4
+
5
+import "github.com/antlr/antlr4/runtime/Go/antlr"
6
+
7
+// OgListener is a complete listener for a parse tree produced by OgParser.
8
+type OgListener interface {
9
+	antlr.ParseTreeListener
10
+
11
+	// EnterSourceFile is called when entering the sourceFile production.
12
+	EnterSourceFile(c *SourceFileContext)
13
+
14
+	// EnterInterp is called when entering the interp production.
15
+	EnterInterp(c *InterpContext)
16
+
17
+	// EnterPackageClause is called when entering the packageClause production.
18
+	EnterPackageClause(c *PackageClauseContext)
19
+
20
+	// EnterImportDecl is called when entering the importDecl production.
21
+	EnterImportDecl(c *ImportDeclContext)
22
+
23
+	// EnterImportBody is called when entering the importBody production.
24
+	EnterImportBody(c *ImportBodyContext)
25
+
26
+	// EnterImportSpec is called when entering the importSpec production.
27
+	EnterImportSpec(c *ImportSpecContext)
28
+
29
+	// EnterImportPath is called when entering the importPath production.
30
+	EnterImportPath(c *ImportPathContext)
31
+
32
+	// EnterTopLevelDecl is called when entering the topLevelDecl production.
33
+	EnterTopLevelDecl(c *TopLevelDeclContext)
34
+
35
+	// EnterDeclaration is called when entering the declaration production.
36
+	EnterDeclaration(c *DeclarationContext)
37
+
38
+	// EnterConstDecl is called when entering the constDecl production.
39
+	EnterConstDecl(c *ConstDeclContext)
40
+
41
+	// EnterConstSpec is called when entering the constSpec production.
42
+	EnterConstSpec(c *ConstSpecContext)
43
+
44
+	// EnterIdentifierList is called when entering the identifierList production.
45
+	EnterIdentifierList(c *IdentifierListContext)
46
+
47
+	// EnterExpressionList is called when entering the expressionList production.
48
+	EnterExpressionList(c *ExpressionListContext)
49
+
50
+	// EnterTypeDecl is called when entering the typeDecl production.
51
+	EnterTypeDecl(c *TypeDeclContext)
52
+
53
+	// EnterTypeSpec is called when entering the typeSpec production.
54
+	EnterTypeSpec(c *TypeSpecContext)
55
+
56
+	// EnterFunctionDecl is called when entering the functionDecl production.
57
+	EnterFunctionDecl(c *FunctionDeclContext)
58
+
59
+	// EnterFunction is called when entering the function production.
60
+	EnterFunction(c *FunctionContext)
61
+
62
+	// EnterMethodDecl is called when entering the methodDecl production.
63
+	EnterMethodDecl(c *MethodDeclContext)
64
+
65
+	// EnterReceiver is called when entering the receiver production.
66
+	EnterReceiver(c *ReceiverContext)
67
+
68
+	// EnterVarDecl is called when entering the varDecl production.
69
+	EnterVarDecl(c *VarDeclContext)
70
+
71
+	// EnterVarSpec is called when entering the varSpec production.
72
+	EnterVarSpec(c *VarSpecContext)
73
+
74
+	// EnterBlock is called when entering the block production.
75
+	EnterBlock(c *BlockContext)
76
+
77
+	// EnterStatementList is called when entering the statementList production.
78
+	EnterStatementList(c *StatementListContext)
79
+
80
+	// EnterStatement is called when entering the statement production.
81
+	EnterStatement(c *StatementContext)
82
+
83
+	// EnterSimpleStmt is called when entering the simpleStmt production.
84
+	EnterSimpleStmt(c *SimpleStmtContext)
85
+
86
+	// EnterSendStmt is called when entering the sendStmt production.
87
+	EnterSendStmt(c *SendStmtContext)
88
+
89
+	// EnterIncDecStmt is called when entering the incDecStmt production.
90
+	EnterIncDecStmt(c *IncDecStmtContext)
91
+
92
+	// EnterAssignment is called when entering the assignment production.
93
+	EnterAssignment(c *AssignmentContext)
94
+
95
+	// EnterAssign_op is called when entering the assign_op production.
96
+	EnterAssign_op(c *Assign_opContext)
97
+
98
+	// EnterShortVarDecl is called when entering the shortVarDecl production.
99
+	EnterShortVarDecl(c *ShortVarDeclContext)
100
+
101
+	// EnterEmptyStmt is called when entering the emptyStmt production.
102
+	EnterEmptyStmt(c *EmptyStmtContext)
103
+
104
+	// EnterLabeledStmt is called when entering the labeledStmt production.
105
+	EnterLabeledStmt(c *LabeledStmtContext)
106
+
107
+	// EnterReturnStmt is called when entering the returnStmt production.
108
+	EnterReturnStmt(c *ReturnStmtContext)
109
+
110
+	// EnterBreakStmt is called when entering the breakStmt production.
111
+	EnterBreakStmt(c *BreakStmtContext)
112
+
113
+	// EnterContinueStmt is called when entering the continueStmt production.
114
+	EnterContinueStmt(c *ContinueStmtContext)
115
+
116
+	// EnterGotoStmt is called when entering the gotoStmt production.
117
+	EnterGotoStmt(c *GotoStmtContext)
118
+
119
+	// EnterFallthroughStmt is called when entering the fallthroughStmt production.
120
+	EnterFallthroughStmt(c *FallthroughStmtContext)
121
+
122
+	// EnterDeferStmt is called when entering the deferStmt production.
123
+	EnterDeferStmt(c *DeferStmtContext)
124
+
125
+	// EnterIfStmt is called when entering the ifStmt production.
126
+	EnterIfStmt(c *IfStmtContext)
127
+
128
+	// EnterSwitchStmt is called when entering the switchStmt production.
129
+	EnterSwitchStmt(c *SwitchStmtContext)
130
+
131
+	// EnterExprSwitchStmt is called when entering the exprSwitchStmt production.
132
+	EnterExprSwitchStmt(c *ExprSwitchStmtContext)
133
+
134
+	// EnterExprCaseClause is called when entering the exprCaseClause production.
135
+	EnterExprCaseClause(c *ExprCaseClauseContext)
136
+
137
+	// EnterExprSwitchCase is called when entering the exprSwitchCase production.
138
+	EnterExprSwitchCase(c *ExprSwitchCaseContext)
139
+
140
+	// EnterTypeSwitchStmt is called when entering the typeSwitchStmt production.
141
+	EnterTypeSwitchStmt(c *TypeSwitchStmtContext)
142
+
143
+	// EnterTypeSwitchGuard is called when entering the typeSwitchGuard production.
144
+	EnterTypeSwitchGuard(c *TypeSwitchGuardContext)
145
+
146
+	// EnterTypeCaseClause is called when entering the typeCaseClause production.
147
+	EnterTypeCaseClause(c *TypeCaseClauseContext)
148
+
149
+	// EnterTypeSwitchCase is called when entering the typeSwitchCase production.
150
+	EnterTypeSwitchCase(c *TypeSwitchCaseContext)
151
+
152
+	// EnterTypeList is called when entering the typeList production.
153
+	EnterTypeList(c *TypeListContext)
154
+
155
+	// EnterSelectStmt is called when entering the selectStmt production.
156
+	EnterSelectStmt(c *SelectStmtContext)
157
+
158
+	// EnterCommClause is called when entering the commClause production.
159
+	EnterCommClause(c *CommClauseContext)
160
+
161
+	// EnterCommCase is called when entering the commCase production.
162
+	EnterCommCase(c *CommCaseContext)
163
+
164
+	// EnterRecvStmt is called when entering the recvStmt production.