From: Reinhard Tartler
Description: Build with antlr 4.12

This reverts upstream commit cfbf821f1b458533051306305a39b743db7c4bdb

Index: golang-github-google-cel-go/parser/gen/cel_base_listener.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_base_listener.go
+++ golang-github-google-cel-go/parser/gen/cel_base_listener.go
@@ -1,7 +1,7 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen // CEL
-import "github.com/antlr4-go/antlr/v4"
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // BaseCELListener is a complete listener for a parse tree produced by CELParser.
 type BaseCELListener struct{}
Index: golang-github-google-cel-go/parser/gen/cel_base_visitor.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_base_visitor.go
+++ golang-github-google-cel-go/parser/gen/cel_base_visitor.go
@@ -1,8 +1,7 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen // CEL
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 type BaseCELVisitor struct {
 	*antlr.BaseParseTreeVisitor
Index: golang-github-google-cel-go/parser/gen/cel_lexer.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_lexer.go
+++ golang-github-google-cel-go/parser/gen/cel_lexer.go
@@ -1,278 +1,280 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen
+
 import (
 	"fmt"
-  	"sync"
+	"sync"
 	"unicode"
-	"github.com/antlr4-go/antlr/v4"
+
+	"github.com/antlr/antlr4/runtime/Go/antlr/v4"
 )
+
 // Suppress unused import error
 var _ = fmt.Printf
 var _ = sync.Once{}
 var _ = unicode.IsLetter
 
-
 type CELLexer struct {
 	*antlr.BaseLexer
 	channelNames []string
-	modeNames []string
+	modeNames    []string
 	// TODO: EOF string
 }
 
-var CELLexerLexerStaticData struct {
-  once                   sync.Once
-  serializedATN          []int32
-  ChannelNames           []string
-  ModeNames              []string
-  LiteralNames           []string
-  SymbolicNames          []string
-  RuleNames              []string
-  PredictionContextCache *antlr.PredictionContextCache
-  atn                    *antlr.ATN
-  decisionToDFA          []*antlr.DFA
+var cellexerLexerStaticData struct {
+	once                   sync.Once
+	serializedATN          []int32
+	channelNames           []string
+	modeNames              []string
+	literalNames           []string
+	symbolicNames          []string
+	ruleNames              []string
+	predictionContextCache *antlr.PredictionContextCache
+	atn                    *antlr.ATN
+	decisionToDFA          []*antlr.DFA
 }
 
 func cellexerLexerInit() {
-  staticData := &CELLexerLexerStaticData
-  staticData.ChannelNames = []string{
-    "DEFAULT_TOKEN_CHANNEL", "HIDDEN",
-  }
-  staticData.ModeNames = []string{
-    "DEFAULT_MODE",
-  }
-  staticData.LiteralNames = []string{
-    "", "'=='", "'!='", "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", 
-    "'['", "']'", "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'", 
-    "'?'", "':'", "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'",
-  }
-  staticData.SymbolicNames = []string{
-    "", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", 
-    "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", 
-    "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", 
-    "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", 
-    "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", 
-    "STRING", "BYTES", "IDENTIFIER",
-  }
-  staticData.RuleNames = []string{
-    "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", 
-    "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", 
-    "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", 
-    "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", 
-    "NUL", "BACKSLASH", "LETTER", "DIGIT", "EXPONENT", "HEXDIGIT", "RAW", 
-    "ESC_SEQ", "ESC_CHAR_SEQ", "ESC_OCT_SEQ", "ESC_BYTE_SEQ", "ESC_UNI_SEQ", 
-    "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", "STRING", 
-    "BYTES", "IDENTIFIER",
-  }
-  staticData.PredictionContextCache = antlr.NewPredictionContextCache()
-  staticData.serializedATN = []int32{
-	4, 0, 36, 423, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 
-	4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 
-	10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 
-	7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 
-	20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 
-	2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 
-	31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 
-	7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 
-	41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 
-	1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 
-	1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 
-	1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 
-	1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 
-	19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 
-	1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 
-	26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 
-	1, 30, 1, 30, 1, 31, 1, 31, 3, 31, 177, 8, 31, 1, 31, 4, 31, 180, 8, 31, 
-	11, 31, 12, 31, 181, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 
-	34, 3, 34, 192, 8, 34, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 
-	1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 
-	38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 
-	1, 38, 1, 38, 1, 38, 3, 38, 225, 8, 38, 1, 39, 4, 39, 228, 8, 39, 11, 39, 
-	12, 39, 229, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 238, 8, 40, 
-	10, 40, 12, 40, 241, 9, 40, 1, 40, 1, 40, 1, 41, 4, 41, 246, 8, 41, 11, 
-	41, 12, 41, 247, 1, 41, 1, 41, 4, 41, 252, 8, 41, 11, 41, 12, 41, 253, 
-	1, 41, 3, 41, 257, 8, 41, 1, 41, 4, 41, 260, 8, 41, 11, 41, 12, 41, 261, 
-	1, 41, 1, 41, 1, 41, 1, 41, 4, 41, 268, 8, 41, 11, 41, 12, 41, 269, 1, 
-	41, 3, 41, 273, 8, 41, 3, 41, 275, 8, 41, 1, 42, 4, 42, 278, 8, 42, 11, 
-	42, 12, 42, 279, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 286, 8, 42, 11, 42, 
-	12, 42, 287, 3, 42, 290, 8, 42, 1, 43, 4, 43, 293, 8, 43, 11, 43, 12, 43, 
-	294, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 303, 8, 43, 11, 43, 
-	12, 43, 304, 1, 43, 1, 43, 3, 43, 309, 8, 43, 1, 44, 1, 44, 1, 44, 5, 44, 
-	314, 8, 44, 10, 44, 12, 44, 317, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 
-	44, 323, 8, 44, 10, 44, 12, 44, 326, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 
-	1, 44, 1, 44, 1, 44, 5, 44, 335, 8, 44, 10, 44, 12, 44, 338, 9, 44, 1, 
-	44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 349, 
-	8, 44, 10, 44, 12, 44, 352, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 
-	44, 5, 44, 360, 8, 44, 10, 44, 12, 44, 363, 9, 44, 1, 44, 1, 44, 1, 44, 
-	1, 44, 1, 44, 5, 44, 370, 8, 44, 10, 44, 12, 44, 373, 9, 44, 1, 44, 1, 
-	44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 383, 8, 44, 10, 44, 
-	12, 44, 386, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 
-	44, 1, 44, 1, 44, 5, 44, 398, 8, 44, 10, 44, 12, 44, 401, 9, 44, 1, 44, 
-	1, 44, 1, 44, 1, 44, 3, 44, 407, 8, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 
-	46, 3, 46, 414, 8, 46, 1, 46, 1, 46, 1, 46, 5, 46, 419, 8, 46, 10, 46, 
-	12, 46, 422, 9, 46, 4, 336, 350, 384, 399, 0, 47, 1, 1, 3, 2, 5, 3, 7, 
-	4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 
-	14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 
-	23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 0, 59, 0, 61, 0, 63, 0, 
-	65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 29, 81, 30, 83, 31, 
-	85, 32, 87, 33, 89, 34, 91, 35, 93, 36, 1, 0, 16, 2, 0, 65, 90, 97, 122, 
-	2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97, 
-	102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96, 
-	98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120, 
-	120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117, 
-	4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 
-	92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 
-	39, 2, 0, 66, 66, 98, 98, 456, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 
-	1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 
-	1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 
-	21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 
-	0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 
-	0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 
-	0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 
-	0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 
-	1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 
-	89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 1, 95, 1, 0, 0, 0, 
-	3, 98, 1, 0, 0, 0, 5, 101, 1, 0, 0, 0, 7, 104, 1, 0, 0, 0, 9, 106, 1, 0, 
-	0, 0, 11, 109, 1, 0, 0, 0, 13, 112, 1, 0, 0, 0, 15, 114, 1, 0, 0, 0, 17, 
-	117, 1, 0, 0, 0, 19, 120, 1, 0, 0, 0, 21, 122, 1, 0, 0, 0, 23, 124, 1, 
-	0, 0, 0, 25, 126, 1, 0, 0, 0, 27, 128, 1, 0, 0, 0, 29, 130, 1, 0, 0, 0, 
-	31, 132, 1, 0, 0, 0, 33, 134, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 138, 
-	1, 0, 0, 0, 39, 140, 1, 0, 0, 0, 41, 142, 1, 0, 0, 0, 43, 144, 1, 0, 0, 
-	0, 45, 146, 1, 0, 0, 0, 47, 148, 1, 0, 0, 0, 49, 150, 1, 0, 0, 0, 51, 152, 
-	1, 0, 0, 0, 53, 157, 1, 0, 0, 0, 55, 163, 1, 0, 0, 0, 57, 168, 1, 0, 0, 
-	0, 59, 170, 1, 0, 0, 0, 61, 172, 1, 0, 0, 0, 63, 174, 1, 0, 0, 0, 65, 183, 
-	1, 0, 0, 0, 67, 185, 1, 0, 0, 0, 69, 191, 1, 0, 0, 0, 71, 193, 1, 0, 0, 
-	0, 73, 196, 1, 0, 0, 0, 75, 201, 1, 0, 0, 0, 77, 224, 1, 0, 0, 0, 79, 227, 
-	1, 0, 0, 0, 81, 233, 1, 0, 0, 0, 83, 274, 1, 0, 0, 0, 85, 289, 1, 0, 0, 
-	0, 87, 308, 1, 0, 0, 0, 89, 406, 1, 0, 0, 0, 91, 408, 1, 0, 0, 0, 93, 413, 
-	1, 0, 0, 0, 95, 96, 5, 61, 0, 0, 96, 97, 5, 61, 0, 0, 97, 2, 1, 0, 0, 0, 
-	98, 99, 5, 33, 0, 0, 99, 100, 5, 61, 0, 0, 100, 4, 1, 0, 0, 0, 101, 102, 
-	5, 105, 0, 0, 102, 103, 5, 110, 0, 0, 103, 6, 1, 0, 0, 0, 104, 105, 5, 
-	60, 0, 0, 105, 8, 1, 0, 0, 0, 106, 107, 5, 60, 0, 0, 107, 108, 5, 61, 0, 
-	0, 108, 10, 1, 0, 0, 0, 109, 110, 5, 62, 0, 0, 110, 111, 5, 61, 0, 0, 111, 
-	12, 1, 0, 0, 0, 112, 113, 5, 62, 0, 0, 113, 14, 1, 0, 0, 0, 114, 115, 5, 
-	38, 0, 0, 115, 116, 5, 38, 0, 0, 116, 16, 1, 0, 0, 0, 117, 118, 5, 124, 
-	0, 0, 118, 119, 5, 124, 0, 0, 119, 18, 1, 0, 0, 0, 120, 121, 5, 91, 0, 
-	0, 121, 20, 1, 0, 0, 0, 122, 123, 5, 93, 0, 0, 123, 22, 1, 0, 0, 0, 124, 
-	125, 5, 123, 0, 0, 125, 24, 1, 0, 0, 0, 126, 127, 5, 125, 0, 0, 127, 26, 
-	1, 0, 0, 0, 128, 129, 5, 40, 0, 0, 129, 28, 1, 0, 0, 0, 130, 131, 5, 41, 
-	0, 0, 131, 30, 1, 0, 0, 0, 132, 133, 5, 46, 0, 0, 133, 32, 1, 0, 0, 0, 
-	134, 135, 5, 44, 0, 0, 135, 34, 1, 0, 0, 0, 136, 137, 5, 45, 0, 0, 137, 
-	36, 1, 0, 0, 0, 138, 139, 5, 33, 0, 0, 139, 38, 1, 0, 0, 0, 140, 141, 5, 
-	63, 0, 0, 141, 40, 1, 0, 0, 0, 142, 143, 5, 58, 0, 0, 143, 42, 1, 0, 0, 
-	0, 144, 145, 5, 43, 0, 0, 145, 44, 1, 0, 0, 0, 146, 147, 5, 42, 0, 0, 147, 
-	46, 1, 0, 0, 0, 148, 149, 5, 47, 0, 0, 149, 48, 1, 0, 0, 0, 150, 151, 5, 
-	37, 0, 0, 151, 50, 1, 0, 0, 0, 152, 153, 5, 116, 0, 0, 153, 154, 5, 114, 
-	0, 0, 154, 155, 5, 117, 0, 0, 155, 156, 5, 101, 0, 0, 156, 52, 1, 0, 0, 
-	0, 157, 158, 5, 102, 0, 0, 158, 159, 5, 97, 0, 0, 159, 160, 5, 108, 0, 
-	0, 160, 161, 5, 115, 0, 0, 161, 162, 5, 101, 0, 0, 162, 54, 1, 0, 0, 0, 
-	163, 164, 5, 110, 0, 0, 164, 165, 5, 117, 0, 0, 165, 166, 5, 108, 0, 0, 
-	166, 167, 5, 108, 0, 0, 167, 56, 1, 0, 0, 0, 168, 169, 5, 92, 0, 0, 169, 
-	58, 1, 0, 0, 0, 170, 171, 7, 0, 0, 0, 171, 60, 1, 0, 0, 0, 172, 173, 2, 
-	48, 57, 0, 173, 62, 1, 0, 0, 0, 174, 176, 7, 1, 0, 0, 175, 177, 7, 2, 0, 
-	0, 176, 175, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 179, 1, 0, 0, 0, 178, 
-	180, 3, 61, 30, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179, 
-	1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 64, 1, 0, 0, 0, 183, 184, 7, 3, 
-	0, 0, 184, 66, 1, 0, 0, 0, 185, 186, 7, 4, 0, 0, 186, 68, 1, 0, 0, 0, 187, 
-	192, 3, 71, 35, 0, 188, 192, 3, 75, 37, 0, 189, 192, 3, 77, 38, 0, 190, 
-	192, 3, 73, 36, 0, 191, 187, 1, 0, 0, 0, 191, 188, 1, 0, 0, 0, 191, 189, 
-	1, 0, 0, 0, 191, 190, 1, 0, 0, 0, 192, 70, 1, 0, 0, 0, 193, 194, 3, 57, 
-	28, 0, 194, 195, 7, 5, 0, 0, 195, 72, 1, 0, 0, 0, 196, 197, 3, 57, 28, 
-	0, 197, 198, 2, 48, 51, 0, 198, 199, 2, 48, 55, 0, 199, 200, 2, 48, 55, 
-	0, 200, 74, 1, 0, 0, 0, 201, 202, 3, 57, 28, 0, 202, 203, 7, 6, 0, 0, 203, 
-	204, 3, 65, 32, 0, 204, 205, 3, 65, 32, 0, 205, 76, 1, 0, 0, 0, 206, 207, 
-	3, 57, 28, 0, 207, 208, 5, 117, 0, 0, 208, 209, 3, 65, 32, 0, 209, 210, 
-	3, 65, 32, 0, 210, 211, 3, 65, 32, 0, 211, 212, 3, 65, 32, 0, 212, 225, 
-	1, 0, 0, 0, 213, 214, 3, 57, 28, 0, 214, 215, 5, 85, 0, 0, 215, 216, 3, 
-	65, 32, 0, 216, 217, 3, 65, 32, 0, 217, 218, 3, 65, 32, 0, 218, 219, 3, 
-	65, 32, 0, 219, 220, 3, 65, 32, 0, 220, 221, 3, 65, 32, 0, 221, 222, 3, 
-	65, 32, 0, 222, 223, 3, 65, 32, 0, 223, 225, 1, 0, 0, 0, 224, 206, 1, 0, 
-	0, 0, 224, 213, 1, 0, 0, 0, 225, 78, 1, 0, 0, 0, 226, 228, 7, 7, 0, 0, 
-	227, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 229, 
-	230, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 232, 6, 39, 0, 0, 232, 80, 
-	1, 0, 0, 0, 233, 234, 5, 47, 0, 0, 234, 235, 5, 47, 0, 0, 235, 239, 1, 
-	0, 0, 0, 236, 238, 8, 8, 0, 0, 237, 236, 1, 0, 0, 0, 238, 241, 1, 0, 0, 
-	0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 242, 1, 0, 0, 0, 241, 
-	239, 1, 0, 0, 0, 242, 243, 6, 40, 0, 0, 243, 82, 1, 0, 0, 0, 244, 246, 
-	3, 61, 30, 0, 245, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 245, 1, 
-	0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 251, 5, 46, 0, 
-	0, 250, 252, 3, 61, 30, 0, 251, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 
-	253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 256, 1, 0, 0, 0, 255, 
-	257, 3, 63, 31, 0, 256, 255, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 275, 
-	1, 0, 0, 0, 258, 260, 3, 61, 30, 0, 259, 258, 1, 0, 0, 0, 260, 261, 1, 
-	0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0, 
-	0, 263, 264, 3, 63, 31, 0, 264, 275, 1, 0, 0, 0, 265, 267, 5, 46, 0, 0, 
-	266, 268, 3, 61, 30, 0, 267, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 
-	267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 272, 1, 0, 0, 0, 271, 273, 
-	3, 63, 31, 0, 272, 271, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 275, 1, 
-	0, 0, 0, 274, 245, 1, 0, 0, 0, 274, 259, 1, 0, 0, 0, 274, 265, 1, 0, 0, 
-	0, 275, 84, 1, 0, 0, 0, 276, 278, 3, 61, 30, 0, 277, 276, 1, 0, 0, 0, 278, 
-	279, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 290, 
-	1, 0, 0, 0, 281, 282, 5, 48, 0, 0, 282, 283, 5, 120, 0, 0, 283, 285, 1, 
-	0, 0, 0, 284, 286, 3, 65, 32, 0, 285, 284, 1, 0, 0, 0, 286, 287, 1, 0, 
-	0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, 0, 0, 
-	289, 277, 1, 0, 0, 0, 289, 281, 1, 0, 0, 0, 290, 86, 1, 0, 0, 0, 291, 293, 
-	3, 61, 30, 0, 292, 291, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 292, 1, 
-	0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 297, 7, 9, 0, 
-	0, 297, 309, 1, 0, 0, 0, 298, 299, 5, 48, 0, 0, 299, 300, 5, 120, 0, 0, 
-	300, 302, 1, 0, 0, 0, 301, 303, 3, 65, 32, 0, 302, 301, 1, 0, 0, 0, 303, 
-	304, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 306, 
-	1, 0, 0, 0, 306, 307, 7, 9, 0, 0, 307, 309, 1, 0, 0, 0, 308, 292, 1, 0, 
-	0, 0, 308, 298, 1, 0, 0, 0, 309, 88, 1, 0, 0, 0, 310, 315, 5, 34, 0, 0, 
-	311, 314, 3, 69, 34, 0, 312, 314, 8, 10, 0, 0, 313, 311, 1, 0, 0, 0, 313, 
-	312, 1, 0, 0, 0, 314, 317, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 315, 316, 
-	1, 0, 0, 0, 316, 318, 1, 0, 0, 0, 317, 315, 1, 0, 0, 0, 318, 407, 5, 34, 
-	0, 0, 319, 324, 5, 39, 0, 0, 320, 323, 3, 69, 34, 0, 321, 323, 8, 11, 0, 
-	0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 326, 1, 0, 0, 0, 324, 
-	322, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 327, 1, 0, 0, 0, 326, 324, 
-	1, 0, 0, 0, 327, 407, 5, 39, 0, 0, 328, 329, 5, 34, 0, 0, 329, 330, 5, 
-	34, 0, 0, 330, 331, 5, 34, 0, 0, 331, 336, 1, 0, 0, 0, 332, 335, 3, 69, 
-	34, 0, 333, 335, 8, 12, 0, 0, 334, 332, 1, 0, 0, 0, 334, 333, 1, 0, 0, 
-	0, 335, 338, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337, 
-	339, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 340, 5, 34, 0, 0, 340, 341, 
-	5, 34, 0, 0, 341, 407, 5, 34, 0, 0, 342, 343, 5, 39, 0, 0, 343, 344, 5, 
-	39, 0, 0, 344, 345, 5, 39, 0, 0, 345, 350, 1, 0, 0, 0, 346, 349, 3, 69, 
-	34, 0, 347, 349, 8, 12, 0, 0, 348, 346, 1, 0, 0, 0, 348, 347, 1, 0, 0, 
-	0, 349, 352, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 351, 
-	353, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 5, 39, 0, 0, 354, 355, 
-	5, 39, 0, 0, 355, 407, 5, 39, 0, 0, 356, 357, 3, 67, 33, 0, 357, 361, 5, 
-	34, 0, 0, 358, 360, 8, 13, 0, 0, 359, 358, 1, 0, 0, 0, 360, 363, 1, 0, 
-	0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 364, 1, 0, 0, 0, 
-	363, 361, 1, 0, 0, 0, 364, 365, 5, 34, 0, 0, 365, 407, 1, 0, 0, 0, 366, 
-	367, 3, 67, 33, 0, 367, 371, 5, 39, 0, 0, 368, 370, 8, 14, 0, 0, 369, 368, 
-	1, 0, 0, 0, 370, 373, 1, 0, 0, 0, 371, 369, 1, 0, 0, 0, 371, 372, 1, 0, 
-	0, 0, 372, 374, 1, 0, 0, 0, 373, 371, 1, 0, 0, 0, 374, 375, 5, 39, 0, 0, 
-	375, 407, 1, 0, 0, 0, 376, 377, 3, 67, 33, 0, 377, 378, 5, 34, 0, 0, 378, 
-	379, 5, 34, 0, 0, 379, 380, 5, 34, 0, 0, 380, 384, 1, 0, 0, 0, 381, 383, 
-	9, 0, 0, 0, 382, 381, 1, 0, 0, 0, 383, 386, 1, 0, 0, 0, 384, 385, 1, 0, 
-	0, 0, 384, 382, 1, 0, 0, 0, 385, 387, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 
-	387, 388, 5, 34, 0, 0, 388, 389, 5, 34, 0, 0, 389, 390, 5, 34, 0, 0, 390, 
-	407, 1, 0, 0, 0, 391, 392, 3, 67, 33, 0, 392, 393, 5, 39, 0, 0, 393, 394, 
-	5, 39, 0, 0, 394, 395, 5, 39, 0, 0, 395, 399, 1, 0, 0, 0, 396, 398, 9, 
-	0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 400, 1, 0, 0, 
-	0, 399, 397, 1, 0, 0, 0, 400, 402, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402, 
-	403, 5, 39, 0, 0, 403, 404, 5, 39, 0, 0, 404, 405, 5, 39, 0, 0, 405, 407, 
-	1, 0, 0, 0, 406, 310, 1, 0, 0, 0, 406, 319, 1, 0, 0, 0, 406, 328, 1, 0, 
-	0, 0, 406, 342, 1, 0, 0, 0, 406, 356, 1, 0, 0, 0, 406, 366, 1, 0, 0, 0, 
-	406, 376, 1, 0, 0, 0, 406, 391, 1, 0, 0, 0, 407, 90, 1, 0, 0, 0, 408, 409, 
-	7, 15, 0, 0, 409, 410, 3, 89, 44, 0, 410, 92, 1, 0, 0, 0, 411, 414, 3, 
-	59, 29, 0, 412, 414, 5, 95, 0, 0, 413, 411, 1, 0, 0, 0, 413, 412, 1, 0, 
-	0, 0, 414, 420, 1, 0, 0, 0, 415, 419, 3, 59, 29, 0, 416, 419, 3, 61, 30, 
-	0, 417, 419, 5, 95, 0, 0, 418, 415, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 
-	417, 1, 0, 0, 0, 419, 422, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 420, 421, 
-	1, 0, 0, 0, 421, 94, 1, 0, 0, 0, 422, 420, 1, 0, 0, 0, 36, 0, 176, 181, 
-	191, 224, 229, 239, 247, 253, 256, 261, 269, 272, 274, 279, 287, 289, 294, 
-	304, 308, 313, 315, 322, 324, 334, 336, 348, 350, 361, 371, 384, 399, 406, 
-	413, 418, 420, 1, 0, 1, 0,
-}
-  deserializer := antlr.NewATNDeserializer(nil)
-  staticData.atn = deserializer.Deserialize(staticData.serializedATN)
-  atn := staticData.atn
-  staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
-  decisionToDFA := staticData.decisionToDFA
-  for index, state := range atn.DecisionToState {
-    decisionToDFA[index] = antlr.NewDFA(state, index)
-  }
+	staticData := &cellexerLexerStaticData
+	staticData.channelNames = []string{
+		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
+	}
+	staticData.modeNames = []string{
+		"DEFAULT_MODE",
+	}
+	staticData.literalNames = []string{
+		"", "'=='", "'!='", "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'",
+		"'['", "']'", "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'",
+		"'?'", "':'", "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'",
+	}
+	staticData.symbolicNames = []string{
+		"", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS",
+		"GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE",
+		"RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK",
+		"COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE",
+		"NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT",
+		"STRING", "BYTES", "IDENTIFIER",
+	}
+	staticData.ruleNames = []string{
+		"EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS",
+		"GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE",
+		"RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK",
+		"COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE",
+		"NUL", "BACKSLASH", "LETTER", "DIGIT", "EXPONENT", "HEXDIGIT", "RAW",
+		"ESC_SEQ", "ESC_CHAR_SEQ", "ESC_OCT_SEQ", "ESC_BYTE_SEQ", "ESC_UNI_SEQ",
+		"WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", "STRING",
+		"BYTES", "IDENTIFIER",
+	}
+	staticData.predictionContextCache = antlr.NewPredictionContextCache()
+	staticData.serializedATN = []int32{
+		4, 0, 36, 423, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2,
+		4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
+		10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15,
+		7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7,
+		20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25,
+		2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2,
+		31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36,
+		7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7,
+		41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46,
+		1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4,
+		1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8,
+		1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13,
+		1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1,
+		19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24,
+		1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1,
+		26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29,
+		1, 30, 1, 30, 1, 31, 1, 31, 3, 31, 177, 8, 31, 1, 31, 4, 31, 180, 8, 31,
+		11, 31, 12, 31, 181, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1,
+		34, 3, 34, 192, 8, 34, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36,
+		1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1,
+		38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
+		1, 38, 1, 38, 1, 38, 3, 38, 225, 8, 38, 1, 39, 4, 39, 228, 8, 39, 11, 39,
+		12, 39, 229, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 238, 8, 40,
+		10, 40, 12, 40, 241, 9, 40, 1, 40, 1, 40, 1, 41, 4, 41, 246, 8, 41, 11,
+		41, 12, 41, 247, 1, 41, 1, 41, 4, 41, 252, 8, 41, 11, 41, 12, 41, 253,
+		1, 41, 3, 41, 257, 8, 41, 1, 41, 4, 41, 260, 8, 41, 11, 41, 12, 41, 261,
+		1, 41, 1, 41, 1, 41, 1, 41, 4, 41, 268, 8, 41, 11, 41, 12, 41, 269, 1,
+		41, 3, 41, 273, 8, 41, 3, 41, 275, 8, 41, 1, 42, 4, 42, 278, 8, 42, 11,
+		42, 12, 42, 279, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 286, 8, 42, 11, 42,
+		12, 42, 287, 3, 42, 290, 8, 42, 1, 43, 4, 43, 293, 8, 43, 11, 43, 12, 43,
+		294, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 303, 8, 43, 11, 43,
+		12, 43, 304, 1, 43, 1, 43, 3, 43, 309, 8, 43, 1, 44, 1, 44, 1, 44, 5, 44,
+		314, 8, 44, 10, 44, 12, 44, 317, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5,
+		44, 323, 8, 44, 10, 44, 12, 44, 326, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44,
+		1, 44, 1, 44, 1, 44, 5, 44, 335, 8, 44, 10, 44, 12, 44, 338, 9, 44, 1,
+		44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 349,
+		8, 44, 10, 44, 12, 44, 352, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
+		44, 5, 44, 360, 8, 44, 10, 44, 12, 44, 363, 9, 44, 1, 44, 1, 44, 1, 44,
+		1, 44, 1, 44, 5, 44, 370, 8, 44, 10, 44, 12, 44, 373, 9, 44, 1, 44, 1,
+		44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 383, 8, 44, 10, 44,
+		12, 44, 386, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
+		44, 1, 44, 1, 44, 5, 44, 398, 8, 44, 10, 44, 12, 44, 401, 9, 44, 1, 44,
+		1, 44, 1, 44, 1, 44, 3, 44, 407, 8, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1,
+		46, 3, 46, 414, 8, 46, 1, 46, 1, 46, 1, 46, 5, 46, 419, 8, 46, 10, 46,
+		12, 46, 422, 9, 46, 4, 336, 350, 384, 399, 0, 47, 1, 1, 3, 2, 5, 3, 7,
+		4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27,
+		14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45,
+		23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 0, 59, 0, 61, 0, 63, 0,
+		65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 29, 81, 30, 83, 31,
+		85, 32, 87, 33, 89, 34, 91, 35, 93, 36, 1, 0, 16, 2, 0, 65, 90, 97, 122,
+		2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97,
+		102, 2, 0, 82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96,
+		98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120,
+		120, 3, 0, 9, 10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117,
+		4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92,
+		92, 1, 0, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39,
+		39, 2, 0, 66, 66, 98, 98, 456, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5,
+		1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13,
+		1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0,
+		21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0,
+		0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0,
+		0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0,
+		0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1,
+		0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81,
+		1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0,
+		89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 1, 95, 1, 0, 0, 0,
+		3, 98, 1, 0, 0, 0, 5, 101, 1, 0, 0, 0, 7, 104, 1, 0, 0, 0, 9, 106, 1, 0,
+		0, 0, 11, 109, 1, 0, 0, 0, 13, 112, 1, 0, 0, 0, 15, 114, 1, 0, 0, 0, 17,
+		117, 1, 0, 0, 0, 19, 120, 1, 0, 0, 0, 21, 122, 1, 0, 0, 0, 23, 124, 1,
+		0, 0, 0, 25, 126, 1, 0, 0, 0, 27, 128, 1, 0, 0, 0, 29, 130, 1, 0, 0, 0,
+		31, 132, 1, 0, 0, 0, 33, 134, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 138,
+		1, 0, 0, 0, 39, 140, 1, 0, 0, 0, 41, 142, 1, 0, 0, 0, 43, 144, 1, 0, 0,
+		0, 45, 146, 1, 0, 0, 0, 47, 148, 1, 0, 0, 0, 49, 150, 1, 0, 0, 0, 51, 152,
+		1, 0, 0, 0, 53, 157, 1, 0, 0, 0, 55, 163, 1, 0, 0, 0, 57, 168, 1, 0, 0,
+		0, 59, 170, 1, 0, 0, 0, 61, 172, 1, 0, 0, 0, 63, 174, 1, 0, 0, 0, 65, 183,
+		1, 0, 0, 0, 67, 185, 1, 0, 0, 0, 69, 191, 1, 0, 0, 0, 71, 193, 1, 0, 0,
+		0, 73, 196, 1, 0, 0, 0, 75, 201, 1, 0, 0, 0, 77, 224, 1, 0, 0, 0, 79, 227,
+		1, 0, 0, 0, 81, 233, 1, 0, 0, 0, 83, 274, 1, 0, 0, 0, 85, 289, 1, 0, 0,
+		0, 87, 308, 1, 0, 0, 0, 89, 406, 1, 0, 0, 0, 91, 408, 1, 0, 0, 0, 93, 413,
+		1, 0, 0, 0, 95, 96, 5, 61, 0, 0, 96, 97, 5, 61, 0, 0, 97, 2, 1, 0, 0, 0,
+		98, 99, 5, 33, 0, 0, 99, 100, 5, 61, 0, 0, 100, 4, 1, 0, 0, 0, 101, 102,
+		5, 105, 0, 0, 102, 103, 5, 110, 0, 0, 103, 6, 1, 0, 0, 0, 104, 105, 5,
+		60, 0, 0, 105, 8, 1, 0, 0, 0, 106, 107, 5, 60, 0, 0, 107, 108, 5, 61, 0,
+		0, 108, 10, 1, 0, 0, 0, 109, 110, 5, 62, 0, 0, 110, 111, 5, 61, 0, 0, 111,
+		12, 1, 0, 0, 0, 112, 113, 5, 62, 0, 0, 113, 14, 1, 0, 0, 0, 114, 115, 5,
+		38, 0, 0, 115, 116, 5, 38, 0, 0, 116, 16, 1, 0, 0, 0, 117, 118, 5, 124,
+		0, 0, 118, 119, 5, 124, 0, 0, 119, 18, 1, 0, 0, 0, 120, 121, 5, 91, 0,
+		0, 121, 20, 1, 0, 0, 0, 122, 123, 5, 93, 0, 0, 123, 22, 1, 0, 0, 0, 124,
+		125, 5, 123, 0, 0, 125, 24, 1, 0, 0, 0, 126, 127, 5, 125, 0, 0, 127, 26,
+		1, 0, 0, 0, 128, 129, 5, 40, 0, 0, 129, 28, 1, 0, 0, 0, 130, 131, 5, 41,
+		0, 0, 131, 30, 1, 0, 0, 0, 132, 133, 5, 46, 0, 0, 133, 32, 1, 0, 0, 0,
+		134, 135, 5, 44, 0, 0, 135, 34, 1, 0, 0, 0, 136, 137, 5, 45, 0, 0, 137,
+		36, 1, 0, 0, 0, 138, 139, 5, 33, 0, 0, 139, 38, 1, 0, 0, 0, 140, 141, 5,
+		63, 0, 0, 141, 40, 1, 0, 0, 0, 142, 143, 5, 58, 0, 0, 143, 42, 1, 0, 0,
+		0, 144, 145, 5, 43, 0, 0, 145, 44, 1, 0, 0, 0, 146, 147, 5, 42, 0, 0, 147,
+		46, 1, 0, 0, 0, 148, 149, 5, 47, 0, 0, 149, 48, 1, 0, 0, 0, 150, 151, 5,
+		37, 0, 0, 151, 50, 1, 0, 0, 0, 152, 153, 5, 116, 0, 0, 153, 154, 5, 114,
+		0, 0, 154, 155, 5, 117, 0, 0, 155, 156, 5, 101, 0, 0, 156, 52, 1, 0, 0,
+		0, 157, 158, 5, 102, 0, 0, 158, 159, 5, 97, 0, 0, 159, 160, 5, 108, 0,
+		0, 160, 161, 5, 115, 0, 0, 161, 162, 5, 101, 0, 0, 162, 54, 1, 0, 0, 0,
+		163, 164, 5, 110, 0, 0, 164, 165, 5, 117, 0, 0, 165, 166, 5, 108, 0, 0,
+		166, 167, 5, 108, 0, 0, 167, 56, 1, 0, 0, 0, 168, 169, 5, 92, 0, 0, 169,
+		58, 1, 0, 0, 0, 170, 171, 7, 0, 0, 0, 171, 60, 1, 0, 0, 0, 172, 173, 2,
+		48, 57, 0, 173, 62, 1, 0, 0, 0, 174, 176, 7, 1, 0, 0, 175, 177, 7, 2, 0,
+		0, 176, 175, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 179, 1, 0, 0, 0, 178,
+		180, 3, 61, 30, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179,
+		1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 64, 1, 0, 0, 0, 183, 184, 7, 3,
+		0, 0, 184, 66, 1, 0, 0, 0, 185, 186, 7, 4, 0, 0, 186, 68, 1, 0, 0, 0, 187,
+		192, 3, 71, 35, 0, 188, 192, 3, 75, 37, 0, 189, 192, 3, 77, 38, 0, 190,
+		192, 3, 73, 36, 0, 191, 187, 1, 0, 0, 0, 191, 188, 1, 0, 0, 0, 191, 189,
+		1, 0, 0, 0, 191, 190, 1, 0, 0, 0, 192, 70, 1, 0, 0, 0, 193, 194, 3, 57,
+		28, 0, 194, 195, 7, 5, 0, 0, 195, 72, 1, 0, 0, 0, 196, 197, 3, 57, 28,
+		0, 197, 198, 2, 48, 51, 0, 198, 199, 2, 48, 55, 0, 199, 200, 2, 48, 55,
+		0, 200, 74, 1, 0, 0, 0, 201, 202, 3, 57, 28, 0, 202, 203, 7, 6, 0, 0, 203,
+		204, 3, 65, 32, 0, 204, 205, 3, 65, 32, 0, 205, 76, 1, 0, 0, 0, 206, 207,
+		3, 57, 28, 0, 207, 208, 5, 117, 0, 0, 208, 209, 3, 65, 32, 0, 209, 210,
+		3, 65, 32, 0, 210, 211, 3, 65, 32, 0, 211, 212, 3, 65, 32, 0, 212, 225,
+		1, 0, 0, 0, 213, 214, 3, 57, 28, 0, 214, 215, 5, 85, 0, 0, 215, 216, 3,
+		65, 32, 0, 216, 217, 3, 65, 32, 0, 217, 218, 3, 65, 32, 0, 218, 219, 3,
+		65, 32, 0, 219, 220, 3, 65, 32, 0, 220, 221, 3, 65, 32, 0, 221, 222, 3,
+		65, 32, 0, 222, 223, 3, 65, 32, 0, 223, 225, 1, 0, 0, 0, 224, 206, 1, 0,
+		0, 0, 224, 213, 1, 0, 0, 0, 225, 78, 1, 0, 0, 0, 226, 228, 7, 7, 0, 0,
+		227, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 229,
+		230, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 232, 6, 39, 0, 0, 232, 80,
+		1, 0, 0, 0, 233, 234, 5, 47, 0, 0, 234, 235, 5, 47, 0, 0, 235, 239, 1,
+		0, 0, 0, 236, 238, 8, 8, 0, 0, 237, 236, 1, 0, 0, 0, 238, 241, 1, 0, 0,
+		0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 242, 1, 0, 0, 0, 241,
+		239, 1, 0, 0, 0, 242, 243, 6, 40, 0, 0, 243, 82, 1, 0, 0, 0, 244, 246,
+		3, 61, 30, 0, 245, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 245, 1,
+		0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 251, 5, 46, 0,
+		0, 250, 252, 3, 61, 30, 0, 251, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0,
+		253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 256, 1, 0, 0, 0, 255,
+		257, 3, 63, 31, 0, 256, 255, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 275,
+		1, 0, 0, 0, 258, 260, 3, 61, 30, 0, 259, 258, 1, 0, 0, 0, 260, 261, 1,
+		0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0,
+		0, 263, 264, 3, 63, 31, 0, 264, 275, 1, 0, 0, 0, 265, 267, 5, 46, 0, 0,
+		266, 268, 3, 61, 30, 0, 267, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269,
+		267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 272, 1, 0, 0, 0, 271, 273,
+		3, 63, 31, 0, 272, 271, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 275, 1,
+		0, 0, 0, 274, 245, 1, 0, 0, 0, 274, 259, 1, 0, 0, 0, 274, 265, 1, 0, 0,
+		0, 275, 84, 1, 0, 0, 0, 276, 278, 3, 61, 30, 0, 277, 276, 1, 0, 0, 0, 278,
+		279, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 290,
+		1, 0, 0, 0, 281, 282, 5, 48, 0, 0, 282, 283, 5, 120, 0, 0, 283, 285, 1,
+		0, 0, 0, 284, 286, 3, 65, 32, 0, 285, 284, 1, 0, 0, 0, 286, 287, 1, 0,
+		0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, 0, 0,
+		289, 277, 1, 0, 0, 0, 289, 281, 1, 0, 0, 0, 290, 86, 1, 0, 0, 0, 291, 293,
+		3, 61, 30, 0, 292, 291, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 292, 1,
+		0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 297, 7, 9, 0,
+		0, 297, 309, 1, 0, 0, 0, 298, 299, 5, 48, 0, 0, 299, 300, 5, 120, 0, 0,
+		300, 302, 1, 0, 0, 0, 301, 303, 3, 65, 32, 0, 302, 301, 1, 0, 0, 0, 303,
+		304, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 306,
+		1, 0, 0, 0, 306, 307, 7, 9, 0, 0, 307, 309, 1, 0, 0, 0, 308, 292, 1, 0,
+		0, 0, 308, 298, 1, 0, 0, 0, 309, 88, 1, 0, 0, 0, 310, 315, 5, 34, 0, 0,
+		311, 314, 3, 69, 34, 0, 312, 314, 8, 10, 0, 0, 313, 311, 1, 0, 0, 0, 313,
+		312, 1, 0, 0, 0, 314, 317, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 315, 316,
+		1, 0, 0, 0, 316, 318, 1, 0, 0, 0, 317, 315, 1, 0, 0, 0, 318, 407, 5, 34,
+		0, 0, 319, 324, 5, 39, 0, 0, 320, 323, 3, 69, 34, 0, 321, 323, 8, 11, 0,
+		0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 326, 1, 0, 0, 0, 324,
+		322, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 327, 1, 0, 0, 0, 326, 324,
+		1, 0, 0, 0, 327, 407, 5, 39, 0, 0, 328, 329, 5, 34, 0, 0, 329, 330, 5,
+		34, 0, 0, 330, 331, 5, 34, 0, 0, 331, 336, 1, 0, 0, 0, 332, 335, 3, 69,
+		34, 0, 333, 335, 8, 12, 0, 0, 334, 332, 1, 0, 0, 0, 334, 333, 1, 0, 0,
+		0, 335, 338, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337,
+		339, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 340, 5, 34, 0, 0, 340, 341,
+		5, 34, 0, 0, 341, 407, 5, 34, 0, 0, 342, 343, 5, 39, 0, 0, 343, 344, 5,
+		39, 0, 0, 344, 345, 5, 39, 0, 0, 345, 350, 1, 0, 0, 0, 346, 349, 3, 69,
+		34, 0, 347, 349, 8, 12, 0, 0, 348, 346, 1, 0, 0, 0, 348, 347, 1, 0, 0,
+		0, 349, 352, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 351,
+		353, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 5, 39, 0, 0, 354, 355,
+		5, 39, 0, 0, 355, 407, 5, 39, 0, 0, 356, 357, 3, 67, 33, 0, 357, 361, 5,
+		34, 0, 0, 358, 360, 8, 13, 0, 0, 359, 358, 1, 0, 0, 0, 360, 363, 1, 0,
+		0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 364, 1, 0, 0, 0,
+		363, 361, 1, 0, 0, 0, 364, 365, 5, 34, 0, 0, 365, 407, 1, 0, 0, 0, 366,
+		367, 3, 67, 33, 0, 367, 371, 5, 39, 0, 0, 368, 370, 8, 14, 0, 0, 369, 368,
+		1, 0, 0, 0, 370, 373, 1, 0, 0, 0, 371, 369, 1, 0, 0, 0, 371, 372, 1, 0,
+		0, 0, 372, 374, 1, 0, 0, 0, 373, 371, 1, 0, 0, 0, 374, 375, 5, 39, 0, 0,
+		375, 407, 1, 0, 0, 0, 376, 377, 3, 67, 33, 0, 377, 378, 5, 34, 0, 0, 378,
+		379, 5, 34, 0, 0, 379, 380, 5, 34, 0, 0, 380, 384, 1, 0, 0, 0, 381, 383,
+		9, 0, 0, 0, 382, 381, 1, 0, 0, 0, 383, 386, 1, 0, 0, 0, 384, 385, 1, 0,
+		0, 0, 384, 382, 1, 0, 0, 0, 385, 387, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0,
+		387, 388, 5, 34, 0, 0, 388, 389, 5, 34, 0, 0, 389, 390, 5, 34, 0, 0, 390,
+		407, 1, 0, 0, 0, 391, 392, 3, 67, 33, 0, 392, 393, 5, 39, 0, 0, 393, 394,
+		5, 39, 0, 0, 394, 395, 5, 39, 0, 0, 395, 399, 1, 0, 0, 0, 396, 398, 9,
+		0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 400, 1, 0, 0,
+		0, 399, 397, 1, 0, 0, 0, 400, 402, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402,
+		403, 5, 39, 0, 0, 403, 404, 5, 39, 0, 0, 404, 405, 5, 39, 0, 0, 405, 407,
+		1, 0, 0, 0, 406, 310, 1, 0, 0, 0, 406, 319, 1, 0, 0, 0, 406, 328, 1, 0,
+		0, 0, 406, 342, 1, 0, 0, 0, 406, 356, 1, 0, 0, 0, 406, 366, 1, 0, 0, 0,
+		406, 376, 1, 0, 0, 0, 406, 391, 1, 0, 0, 0, 407, 90, 1, 0, 0, 0, 408, 409,
+		7, 15, 0, 0, 409, 410, 3, 89, 44, 0, 410, 92, 1, 0, 0, 0, 411, 414, 3,
+		59, 29, 0, 412, 414, 5, 95, 0, 0, 413, 411, 1, 0, 0, 0, 413, 412, 1, 0,
+		0, 0, 414, 420, 1, 0, 0, 0, 415, 419, 3, 59, 29, 0, 416, 419, 3, 61, 30,
+		0, 417, 419, 5, 95, 0, 0, 418, 415, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418,
+		417, 1, 0, 0, 0, 419, 422, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 420, 421,
+		1, 0, 0, 0, 421, 94, 1, 0, 0, 0, 422, 420, 1, 0, 0, 0, 36, 0, 176, 181,
+		191, 224, 229, 239, 247, 253, 256, 261, 269, 272, 274, 279, 287, 289, 294,
+		304, 308, 313, 315, 322, 324, 334, 336, 348, 350, 361, 371, 384, 399, 406,
+		413, 418, 420, 1, 0, 1, 0,
+	}
+	deserializer := antlr.NewATNDeserializer(nil)
+	staticData.atn = deserializer.Deserialize(staticData.serializedATN)
+	atn := staticData.atn
+	staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
+	decisionToDFA := staticData.decisionToDFA
+	for index, state := range atn.DecisionToState {
+		decisionToDFA[index] = antlr.NewDFA(state, index)
+	}
 }
 
 // CELLexerInit initializes any static state used to implement CELLexer. By default the
@@ -280,22 +282,22 @@ func cellexerLexerInit() {
 // NewCELLexer(). You can call this function if you wish to initialize the static state ahead
 // of time.
 func CELLexerInit() {
-  staticData := &CELLexerLexerStaticData
-  staticData.once.Do(cellexerLexerInit)
+	staticData := &cellexerLexerStaticData
+	staticData.once.Do(cellexerLexerInit)
 }
 
 // NewCELLexer produces a new lexer instance for the optional input antlr.CharStream.
 func NewCELLexer(input antlr.CharStream) *CELLexer {
-  CELLexerInit()
+	CELLexerInit()
 	l := new(CELLexer)
 	l.BaseLexer = antlr.NewBaseLexer(input)
-  staticData := &CELLexerLexerStaticData
-	l.Interpreter = antlr.NewLexerATNSimulator(l, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache)
-	l.channelNames = staticData.ChannelNames
-	l.modeNames = staticData.ModeNames
-	l.RuleNames = staticData.RuleNames
-	l.LiteralNames = staticData.LiteralNames
-	l.SymbolicNames = staticData.SymbolicNames
+	staticData := &cellexerLexerStaticData
+	l.Interpreter = antlr.NewLexerATNSimulator(l, staticData.atn, staticData.decisionToDFA, staticData.predictionContextCache)
+	l.channelNames = staticData.channelNames
+	l.modeNames = staticData.modeNames
+	l.RuleNames = staticData.ruleNames
+	l.LiteralNames = staticData.literalNames
+	l.SymbolicNames = staticData.symbolicNames
 	l.GrammarFileName = "CEL.g4"
 	// TODO: l.EOF = antlr.TokenEOF
 
@@ -304,41 +306,40 @@ func NewCELLexer(input antlr.CharStream)
 
 // CELLexer tokens.
 const (
-	CELLexerEQUALS = 1
-	CELLexerNOT_EQUALS = 2
-	CELLexerIN = 3
-	CELLexerLESS = 4
-	CELLexerLESS_EQUALS = 5
+	CELLexerEQUALS         = 1
+	CELLexerNOT_EQUALS     = 2
+	CELLexerIN             = 3
+	CELLexerLESS           = 4
+	CELLexerLESS_EQUALS    = 5
 	CELLexerGREATER_EQUALS = 6
-	CELLexerGREATER = 7
-	CELLexerLOGICAL_AND = 8
-	CELLexerLOGICAL_OR = 9
-	CELLexerLBRACKET = 10
-	CELLexerRPRACKET = 11
-	CELLexerLBRACE = 12
-	CELLexerRBRACE = 13
-	CELLexerLPAREN = 14
-	CELLexerRPAREN = 15
-	CELLexerDOT = 16
-	CELLexerCOMMA = 17
-	CELLexerMINUS = 18
-	CELLexerEXCLAM = 19
-	CELLexerQUESTIONMARK = 20
-	CELLexerCOLON = 21
-	CELLexerPLUS = 22
-	CELLexerSTAR = 23
-	CELLexerSLASH = 24
-	CELLexerPERCENT = 25
-	CELLexerCEL_TRUE = 26
-	CELLexerCEL_FALSE = 27
-	CELLexerNUL = 28
-	CELLexerWHITESPACE = 29
-	CELLexerCOMMENT = 30
-	CELLexerNUM_FLOAT = 31
-	CELLexerNUM_INT = 32
-	CELLexerNUM_UINT = 33
-	CELLexerSTRING = 34
-	CELLexerBYTES = 35
-	CELLexerIDENTIFIER = 36
+	CELLexerGREATER        = 7
+	CELLexerLOGICAL_AND    = 8
+	CELLexerLOGICAL_OR     = 9
+	CELLexerLBRACKET       = 10
+	CELLexerRPRACKET       = 11
+	CELLexerLBRACE         = 12
+	CELLexerRBRACE         = 13
+	CELLexerLPAREN         = 14
+	CELLexerRPAREN         = 15
+	CELLexerDOT            = 16
+	CELLexerCOMMA          = 17
+	CELLexerMINUS          = 18
+	CELLexerEXCLAM         = 19
+	CELLexerQUESTIONMARK   = 20
+	CELLexerCOLON          = 21
+	CELLexerPLUS           = 22
+	CELLexerSTAR           = 23
+	CELLexerSLASH          = 24
+	CELLexerPERCENT        = 25
+	CELLexerCEL_TRUE       = 26
+	CELLexerCEL_FALSE      = 27
+	CELLexerNUL            = 28
+	CELLexerWHITESPACE     = 29
+	CELLexerCOMMENT        = 30
+	CELLexerNUM_FLOAT      = 31
+	CELLexerNUM_INT        = 32
+	CELLexerNUM_UINT       = 33
+	CELLexerSTRING         = 34
+	CELLexerBYTES          = 35
+	CELLexerIDENTIFIER     = 36
 )
-
Index: golang-github-google-cel-go/parser/gen/cel_listener.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_listener.go
+++ golang-github-google-cel-go/parser/gen/cel_listener.go
@@ -1,8 +1,7 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen // CEL
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // CELListener is a complete listener for a parse tree produced by CELParser.
 type CELListener interface {
Index: golang-github-google-cel-go/parser/gen/cel_parser.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_parser.go
+++ golang-github-google-cel-go/parser/gen/cel_parser.go
@@ -1,12 +1,12 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen // CEL
 import (
 	"fmt"
 	"strconv"
-  	"sync"
+	"sync"
 
-	"github.com/antlr4-go/antlr/v4"
+	"github.com/antlr/antlr4/runtime/Go/antlr/v4"
 )
 
 // Suppress unused import errors
@@ -14,167 +14,166 @@ var _ = fmt.Printf
 var _ = strconv.Itoa
 var _ = sync.Once{}
 
-
 type CELParser struct {
 	*antlr.BaseParser
 }
 
-var CELParserStaticData struct {
-  once                   sync.Once
-  serializedATN          []int32
-  LiteralNames           []string
-  SymbolicNames          []string
-  RuleNames              []string
-  PredictionContextCache *antlr.PredictionContextCache
-  atn                    *antlr.ATN
-  decisionToDFA          []*antlr.DFA
+var celParserStaticData struct {
+	once                   sync.Once
+	serializedATN          []int32
+	literalNames           []string
+	symbolicNames          []string
+	ruleNames              []string
+	predictionContextCache *antlr.PredictionContextCache
+	atn                    *antlr.ATN
+	decisionToDFA          []*antlr.DFA
 }
 
 func celParserInit() {
-  staticData := &CELParserStaticData
-  staticData.LiteralNames = []string{
-    "", "'=='", "'!='", "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'", 
-    "'['", "']'", "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'", 
-    "'?'", "':'", "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'",
-  }
-  staticData.SymbolicNames = []string{
-    "", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", 
-    "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", 
-    "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", 
-    "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", 
-    "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", 
-    "STRING", "BYTES", "IDENTIFIER",
-  }
-  staticData.RuleNames = []string{
-    "start", "expr", "conditionalOr", "conditionalAnd", "relation", "calc", 
-    "unary", "member", "primary", "exprList", "listInit", "fieldInitializerList", 
-    "optField", "mapInitializerList", "optExpr", "literal",
-  }
-  staticData.PredictionContextCache = antlr.NewPredictionContextCache()
-  staticData.serializedATN = []int32{
-	4, 1, 36, 251, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 
-	4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 
-	10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 
-	1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 42, 8, 1, 1, 
-	2, 1, 2, 1, 2, 5, 2, 47, 8, 2, 10, 2, 12, 2, 50, 9, 2, 1, 3, 1, 3, 1, 3, 
-	5, 3, 55, 8, 3, 10, 3, 12, 3, 58, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 
-	4, 5, 4, 66, 8, 4, 10, 4, 12, 4, 69, 9, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 
-	1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 80, 8, 5, 10, 5, 12, 5, 83, 9, 5, 1, 6, 1, 
-	6, 4, 6, 87, 8, 6, 11, 6, 12, 6, 88, 1, 6, 1, 6, 4, 6, 93, 8, 6, 11, 6, 
-	12, 6, 94, 1, 6, 3, 6, 98, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 
-	7, 106, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 114, 8, 7, 1, 7, 
-	1, 7, 1, 7, 1, 7, 3, 7, 120, 8, 7, 1, 7, 1, 7, 1, 7, 5, 7, 125, 8, 7, 10, 
-	7, 12, 7, 128, 9, 7, 1, 8, 3, 8, 131, 8, 8, 1, 8, 1, 8, 1, 8, 3, 8, 136, 
-	8, 8, 1, 8, 3, 8, 139, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 
-	147, 8, 8, 1, 8, 3, 8, 150, 8, 8, 1, 8, 1, 8, 1, 8, 3, 8, 155, 8, 8, 1, 
-	8, 3, 8, 158, 8, 8, 1, 8, 1, 8, 3, 8, 162, 8, 8, 1, 8, 1, 8, 1, 8, 5, 8, 
-	167, 8, 8, 10, 8, 12, 8, 170, 9, 8, 1, 8, 1, 8, 3, 8, 174, 8, 8, 1, 8, 
-	3, 8, 177, 8, 8, 1, 8, 1, 8, 3, 8, 181, 8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 186, 
-	8, 9, 10, 9, 12, 9, 189, 9, 9, 1, 10, 1, 10, 1, 10, 5, 10, 194, 8, 10, 
-	10, 10, 12, 10, 197, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 
-	11, 1, 11, 5, 11, 207, 8, 11, 10, 11, 12, 11, 210, 9, 11, 1, 12, 3, 12, 
-	213, 8, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 
-	13, 1, 13, 5, 13, 225, 8, 13, 10, 13, 12, 13, 228, 9, 13, 1, 14, 3, 14, 
-	231, 8, 14, 1, 14, 1, 14, 1, 15, 3, 15, 236, 8, 15, 1, 15, 1, 15, 1, 15, 
-	3, 15, 241, 8, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 249, 
-	8, 15, 1, 15, 0, 3, 8, 10, 14, 16, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 
-	22, 24, 26, 28, 30, 0, 3, 1, 0, 1, 7, 1, 0, 23, 25, 2, 0, 18, 18, 22, 22, 
-	281, 0, 32, 1, 0, 0, 0, 2, 35, 1, 0, 0, 0, 4, 43, 1, 0, 0, 0, 6, 51, 1, 
-	0, 0, 0, 8, 59, 1, 0, 0, 0, 10, 70, 1, 0, 0, 0, 12, 97, 1, 0, 0, 0, 14, 
-	99, 1, 0, 0, 0, 16, 180, 1, 0, 0, 0, 18, 182, 1, 0, 0, 0, 20, 190, 1, 0, 
-	0, 0, 22, 198, 1, 0, 0, 0, 24, 212, 1, 0, 0, 0, 26, 216, 1, 0, 0, 0, 28, 
-	230, 1, 0, 0, 0, 30, 248, 1, 0, 0, 0, 32, 33, 3, 2, 1, 0, 33, 34, 5, 0, 
-	0, 1, 34, 1, 1, 0, 0, 0, 35, 41, 3, 4, 2, 0, 36, 37, 5, 20, 0, 0, 37, 38, 
-	3, 4, 2, 0, 38, 39, 5, 21, 0, 0, 39, 40, 3, 2, 1, 0, 40, 42, 1, 0, 0, 0, 
-	41, 36, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 3, 1, 0, 0, 0, 43, 48, 3, 6, 
-	3, 0, 44, 45, 5, 9, 0, 0, 45, 47, 3, 6, 3, 0, 46, 44, 1, 0, 0, 0, 47, 50, 
-	1, 0, 0, 0, 48, 46, 1, 0, 0, 0, 48, 49, 1, 0, 0, 0, 49, 5, 1, 0, 0, 0, 
-	50, 48, 1, 0, 0, 0, 51, 56, 3, 8, 4, 0, 52, 53, 5, 8, 0, 0, 53, 55, 3, 
-	8, 4, 0, 54, 52, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56, 
-	57, 1, 0, 0, 0, 57, 7, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 60, 6, 4, -1, 
-	0, 60, 61, 3, 10, 5, 0, 61, 67, 1, 0, 0, 0, 62, 63, 10, 1, 0, 0, 63, 64, 
-	7, 0, 0, 0, 64, 66, 3, 8, 4, 2, 65, 62, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0, 
-	67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 9, 1, 0, 0, 0, 69, 67, 1, 0, 
-	0, 0, 70, 71, 6, 5, -1, 0, 71, 72, 3, 12, 6, 0, 72, 81, 1, 0, 0, 0, 73, 
-	74, 10, 2, 0, 0, 74, 75, 7, 1, 0, 0, 75, 80, 3, 10, 5, 3, 76, 77, 10, 1, 
-	0, 0, 77, 78, 7, 2, 0, 0, 78, 80, 3, 10, 5, 2, 79, 73, 1, 0, 0, 0, 79, 
-	76, 1, 0, 0, 0, 80, 83, 1, 0, 0, 0, 81, 79, 1, 0, 0, 0, 81, 82, 1, 0, 0, 
-	0, 82, 11, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 84, 98, 3, 14, 7, 0, 85, 87, 
-	5, 19, 0, 0, 86, 85, 1, 0, 0, 0, 87, 88, 1, 0, 0, 0, 88, 86, 1, 0, 0, 0, 
-	88, 89, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 98, 3, 14, 7, 0, 91, 93, 5, 
-	18, 0, 0, 92, 91, 1, 0, 0, 0, 93, 94, 1, 0, 0, 0, 94, 92, 1, 0, 0, 0, 94, 
-	95, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 98, 3, 14, 7, 0, 97, 84, 1, 0, 
-	0, 0, 97, 86, 1, 0, 0, 0, 97, 92, 1, 0, 0, 0, 98, 13, 1, 0, 0, 0, 99, 100, 
-	6, 7, -1, 0, 100, 101, 3, 16, 8, 0, 101, 126, 1, 0, 0, 0, 102, 103, 10, 
-	3, 0, 0, 103, 105, 5, 16, 0, 0, 104, 106, 5, 20, 0, 0, 105, 104, 1, 0, 
-	0, 0, 105, 106, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 125, 5, 36, 0, 0, 
-	108, 109, 10, 2, 0, 0, 109, 110, 5, 16, 0, 0, 110, 111, 5, 36, 0, 0, 111, 
-	113, 5, 14, 0, 0, 112, 114, 3, 18, 9, 0, 113, 112, 1, 0, 0, 0, 113, 114, 
-	1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 125, 5, 15, 0, 0, 116, 117, 10, 
-	1, 0, 0, 117, 119, 5, 10, 0, 0, 118, 120, 5, 20, 0, 0, 119, 118, 1, 0, 
-	0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 3, 2, 1, 0, 
-	122, 123, 5, 11, 0, 0, 123, 125, 1, 0, 0, 0, 124, 102, 1, 0, 0, 0, 124, 
-	108, 1, 0, 0, 0, 124, 116, 1, 0, 0, 0, 125, 128, 1, 0, 0, 0, 126, 124, 
-	1, 0, 0, 0, 126, 127, 1, 0, 0, 0, 127, 15, 1, 0, 0, 0, 128, 126, 1, 0, 
-	0, 0, 129, 131, 5, 16, 0, 0, 130, 129, 1, 0, 0, 0, 130, 131, 1, 0, 0, 0, 
-	131, 132, 1, 0, 0, 0, 132, 138, 5, 36, 0, 0, 133, 135, 5, 14, 0, 0, 134, 
-	136, 3, 18, 9, 0, 135, 134, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0, 136, 137, 
-	1, 0, 0, 0, 137, 139, 5, 15, 0, 0, 138, 133, 1, 0, 0, 0, 138, 139, 1, 0, 
-	0, 0, 139, 181, 1, 0, 0, 0, 140, 141, 5, 14, 0, 0, 141, 142, 3, 2, 1, 0, 
-	142, 143, 5, 15, 0, 0, 143, 181, 1, 0, 0, 0, 144, 146, 5, 10, 0, 0, 145, 
-	147, 3, 20, 10, 0, 146, 145, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 149, 
-	1, 0, 0, 0, 148, 150, 5, 17, 0, 0, 149, 148, 1, 0, 0, 0, 149, 150, 1, 0, 
-	0, 0, 150, 151, 1, 0, 0, 0, 151, 181, 5, 11, 0, 0, 152, 154, 5, 12, 0, 
-	0, 153, 155, 3, 26, 13, 0, 154, 153, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 
-	155, 157, 1, 0, 0, 0, 156, 158, 5, 17, 0, 0, 157, 156, 1, 0, 0, 0, 157, 
-	158, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 181, 5, 13, 0, 0, 160, 162, 
-	5, 16, 0, 0, 161, 160, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 163, 1, 0, 
-	0, 0, 163, 168, 5, 36, 0, 0, 164, 165, 5, 16, 0, 0, 165, 167, 5, 36, 0, 
-	0, 166, 164, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 
-	169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 173, 
-	5, 12, 0, 0, 172, 174, 3, 22, 11, 0, 173, 172, 1, 0, 0, 0, 173, 174, 1, 
-	0, 0, 0, 174, 176, 1, 0, 0, 0, 175, 177, 5, 17, 0, 0, 176, 175, 1, 0, 0, 
-	0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 181, 5, 13, 0, 0, 179, 
-	181, 3, 30, 15, 0, 180, 130, 1, 0, 0, 0, 180, 140, 1, 0, 0, 0, 180, 144, 
-	1, 0, 0, 0, 180, 152, 1, 0, 0, 0, 180, 161, 1, 0, 0, 0, 180, 179, 1, 0, 
-	0, 0, 181, 17, 1, 0, 0, 0, 182, 187, 3, 2, 1, 0, 183, 184, 5, 17, 0, 0, 
-	184, 186, 3, 2, 1, 0, 185, 183, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 
-	185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 19, 1, 0, 0, 0, 189, 187, 1, 
-	0, 0, 0, 190, 195, 3, 28, 14, 0, 191, 192, 5, 17, 0, 0, 192, 194, 3, 28, 
-	14, 0, 193, 191, 1, 0, 0, 0, 194, 197, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0, 
-	195, 196, 1, 0, 0, 0, 196, 21, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 199, 
-	3, 24, 12, 0, 199, 200, 5, 21, 0, 0, 200, 208, 3, 2, 1, 0, 201, 202, 5, 
-	17, 0, 0, 202, 203, 3, 24, 12, 0, 203, 204, 5, 21, 0, 0, 204, 205, 3, 2, 
-	1, 0, 205, 207, 1, 0, 0, 0, 206, 201, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 
-	208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 23, 1, 0, 0, 0, 210, 208, 
-	1, 0, 0, 0, 211, 213, 5, 20, 0, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 
-	0, 0, 213, 214, 1, 0, 0, 0, 214, 215, 5, 36, 0, 0, 215, 25, 1, 0, 0, 0, 
-	216, 217, 3, 28, 14, 0, 217, 218, 5, 21, 0, 0, 218, 226, 3, 2, 1, 0, 219, 
-	220, 5, 17, 0, 0, 220, 221, 3, 28, 14, 0, 221, 222, 5, 21, 0, 0, 222, 223, 
-	3, 2, 1, 0, 223, 225, 1, 0, 0, 0, 224, 219, 1, 0, 0, 0, 225, 228, 1, 0, 
-	0, 0, 226, 224, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 27, 1, 0, 0, 0, 
-	228, 226, 1, 0, 0, 0, 229, 231, 5, 20, 0, 0, 230, 229, 1, 0, 0, 0, 230, 
-	231, 1, 0, 0, 0, 231, 232, 1, 0, 0, 0, 232, 233, 3, 2, 1, 0, 233, 29, 1, 
-	0, 0, 0, 234, 236, 5, 18, 0, 0, 235, 234, 1, 0, 0, 0, 235, 236, 1, 0, 0, 
-	0, 236, 237, 1, 0, 0, 0, 237, 249, 5, 32, 0, 0, 238, 249, 5, 33, 0, 0, 
-	239, 241, 5, 18, 0, 0, 240, 239, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 
-	242, 1, 0, 0, 0, 242, 249, 5, 31, 0, 0, 243, 249, 5, 34, 0, 0, 244, 249, 
-	5, 35, 0, 0, 245, 249, 5, 26, 0, 0, 246, 249, 5, 27, 0, 0, 247, 249, 5, 
-	28, 0, 0, 248, 235, 1, 0, 0, 0, 248, 238, 1, 0, 0, 0, 248, 240, 1, 0, 0, 
-	0, 248, 243, 1, 0, 0, 0, 248, 244, 1, 0, 0, 0, 248, 245, 1, 0, 0, 0, 248, 
-	246, 1, 0, 0, 0, 248, 247, 1, 0, 0, 0, 249, 31, 1, 0, 0, 0, 35, 41, 48, 
-	56, 67, 79, 81, 88, 94, 97, 105, 113, 119, 124, 126, 130, 135, 138, 146, 
-	149, 154, 157, 161, 168, 173, 176, 180, 187, 195, 208, 212, 226, 230, 235, 
-	240, 248,
-}
-  deserializer := antlr.NewATNDeserializer(nil)
-  staticData.atn = deserializer.Deserialize(staticData.serializedATN)
-  atn := staticData.atn
-  staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
-  decisionToDFA := staticData.decisionToDFA
-  for index, state := range atn.DecisionToState {
-    decisionToDFA[index] = antlr.NewDFA(state, index)
-  }
+	staticData := &celParserStaticData
+	staticData.literalNames = []string{
+		"", "'=='", "'!='", "'in'", "'<'", "'<='", "'>='", "'>'", "'&&'", "'||'",
+		"'['", "']'", "'{'", "'}'", "'('", "')'", "'.'", "','", "'-'", "'!'",
+		"'?'", "':'", "'+'", "'*'", "'/'", "'%'", "'true'", "'false'", "'null'",
+	}
+	staticData.symbolicNames = []string{
+		"", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS",
+		"GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE",
+		"RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK",
+		"COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE",
+		"NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT",
+		"STRING", "BYTES", "IDENTIFIER",
+	}
+	staticData.ruleNames = []string{
+		"start", "expr", "conditionalOr", "conditionalAnd", "relation", "calc",
+		"unary", "member", "primary", "exprList", "listInit", "fieldInitializerList",
+		"optField", "mapInitializerList", "optExpr", "literal",
+	}
+	staticData.predictionContextCache = antlr.NewPredictionContextCache()
+	staticData.serializedATN = []int32{
+		4, 1, 36, 251, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7,
+		4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7,
+		10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15,
+		1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 42, 8, 1, 1,
+		2, 1, 2, 1, 2, 5, 2, 47, 8, 2, 10, 2, 12, 2, 50, 9, 2, 1, 3, 1, 3, 1, 3,
+		5, 3, 55, 8, 3, 10, 3, 12, 3, 58, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1,
+		4, 5, 4, 66, 8, 4, 10, 4, 12, 4, 69, 9, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5,
+		1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 80, 8, 5, 10, 5, 12, 5, 83, 9, 5, 1, 6, 1,
+		6, 4, 6, 87, 8, 6, 11, 6, 12, 6, 88, 1, 6, 1, 6, 4, 6, 93, 8, 6, 11, 6,
+		12, 6, 94, 1, 6, 3, 6, 98, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3,
+		7, 106, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 114, 8, 7, 1, 7,
+		1, 7, 1, 7, 1, 7, 3, 7, 120, 8, 7, 1, 7, 1, 7, 1, 7, 5, 7, 125, 8, 7, 10,
+		7, 12, 7, 128, 9, 7, 1, 8, 3, 8, 131, 8, 8, 1, 8, 1, 8, 1, 8, 3, 8, 136,
+		8, 8, 1, 8, 3, 8, 139, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8,
+		147, 8, 8, 1, 8, 3, 8, 150, 8, 8, 1, 8, 1, 8, 1, 8, 3, 8, 155, 8, 8, 1,
+		8, 3, 8, 158, 8, 8, 1, 8, 1, 8, 3, 8, 162, 8, 8, 1, 8, 1, 8, 1, 8, 5, 8,
+		167, 8, 8, 10, 8, 12, 8, 170, 9, 8, 1, 8, 1, 8, 3, 8, 174, 8, 8, 1, 8,
+		3, 8, 177, 8, 8, 1, 8, 1, 8, 3, 8, 181, 8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 186,
+		8, 9, 10, 9, 12, 9, 189, 9, 9, 1, 10, 1, 10, 1, 10, 5, 10, 194, 8, 10,
+		10, 10, 12, 10, 197, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1,
+		11, 1, 11, 5, 11, 207, 8, 11, 10, 11, 12, 11, 210, 9, 11, 1, 12, 3, 12,
+		213, 8, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1,
+		13, 1, 13, 5, 13, 225, 8, 13, 10, 13, 12, 13, 228, 9, 13, 1, 14, 3, 14,
+		231, 8, 14, 1, 14, 1, 14, 1, 15, 3, 15, 236, 8, 15, 1, 15, 1, 15, 1, 15,
+		3, 15, 241, 8, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 249,
+		8, 15, 1, 15, 0, 3, 8, 10, 14, 16, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
+		22, 24, 26, 28, 30, 0, 3, 1, 0, 1, 7, 1, 0, 23, 25, 2, 0, 18, 18, 22, 22,
+		281, 0, 32, 1, 0, 0, 0, 2, 35, 1, 0, 0, 0, 4, 43, 1, 0, 0, 0, 6, 51, 1,
+		0, 0, 0, 8, 59, 1, 0, 0, 0, 10, 70, 1, 0, 0, 0, 12, 97, 1, 0, 0, 0, 14,
+		99, 1, 0, 0, 0, 16, 180, 1, 0, 0, 0, 18, 182, 1, 0, 0, 0, 20, 190, 1, 0,
+		0, 0, 22, 198, 1, 0, 0, 0, 24, 212, 1, 0, 0, 0, 26, 216, 1, 0, 0, 0, 28,
+		230, 1, 0, 0, 0, 30, 248, 1, 0, 0, 0, 32, 33, 3, 2, 1, 0, 33, 34, 5, 0,
+		0, 1, 34, 1, 1, 0, 0, 0, 35, 41, 3, 4, 2, 0, 36, 37, 5, 20, 0, 0, 37, 38,
+		3, 4, 2, 0, 38, 39, 5, 21, 0, 0, 39, 40, 3, 2, 1, 0, 40, 42, 1, 0, 0, 0,
+		41, 36, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 3, 1, 0, 0, 0, 43, 48, 3, 6,
+		3, 0, 44, 45, 5, 9, 0, 0, 45, 47, 3, 6, 3, 0, 46, 44, 1, 0, 0, 0, 47, 50,
+		1, 0, 0, 0, 48, 46, 1, 0, 0, 0, 48, 49, 1, 0, 0, 0, 49, 5, 1, 0, 0, 0,
+		50, 48, 1, 0, 0, 0, 51, 56, 3, 8, 4, 0, 52, 53, 5, 8, 0, 0, 53, 55, 3,
+		8, 4, 0, 54, 52, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56,
+		57, 1, 0, 0, 0, 57, 7, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 60, 6, 4, -1,
+		0, 60, 61, 3, 10, 5, 0, 61, 67, 1, 0, 0, 0, 62, 63, 10, 1, 0, 0, 63, 64,
+		7, 0, 0, 0, 64, 66, 3, 8, 4, 2, 65, 62, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0,
+		67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 9, 1, 0, 0, 0, 69, 67, 1, 0,
+		0, 0, 70, 71, 6, 5, -1, 0, 71, 72, 3, 12, 6, 0, 72, 81, 1, 0, 0, 0, 73,
+		74, 10, 2, 0, 0, 74, 75, 7, 1, 0, 0, 75, 80, 3, 10, 5, 3, 76, 77, 10, 1,
+		0, 0, 77, 78, 7, 2, 0, 0, 78, 80, 3, 10, 5, 2, 79, 73, 1, 0, 0, 0, 79,
+		76, 1, 0, 0, 0, 80, 83, 1, 0, 0, 0, 81, 79, 1, 0, 0, 0, 81, 82, 1, 0, 0,
+		0, 82, 11, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 84, 98, 3, 14, 7, 0, 85, 87,
+		5, 19, 0, 0, 86, 85, 1, 0, 0, 0, 87, 88, 1, 0, 0, 0, 88, 86, 1, 0, 0, 0,
+		88, 89, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 98, 3, 14, 7, 0, 91, 93, 5,
+		18, 0, 0, 92, 91, 1, 0, 0, 0, 93, 94, 1, 0, 0, 0, 94, 92, 1, 0, 0, 0, 94,
+		95, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 98, 3, 14, 7, 0, 97, 84, 1, 0,
+		0, 0, 97, 86, 1, 0, 0, 0, 97, 92, 1, 0, 0, 0, 98, 13, 1, 0, 0, 0, 99, 100,
+		6, 7, -1, 0, 100, 101, 3, 16, 8, 0, 101, 126, 1, 0, 0, 0, 102, 103, 10,
+		3, 0, 0, 103, 105, 5, 16, 0, 0, 104, 106, 5, 20, 0, 0, 105, 104, 1, 0,
+		0, 0, 105, 106, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 125, 5, 36, 0, 0,
+		108, 109, 10, 2, 0, 0, 109, 110, 5, 16, 0, 0, 110, 111, 5, 36, 0, 0, 111,
+		113, 5, 14, 0, 0, 112, 114, 3, 18, 9, 0, 113, 112, 1, 0, 0, 0, 113, 114,
+		1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 125, 5, 15, 0, 0, 116, 117, 10,
+		1, 0, 0, 117, 119, 5, 10, 0, 0, 118, 120, 5, 20, 0, 0, 119, 118, 1, 0,
+		0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 3, 2, 1, 0,
+		122, 123, 5, 11, 0, 0, 123, 125, 1, 0, 0, 0, 124, 102, 1, 0, 0, 0, 124,
+		108, 1, 0, 0, 0, 124, 116, 1, 0, 0, 0, 125, 128, 1, 0, 0, 0, 126, 124,
+		1, 0, 0, 0, 126, 127, 1, 0, 0, 0, 127, 15, 1, 0, 0, 0, 128, 126, 1, 0,
+		0, 0, 129, 131, 5, 16, 0, 0, 130, 129, 1, 0, 0, 0, 130, 131, 1, 0, 0, 0,
+		131, 132, 1, 0, 0, 0, 132, 138, 5, 36, 0, 0, 133, 135, 5, 14, 0, 0, 134,
+		136, 3, 18, 9, 0, 135, 134, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0, 136, 137,
+		1, 0, 0, 0, 137, 139, 5, 15, 0, 0, 138, 133, 1, 0, 0, 0, 138, 139, 1, 0,
+		0, 0, 139, 181, 1, 0, 0, 0, 140, 141, 5, 14, 0, 0, 141, 142, 3, 2, 1, 0,
+		142, 143, 5, 15, 0, 0, 143, 181, 1, 0, 0, 0, 144, 146, 5, 10, 0, 0, 145,
+		147, 3, 20, 10, 0, 146, 145, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 149,
+		1, 0, 0, 0, 148, 150, 5, 17, 0, 0, 149, 148, 1, 0, 0, 0, 149, 150, 1, 0,
+		0, 0, 150, 151, 1, 0, 0, 0, 151, 181, 5, 11, 0, 0, 152, 154, 5, 12, 0,
+		0, 153, 155, 3, 26, 13, 0, 154, 153, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0,
+		155, 157, 1, 0, 0, 0, 156, 158, 5, 17, 0, 0, 157, 156, 1, 0, 0, 0, 157,
+		158, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 181, 5, 13, 0, 0, 160, 162,
+		5, 16, 0, 0, 161, 160, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 163, 1, 0,
+		0, 0, 163, 168, 5, 36, 0, 0, 164, 165, 5, 16, 0, 0, 165, 167, 5, 36, 0,
+		0, 166, 164, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168,
+		169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 173,
+		5, 12, 0, 0, 172, 174, 3, 22, 11, 0, 173, 172, 1, 0, 0, 0, 173, 174, 1,
+		0, 0, 0, 174, 176, 1, 0, 0, 0, 175, 177, 5, 17, 0, 0, 176, 175, 1, 0, 0,
+		0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 181, 5, 13, 0, 0, 179,
+		181, 3, 30, 15, 0, 180, 130, 1, 0, 0, 0, 180, 140, 1, 0, 0, 0, 180, 144,
+		1, 0, 0, 0, 180, 152, 1, 0, 0, 0, 180, 161, 1, 0, 0, 0, 180, 179, 1, 0,
+		0, 0, 181, 17, 1, 0, 0, 0, 182, 187, 3, 2, 1, 0, 183, 184, 5, 17, 0, 0,
+		184, 186, 3, 2, 1, 0, 185, 183, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187,
+		185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 19, 1, 0, 0, 0, 189, 187, 1,
+		0, 0, 0, 190, 195, 3, 28, 14, 0, 191, 192, 5, 17, 0, 0, 192, 194, 3, 28,
+		14, 0, 193, 191, 1, 0, 0, 0, 194, 197, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0,
+		195, 196, 1, 0, 0, 0, 196, 21, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 199,
+		3, 24, 12, 0, 199, 200, 5, 21, 0, 0, 200, 208, 3, 2, 1, 0, 201, 202, 5,
+		17, 0, 0, 202, 203, 3, 24, 12, 0, 203, 204, 5, 21, 0, 0, 204, 205, 3, 2,
+		1, 0, 205, 207, 1, 0, 0, 0, 206, 201, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0,
+		208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 23, 1, 0, 0, 0, 210, 208,
+		1, 0, 0, 0, 211, 213, 5, 20, 0, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0,
+		0, 0, 213, 214, 1, 0, 0, 0, 214, 215, 5, 36, 0, 0, 215, 25, 1, 0, 0, 0,
+		216, 217, 3, 28, 14, 0, 217, 218, 5, 21, 0, 0, 218, 226, 3, 2, 1, 0, 219,
+		220, 5, 17, 0, 0, 220, 221, 3, 28, 14, 0, 221, 222, 5, 21, 0, 0, 222, 223,
+		3, 2, 1, 0, 223, 225, 1, 0, 0, 0, 224, 219, 1, 0, 0, 0, 225, 228, 1, 0,
+		0, 0, 226, 224, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 27, 1, 0, 0, 0,
+		228, 226, 1, 0, 0, 0, 229, 231, 5, 20, 0, 0, 230, 229, 1, 0, 0, 0, 230,
+		231, 1, 0, 0, 0, 231, 232, 1, 0, 0, 0, 232, 233, 3, 2, 1, 0, 233, 29, 1,
+		0, 0, 0, 234, 236, 5, 18, 0, 0, 235, 234, 1, 0, 0, 0, 235, 236, 1, 0, 0,
+		0, 236, 237, 1, 0, 0, 0, 237, 249, 5, 32, 0, 0, 238, 249, 5, 33, 0, 0,
+		239, 241, 5, 18, 0, 0, 240, 239, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241,
+		242, 1, 0, 0, 0, 242, 249, 5, 31, 0, 0, 243, 249, 5, 34, 0, 0, 244, 249,
+		5, 35, 0, 0, 245, 249, 5, 26, 0, 0, 246, 249, 5, 27, 0, 0, 247, 249, 5,
+		28, 0, 0, 248, 235, 1, 0, 0, 0, 248, 238, 1, 0, 0, 0, 248, 240, 1, 0, 0,
+		0, 248, 243, 1, 0, 0, 0, 248, 244, 1, 0, 0, 0, 248, 245, 1, 0, 0, 0, 248,
+		246, 1, 0, 0, 0, 248, 247, 1, 0, 0, 0, 249, 31, 1, 0, 0, 0, 35, 41, 48,
+		56, 67, 79, 81, 88, 94, 97, 105, 113, 119, 124, 126, 130, 135, 138, 146,
+		149, 154, 157, 161, 168, 173, 176, 180, 187, 195, 208, 212, 226, 230, 235,
+		240, 248,
+	}
+	deserializer := antlr.NewATNDeserializer(nil)
+	staticData.atn = deserializer.Deserialize(staticData.serializedATN)
+	atn := staticData.atn
+	staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
+	decisionToDFA := staticData.decisionToDFA
+	for index, state := range atn.DecisionToState {
+		decisionToDFA[index] = antlr.NewDFA(state, index)
+	}
 }
 
 // CELParserInit initializes any static state used to implement CELParser. By default the
@@ -182,8 +181,8 @@ func celParserInit() {
 // NewCELParser(). You can call this function if you wish to initialize the static state ahead
 // of time.
 func CELParserInit() {
-  staticData := &CELParserStaticData
-  staticData.once.Do(celParserInit)
+	staticData := &celParserStaticData
+	staticData.once.Do(celParserInit)
 }
 
 // NewCELParser produces a new parser instance for the optional input antlr.TokenStream.
@@ -191,76 +190,75 @@ func NewCELParser(input antlr.TokenStrea
 	CELParserInit()
 	this := new(CELParser)
 	this.BaseParser = antlr.NewBaseParser(input)
-  staticData := &CELParserStaticData
-	this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache)
-	this.RuleNames = staticData.RuleNames
-	this.LiteralNames = staticData.LiteralNames
-	this.SymbolicNames = staticData.SymbolicNames
+	staticData := &celParserStaticData
+	this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.predictionContextCache)
+	this.RuleNames = staticData.ruleNames
+	this.LiteralNames = staticData.literalNames
+	this.SymbolicNames = staticData.symbolicNames
 	this.GrammarFileName = "CEL.g4"
 
 	return this
 }
 
-
 // CELParser tokens.
 const (
-	CELParserEOF = antlr.TokenEOF
-	CELParserEQUALS = 1
-	CELParserNOT_EQUALS = 2
-	CELParserIN = 3
-	CELParserLESS = 4
-	CELParserLESS_EQUALS = 5
+	CELParserEOF            = antlr.TokenEOF
+	CELParserEQUALS         = 1
+	CELParserNOT_EQUALS     = 2
+	CELParserIN             = 3
+	CELParserLESS           = 4
+	CELParserLESS_EQUALS    = 5
 	CELParserGREATER_EQUALS = 6
-	CELParserGREATER = 7
-	CELParserLOGICAL_AND = 8
-	CELParserLOGICAL_OR = 9
-	CELParserLBRACKET = 10
-	CELParserRPRACKET = 11
-	CELParserLBRACE = 12
-	CELParserRBRACE = 13
-	CELParserLPAREN = 14
-	CELParserRPAREN = 15
-	CELParserDOT = 16
-	CELParserCOMMA = 17
-	CELParserMINUS = 18
-	CELParserEXCLAM = 19
-	CELParserQUESTIONMARK = 20
-	CELParserCOLON = 21
-	CELParserPLUS = 22
-	CELParserSTAR = 23
-	CELParserSLASH = 24
-	CELParserPERCENT = 25
-	CELParserCEL_TRUE = 26
-	CELParserCEL_FALSE = 27
-	CELParserNUL = 28
-	CELParserWHITESPACE = 29
-	CELParserCOMMENT = 30
-	CELParserNUM_FLOAT = 31
-	CELParserNUM_INT = 32
-	CELParserNUM_UINT = 33
-	CELParserSTRING = 34
-	CELParserBYTES = 35
-	CELParserIDENTIFIER = 36
+	CELParserGREATER        = 7
+	CELParserLOGICAL_AND    = 8
+	CELParserLOGICAL_OR     = 9
+	CELParserLBRACKET       = 10
+	CELParserRPRACKET       = 11
+	CELParserLBRACE         = 12
+	CELParserRBRACE         = 13
+	CELParserLPAREN         = 14
+	CELParserRPAREN         = 15
+	CELParserDOT            = 16
+	CELParserCOMMA          = 17
+	CELParserMINUS          = 18
+	CELParserEXCLAM         = 19
+	CELParserQUESTIONMARK   = 20
+	CELParserCOLON          = 21
+	CELParserPLUS           = 22
+	CELParserSTAR           = 23
+	CELParserSLASH          = 24
+	CELParserPERCENT        = 25
+	CELParserCEL_TRUE       = 26
+	CELParserCEL_FALSE      = 27
+	CELParserNUL            = 28
+	CELParserWHITESPACE     = 29
+	CELParserCOMMENT        = 30
+	CELParserNUM_FLOAT      = 31
+	CELParserNUM_INT        = 32
+	CELParserNUM_UINT       = 33
+	CELParserSTRING         = 34
+	CELParserBYTES          = 35
+	CELParserIDENTIFIER     = 36
 )
 
 // CELParser rules.
 const (
-	CELParserRULE_start = 0
-	CELParserRULE_expr = 1
-	CELParserRULE_conditionalOr = 2
-	CELParserRULE_conditionalAnd = 3
-	CELParserRULE_relation = 4
-	CELParserRULE_calc = 5
-	CELParserRULE_unary = 6
-	CELParserRULE_member = 7
-	CELParserRULE_primary = 8
-	CELParserRULE_exprList = 9
-	CELParserRULE_listInit = 10
+	CELParserRULE_start                = 0
+	CELParserRULE_expr                 = 1
+	CELParserRULE_conditionalOr        = 2
+	CELParserRULE_conditionalAnd       = 3
+	CELParserRULE_relation             = 4
+	CELParserRULE_calc                 = 5
+	CELParserRULE_unary                = 6
+	CELParserRULE_member               = 7
+	CELParserRULE_primary              = 8
+	CELParserRULE_exprList             = 9
+	CELParserRULE_listInit             = 10
 	CELParserRULE_fieldInitializerList = 11
-	CELParserRULE_optField = 12
-	CELParserRULE_mapInitializerList = 13
-	CELParserRULE_optExpr = 14
-	CELParserRULE_literal = 15
+	CELParserRULE_optField             = 12
+	CELParserRULE_mapInitializerList   = 13
+	CELParserRULE_optExpr              = 14
+	CELParserRULE_literal              = 15
 )
 
 // IStartContext is an interface to support dynamic dispatch.
@@ -273,11 +271,9 @@ type IStartContext interface {
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	EOF() antlr.TerminalNode
 	Expr() IExprContext
@@ -287,29 +283,24 @@ type IStartContext interface {
 }
 
 type StartContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IExprContext 
+	e      IExprContext
 }
 
 func NewEmptyStartContext() *StartContext {
 	var p = new(StartContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_start
 	return p
 }
 
-func InitEmptyStartContext(p *StartContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_start
-}
-
 func (*StartContext) IsStartContext() {}
 
 func NewStartContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StartContext {
 	var p = new(StartContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_start
@@ -321,19 +312,17 @@ func (s *StartContext) GetParser() antlr
 
 func (s *StartContext) GetE() IExprContext { return s.e }
 
-
 func (s *StartContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *StartContext) EOF() antlr.TerminalNode {
 	return s.GetToken(CELParserEOF, 0)
 }
 
 func (s *StartContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -353,7 +342,6 @@ func (s *StartContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *StartContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterStart(s)
@@ -376,46 +364,45 @@ func (s *StartContext) Accept(visitor an
 	}
 }
 
+func (p *CELParser) Start() (localctx IStartContext) {
+	this := p
+	_ = this
 
-
-
-func (p *CELParser) Start_() (localctx IStartContext) {
 	localctx = NewStartContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 0, CELParserRULE_start)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(32)
 
 		var _x = p.Expr()
 
-
 		localctx.(*StartContext).e = _x
 	}
 	{
 		p.SetState(33)
 		p.Match(CELParserEOF)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IExprContext is an interface to support dynamic dispatch.
 type IExprContext interface {
 	antlr.ParserRuleContext
@@ -424,12 +411,10 @@ type IExprContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// GetE returns the e rule contexts.
 	GetE() IConditionalOrContext
@@ -440,7 +425,6 @@ type IExprContext interface {
 	// GetE2 returns the e2 rule contexts.
 	GetE2() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IConditionalOrContext)
 
@@ -450,7 +434,6 @@ type IExprContext interface {
 	// SetE2 sets the e2 rule contexts.
 	SetE2(IExprContext)
 
-
 	// Getter signatures
 	AllConditionalOr() []IConditionalOrContext
 	ConditionalOr(i int) IConditionalOrContext
@@ -463,32 +446,27 @@ type IExprContext interface {
 }
 
 type ExprContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IConditionalOrContext 
-	op antlr.Token
-	e1 IConditionalOrContext 
-	e2 IExprContext 
+	e      IConditionalOrContext
+	op     antlr.Token
+	e1     IConditionalOrContext
+	e2     IExprContext
 }
 
 func NewEmptyExprContext() *ExprContext {
 	var p = new(ExprContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_expr
 	return p
 }
 
-func InitEmptyExprContext(p *ExprContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_expr
-}
-
 func (*ExprContext) IsExprContext() {}
 
 func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext {
 	var p = new(ExprContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_expr
@@ -500,24 +478,20 @@ func (s *ExprContext) GetParser() antlr.
 
 func (s *ExprContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *ExprContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *ExprContext) GetE() IConditionalOrContext { return s.e }
 
 func (s *ExprContext) GetE1() IConditionalOrContext { return s.e1 }
 
 func (s *ExprContext) GetE2() IExprContext { return s.e2 }
 
-
 func (s *ExprContext) SetE(v IConditionalOrContext) { s.e = v }
 
 func (s *ExprContext) SetE1(v IConditionalOrContext) { s.e1 = v }
 
 func (s *ExprContext) SetE2(v IExprContext) { s.e2 = v }
 
-
 func (s *ExprContext) AllConditionalOr() []IConditionalOrContext {
 	children := s.GetChildren()
 	len := 0
@@ -540,12 +514,12 @@ func (s *ExprContext) AllConditionalOr()
 }
 
 func (s *ExprContext) ConditionalOr(i int) IConditionalOrContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IConditionalOrContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -568,10 +542,10 @@ func (s *ExprContext) QUESTIONMARK() ant
 }
 
 func (s *ExprContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -591,7 +565,6 @@ func (s *ExprContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterExpr(s)
@@ -614,31 +587,42 @@ func (s *ExprContext) Accept(visitor ant
 	}
 }
 
-
-
-
 func (p *CELParser) Expr() (localctx IExprContext) {
+	this := p
+	_ = this
+
 	localctx = NewExprContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 2, CELParserRULE_expr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(35)
 
 		var _x = p.ConditionalOr()
 
-
 		localctx.(*ExprContext).e = _x
 	}
 	p.SetState(41)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CELParserQUESTIONMARK {
 		{
 			p.SetState(36)
@@ -646,54 +630,31 @@ func (p *CELParser) Expr() (localctx IEx
 			var _m = p.Match(CELParserQUESTIONMARK)
 
 			localctx.(*ExprContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(37)
 
 			var _x = p.ConditionalOr()
 
-
 			localctx.(*ExprContext).e1 = _x
 		}
 		{
 			p.SetState(38)
 			p.Match(CELParserCOLON)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(39)
 
 			var _x = p.Expr()
 
-
 			localctx.(*ExprContext).e2 = _x
 		}
 
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IConditionalOrContext is an interface to support dynamic dispatch.
 type IConditionalOrContext interface {
 	antlr.ParserRuleContext
@@ -702,42 +663,34 @@ type IConditionalOrContext interface {
 	GetParser() antlr.Parser
 
 	// GetS9 returns the s9 token.
-	GetS9() antlr.Token 
-
+	GetS9() antlr.Token
 
 	// SetS9 sets the s9 token.
-	SetS9(antlr.Token) 
-
+	SetS9(antlr.Token)
 
 	// GetOps returns the ops token list.
 	GetOps() []antlr.Token
 
-
 	// SetOps sets the ops token list.
 	SetOps([]antlr.Token)
 
-
 	// GetE returns the e rule contexts.
 	GetE() IConditionalAndContext
 
 	// Get_conditionalAnd returns the _conditionalAnd rule contexts.
 	Get_conditionalAnd() IConditionalAndContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IConditionalAndContext)
 
 	// Set_conditionalAnd sets the _conditionalAnd rule contexts.
 	Set_conditionalAnd(IConditionalAndContext)
 
-
 	// GetE1 returns the e1 rule context list.
 	GetE1() []IConditionalAndContext
 
-
 	// SetE1 sets the e1 rule context list.
-	SetE1([]IConditionalAndContext) 
-
+	SetE1([]IConditionalAndContext)
 
 	// Getter signatures
 	AllConditionalAnd() []IConditionalAndContext
@@ -750,33 +703,28 @@ type IConditionalOrContext interface {
 }
 
 type ConditionalOrContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	e IConditionalAndContext 
-	s9 antlr.Token
-	ops []antlr.Token
-	_conditionalAnd IConditionalAndContext 
-	e1 []IConditionalAndContext
+	*antlr.BaseParserRuleContext
+	parser          antlr.Parser
+	e               IConditionalAndContext
+	s9              antlr.Token
+	ops             []antlr.Token
+	_conditionalAnd IConditionalAndContext
+	e1              []IConditionalAndContext
 }
 
 func NewEmptyConditionalOrContext() *ConditionalOrContext {
 	var p = new(ConditionalOrContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_conditionalOr
 	return p
 }
 
-func InitEmptyConditionalOrContext(p *ConditionalOrContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_conditionalOr
-}
-
 func (*ConditionalOrContext) IsConditionalOrContext() {}
 
 func NewConditionalOrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ConditionalOrContext {
 	var p = new(ConditionalOrContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_conditionalOr
@@ -788,32 +736,24 @@ func (s *ConditionalOrContext) GetParser
 
 func (s *ConditionalOrContext) GetS9() antlr.Token { return s.s9 }
 
-
 func (s *ConditionalOrContext) SetS9(v antlr.Token) { s.s9 = v }
 
-
 func (s *ConditionalOrContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *ConditionalOrContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *ConditionalOrContext) GetE() IConditionalAndContext { return s.e }
 
 func (s *ConditionalOrContext) Get_conditionalAnd() IConditionalAndContext { return s._conditionalAnd }
 
-
 func (s *ConditionalOrContext) SetE(v IConditionalAndContext) { s.e = v }
 
 func (s *ConditionalOrContext) Set_conditionalAnd(v IConditionalAndContext) { s._conditionalAnd = v }
 
-
 func (s *ConditionalOrContext) GetE1() []IConditionalAndContext { return s.e1 }
 
-
 func (s *ConditionalOrContext) SetE1(v []IConditionalAndContext) { s.e1 = v }
 
-
 func (s *ConditionalOrContext) AllConditionalAnd() []IConditionalAndContext {
 	children := s.GetChildren()
 	len := 0
@@ -836,12 +776,12 @@ func (s *ConditionalOrContext) AllCondit
 }
 
 func (s *ConditionalOrContext) ConditionalAnd(i int) IConditionalAndContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IConditionalAndContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -871,7 +811,6 @@ func (s *ConditionalOrContext) ToStringT
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ConditionalOrContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterConditionalOr(s)
@@ -894,31 +833,42 @@ func (s *ConditionalOrContext) Accept(vi
 	}
 }
 
-
-
-
 func (p *CELParser) ConditionalOr() (localctx IConditionalOrContext) {
+	this := p
+	_ = this
+
 	localctx = NewConditionalOrContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 4, CELParserRULE_conditionalOr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(43)
 
 		var _x = p.ConditionalAnd()
 
-
 		localctx.(*ConditionalOrContext).e = _x
 	}
 	p.SetState(48)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CELParserLOGICAL_OR {
 		{
 			p.SetState(44)
@@ -926,10 +876,6 @@ func (p *CELParser) ConditionalOr() (loc
 			var _m = p.Match(CELParserLOGICAL_OR)
 
 			localctx.(*ConditionalOrContext).s9 = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*ConditionalOrContext).ops = append(localctx.(*ConditionalOrContext).ops, localctx.(*ConditionalOrContext).s9)
 		{
@@ -937,36 +883,18 @@ func (p *CELParser) ConditionalOr() (loc
 
 			var _x = p.ConditionalAnd()
 
-
 			localctx.(*ConditionalOrContext)._conditionalAnd = _x
 		}
 		localctx.(*ConditionalOrContext).e1 = append(localctx.(*ConditionalOrContext).e1, localctx.(*ConditionalOrContext)._conditionalAnd)
 
-
 		p.SetState(50)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IConditionalAndContext is an interface to support dynamic dispatch.
 type IConditionalAndContext interface {
 	antlr.ParserRuleContext
@@ -975,42 +903,34 @@ type IConditionalAndContext interface {
 	GetParser() antlr.Parser
 
 	// GetS8 returns the s8 token.
-	GetS8() antlr.Token 
-
+	GetS8() antlr.Token
 
 	// SetS8 sets the s8 token.
-	SetS8(antlr.Token) 
-
+	SetS8(antlr.Token)
 
 	// GetOps returns the ops token list.
 	GetOps() []antlr.Token
 
-
 	// SetOps sets the ops token list.
 	SetOps([]antlr.Token)
 
-
 	// GetE returns the e rule contexts.
 	GetE() IRelationContext
 
 	// Get_relation returns the _relation rule contexts.
 	Get_relation() IRelationContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IRelationContext)
 
 	// Set_relation sets the _relation rule contexts.
 	Set_relation(IRelationContext)
 
-
 	// GetE1 returns the e1 rule context list.
 	GetE1() []IRelationContext
 
-
 	// SetE1 sets the e1 rule context list.
-	SetE1([]IRelationContext) 
-
+	SetE1([]IRelationContext)
 
 	// Getter signatures
 	AllRelation() []IRelationContext
@@ -1023,33 +943,28 @@ type IConditionalAndContext interface {
 }
 
 type ConditionalAndContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	e IRelationContext 
-	s8 antlr.Token
-	ops []antlr.Token
-	_relation IRelationContext 
-	e1 []IRelationContext
+	*antlr.BaseParserRuleContext
+	parser    antlr.Parser
+	e         IRelationContext
+	s8        antlr.Token
+	ops       []antlr.Token
+	_relation IRelationContext
+	e1        []IRelationContext
 }
 
 func NewEmptyConditionalAndContext() *ConditionalAndContext {
 	var p = new(ConditionalAndContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_conditionalAnd
 	return p
 }
 
-func InitEmptyConditionalAndContext(p *ConditionalAndContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_conditionalAnd
-}
-
 func (*ConditionalAndContext) IsConditionalAndContext() {}
 
 func NewConditionalAndContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ConditionalAndContext {
 	var p = new(ConditionalAndContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_conditionalAnd
@@ -1061,32 +976,24 @@ func (s *ConditionalAndContext) GetParse
 
 func (s *ConditionalAndContext) GetS8() antlr.Token { return s.s8 }
 
-
 func (s *ConditionalAndContext) SetS8(v antlr.Token) { s.s8 = v }
 
-
 func (s *ConditionalAndContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *ConditionalAndContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *ConditionalAndContext) GetE() IRelationContext { return s.e }
 
 func (s *ConditionalAndContext) Get_relation() IRelationContext { return s._relation }
 
-
 func (s *ConditionalAndContext) SetE(v IRelationContext) { s.e = v }
 
 func (s *ConditionalAndContext) Set_relation(v IRelationContext) { s._relation = v }
 
-
 func (s *ConditionalAndContext) GetE1() []IRelationContext { return s.e1 }
 
-
 func (s *ConditionalAndContext) SetE1(v []IRelationContext) { s.e1 = v }
 
-
 func (s *ConditionalAndContext) AllRelation() []IRelationContext {
 	children := s.GetChildren()
 	len := 0
@@ -1109,12 +1016,12 @@ func (s *ConditionalAndContext) AllRelat
 }
 
 func (s *ConditionalAndContext) Relation(i int) IRelationContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IRelationContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -1144,7 +1051,6 @@ func (s *ConditionalAndContext) ToString
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ConditionalAndContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterConditionalAnd(s)
@@ -1167,14 +1073,30 @@ func (s *ConditionalAndContext) Accept(v
 	}
 }
 
-
-
-
 func (p *CELParser) ConditionalAnd() (localctx IConditionalAndContext) {
+	this := p
+	_ = this
+
 	localctx = NewConditionalAndContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 6, CELParserRULE_conditionalAnd)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(51)
@@ -1185,12 +1107,8 @@ func (p *CELParser) ConditionalAnd() (lo
 	}
 	p.SetState(56)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CELParserLOGICAL_AND {
 		{
 			p.SetState(52)
@@ -1198,10 +1116,6 @@ func (p *CELParser) ConditionalAnd() (lo
 			var _m = p.Match(CELParserLOGICAL_AND)
 
 			localctx.(*ConditionalAndContext).s8 = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*ConditionalAndContext).ops = append(localctx.(*ConditionalAndContext).ops, localctx.(*ConditionalAndContext).s8)
 		{
@@ -1213,31 +1127,14 @@ func (p *CELParser) ConditionalAnd() (lo
 		}
 		localctx.(*ConditionalAndContext).e1 = append(localctx.(*ConditionalAndContext).e1, localctx.(*ConditionalAndContext)._relation)
 
-
 		p.SetState(58)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IRelationContext is an interface to support dynamic dispatch.
 type IRelationContext interface {
 	antlr.ParserRuleContext
@@ -1246,12 +1143,10 @@ type IRelationContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// Getter signatures
 	Calc() ICalcContext
@@ -1270,29 +1165,24 @@ type IRelationContext interface {
 }
 
 type RelationContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	op antlr.Token
+	op     antlr.Token
 }
 
 func NewEmptyRelationContext() *RelationContext {
 	var p = new(RelationContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_relation
 	return p
 }
 
-func InitEmptyRelationContext(p *RelationContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_relation
-}
-
 func (*RelationContext) IsRelationContext() {}
 
 func NewRelationContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *RelationContext {
 	var p = new(RelationContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_relation
@@ -1304,15 +1194,13 @@ func (s *RelationContext) GetParser() an
 
 func (s *RelationContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *RelationContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *RelationContext) Calc() ICalcContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICalcContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1346,12 +1234,12 @@ func (s *RelationContext) AllRelation()
 }
 
 func (s *RelationContext) Relation(i int) IRelationContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IRelationContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -1401,7 +1289,6 @@ func (s *RelationContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *RelationContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterRelation(s)
@@ -1424,17 +1311,15 @@ func (s *RelationContext) Accept(visitor
 	}
 }
 
-
-
-
-
 func (p *CELParser) Relation() (localctx IRelationContext) {
 	return p.relation(0)
 }
 
 func (p *CELParser) relation(_p int) (localctx IRelationContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewRelationContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx IRelationContext = localctx
@@ -1443,6 +1328,22 @@ func (p *CELParser) relation(_p int) (lo
 	p.EnterRecursionRule(localctx, 8, CELParserRULE_relation, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -1454,13 +1355,8 @@ func (p *CELParser) relation(_p int) (lo
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(67)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 3, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 3, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -1472,8 +1368,7 @@ func (p *CELParser) relation(_p int) (lo
 			p.SetState(62)
 
 			if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-				p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-				goto errorExit
+				panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 			}
 			{
 				p.SetState(63)
@@ -1484,7 +1379,7 @@ func (p *CELParser) relation(_p int) (lo
 
 				_la = p.GetTokenStream().LA(1)
 
-				if !(((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 254) != 0)) {
+				if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&254) != 0) {
 					var _ri = p.GetErrorHandler().RecoverInline(p)
 
 					localctx.(*RelationContext).op = _ri
@@ -1498,35 +1393,15 @@ func (p *CELParser) relation(_p int) (lo
 				p.relation(2)
 			}
 
-
 		}
 		p.SetState(69)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 3, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 3, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ICalcContext is an interface to support dynamic dispatch.
 type ICalcContext interface {
 	antlr.ParserRuleContext
@@ -1535,12 +1410,10 @@ type ICalcContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// Getter signatures
 	Unary() IUnaryContext
@@ -1557,29 +1430,24 @@ type ICalcContext interface {
 }
 
 type CalcContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	op antlr.Token
+	op     antlr.Token
 }
 
 func NewEmptyCalcContext() *CalcContext {
 	var p = new(CalcContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_calc
 	return p
 }
 
-func InitEmptyCalcContext(p *CalcContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_calc
-}
-
 func (*CalcContext) IsCalcContext() {}
 
 func NewCalcContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CalcContext {
 	var p = new(CalcContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_calc
@@ -1591,15 +1459,13 @@ func (s *CalcContext) GetParser() antlr.
 
 func (s *CalcContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CalcContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CalcContext) Unary() IUnaryContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IUnaryContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1633,12 +1499,12 @@ func (s *CalcContext) AllCalc() []ICalcC
 }
 
 func (s *CalcContext) Calc(i int) ICalcContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICalcContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -1680,7 +1546,6 @@ func (s *CalcContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *CalcContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterCalc(s)
@@ -1703,17 +1568,15 @@ func (s *CalcContext) Accept(visitor ant
 	}
 }
 
-
-
-
-
 func (p *CELParser) Calc() (localctx ICalcContext) {
 	return p.calc(0)
 }
 
 func (p *CELParser) calc(_p int) (localctx ICalcContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewCalcContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx ICalcContext = localctx
@@ -1722,6 +1585,22 @@ func (p *CELParser) calc(_p int) (localc
 	p.EnterRecursionRule(localctx, 10, CELParserRULE_calc, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -1733,13 +1612,8 @@ func (p *CELParser) calc(_p int) (localc
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(81)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 5, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 5, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -1748,19 +1622,14 @@ func (p *CELParser) calc(_p int) (localc
 			_prevctx = localctx
 			p.SetState(79)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
-
-			switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 4, p.GetParserRuleContext()) {
+			switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 4, p.GetParserRuleContext()) {
 			case 1:
 				localctx = NewCalcContext(p, _parentctx, _parentState)
 				p.PushNewRecursionContext(localctx, _startState, CELParserRULE_calc)
 				p.SetState(73)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 2)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
 				}
 				{
 					p.SetState(74)
@@ -1771,7 +1640,7 @@ func (p *CELParser) calc(_p int) (localc
 
 					_la = p.GetTokenStream().LA(1)
 
-					if !(((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 58720256) != 0)) {
+					if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&58720256) != 0) {
 						var _ri = p.GetErrorHandler().RecoverInline(p)
 
 						localctx.(*CalcContext).op = _ri
@@ -1785,15 +1654,13 @@ func (p *CELParser) calc(_p int) (localc
 					p.calc(3)
 				}
 
-
 			case 2:
 				localctx = NewCalcContext(p, _parentctx, _parentState)
 				p.PushNewRecursionContext(localctx, _startState, CELParserRULE_calc)
 				p.SetState(76)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 				}
 				{
 					p.SetState(77)
@@ -1818,38 +1685,17 @@ func (p *CELParser) calc(_p int) (localc
 					p.calc(2)
 				}
 
-			case antlr.ATNInvalidAltNumber:
-				goto errorExit
 			}
 
 		}
 		p.SetState(83)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 5, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 5, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IUnaryContext is an interface to support dynamic dispatch.
 type IUnaryContext interface {
 	antlr.ParserRuleContext
@@ -1861,28 +1707,23 @@ type IUnaryContext interface {
 }
 
 type UnaryContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyUnaryContext() *UnaryContext {
 	var p = new(UnaryContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_unary
 	return p
 }
 
-func InitEmptyUnaryContext(p *UnaryContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_unary
-}
-
 func (*UnaryContext) IsUnaryContext() {}
 
 func NewUnaryContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *UnaryContext {
 	var p = new(UnaryContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_unary
@@ -1892,8 +1733,8 @@ func NewUnaryContext(parser antlr.Parser
 
 func (s *UnaryContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *UnaryContext) CopyAll(ctx *UnaryContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *UnaryContext) CopyFrom(ctx *UnaryContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *UnaryContext) GetRuleContext() antlr.RuleContext {
@@ -1904,11 +1745,8 @@ func (s *UnaryContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type LogicalNotContext struct {
-	UnaryContext
+	*UnaryContext
 	s19 antlr.Token
 	ops []antlr.Token
 }
@@ -1916,23 +1754,19 @@ type LogicalNotContext struct {
 func NewLogicalNotContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *LogicalNotContext {
 	var p = new(LogicalNotContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
 
-
 func (s *LogicalNotContext) GetS19() antlr.Token { return s.s19 }
 
-
 func (s *LogicalNotContext) SetS19(v antlr.Token) { s.s19 = v }
 
-
 func (s *LogicalNotContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *LogicalNotContext) SetOps(v []antlr.Token) { s.ops = v }
 
 func (s *LogicalNotContext) GetRuleContext() antlr.RuleContext {
@@ -1940,10 +1774,10 @@ func (s *LogicalNotContext) GetRuleConte
 }
 
 func (s *LogicalNotContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1963,7 +1797,6 @@ func (s *LogicalNotContext) EXCLAM(i int
 	return s.GetToken(CELParserEXCLAM, i)
 }
 
-
 func (s *LogicalNotContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterLogicalNot(s)
@@ -1986,17 +1819,16 @@ func (s *LogicalNotContext) Accept(visit
 	}
 }
 
-
 type MemberExprContext struct {
-	UnaryContext
+	*UnaryContext
 }
 
 func NewMemberExprContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberExprContext {
 	var p = new(MemberExprContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
@@ -2006,10 +1838,10 @@ func (s *MemberExprContext) GetRuleConte
 }
 
 func (s *MemberExprContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2021,7 +1853,6 @@ func (s *MemberExprContext) Member() IMe
 	return t.(IMemberContext)
 }
 
-
 func (s *MemberExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterMemberExpr(s)
@@ -2044,9 +1875,8 @@ func (s *MemberExprContext) Accept(visit
 	}
 }
 
-
 type NegateContext struct {
-	UnaryContext
+	*UnaryContext
 	s18 antlr.Token
 	ops []antlr.Token
 }
@@ -2054,23 +1884,19 @@ type NegateContext struct {
 func NewNegateContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NegateContext {
 	var p = new(NegateContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
 
-
 func (s *NegateContext) GetS18() antlr.Token { return s.s18 }
 
-
 func (s *NegateContext) SetS18(v antlr.Token) { s.s18 = v }
 
-
 func (s *NegateContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *NegateContext) SetOps(v []antlr.Token) { s.ops = v }
 
 func (s *NegateContext) GetRuleContext() antlr.RuleContext {
@@ -2078,10 +1904,10 @@ func (s *NegateContext) GetRuleContext()
 }
 
 func (s *NegateContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2101,7 +1927,6 @@ func (s *NegateContext) MINUS(i int) ant
 	return s.GetToken(CELParserMINUS, i)
 }
 
-
 func (s *NegateContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterNegate(s)
@@ -2124,22 +1949,35 @@ func (s *NegateContext) Accept(visitor a
 	}
 }
 
-
-
 func (p *CELParser) Unary() (localctx IUnaryContext) {
+	this := p
+	_ = this
+
 	localctx = NewUnaryContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 12, CELParserRULE_unary)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.SetState(97)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 8, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 8, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewMemberExprContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
@@ -2148,18 +1986,13 @@ func (p *CELParser) Unary() (localctx IU
 			p.member(0)
 		}
 
-
 	case 2:
 		localctx = NewLogicalNotContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
 		p.SetState(86)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		for ok := true; ok; ok = _la == CELParserEXCLAM {
 			{
 				p.SetState(85)
@@ -2167,19 +2000,11 @@ func (p *CELParser) Unary() (localctx IU
 				var _m = p.Match(CELParserEXCLAM)
 
 				localctx.(*LogicalNotContext).s19 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*LogicalNotContext).ops = append(localctx.(*LogicalNotContext).ops, localctx.(*LogicalNotContext).s19)
 
-
 			p.SetState(88)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-		    	goto errorExit
-		    }
 			_la = p.GetTokenStream().LA(1)
 		}
 		{
@@ -2187,71 +2012,42 @@ func (p *CELParser) Unary() (localctx IU
 			p.member(0)
 		}
 
-
 	case 3:
 		localctx = NewNegateContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
 		p.SetState(92)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_alt = 1
 		for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 			switch _alt {
 			case 1:
-					{
-						p.SetState(91)
-
-						var _m = p.Match(CELParserMINUS)
-
-						localctx.(*NegateContext).s18 = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
-					}
-					localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s18)
-
+				{
+					p.SetState(91)
 
+					var _m = p.Match(CELParserMINUS)
 
+					localctx.(*NegateContext).s18 = _m
+				}
+				localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s18)
 
 			default:
-				p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
-				goto errorExit
+				panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
 			}
 
 			p.SetState(94)
 			p.GetErrorHandler().Sync(p)
-			_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 7, p.GetParserRuleContext())
-			if p.HasError() {
-				goto errorExit
-			}
+			_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 7, p.GetParserRuleContext())
 		}
 		{
 			p.SetState(96)
 			p.member(0)
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IMemberContext is an interface to support dynamic dispatch.
 type IMemberContext interface {
 	antlr.ParserRuleContext
@@ -2263,28 +2059,23 @@ type IMemberContext interface {
 }
 
 type MemberContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyMemberContext() *MemberContext {
 	var p = new(MemberContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_member
 	return p
 }
 
-func InitEmptyMemberContext(p *MemberContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_member
-}
-
 func (*MemberContext) IsMemberContext() {}
 
 func NewMemberContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MemberContext {
 	var p = new(MemberContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_member
@@ -2294,8 +2085,8 @@ func NewMemberContext(parser antlr.Parse
 
 func (s *MemberContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *MemberContext) CopyAll(ctx *MemberContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *MemberContext) CopyFrom(ctx *MemberContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *MemberContext) GetRuleContext() antlr.RuleContext {
@@ -2306,46 +2097,38 @@ func (s *MemberContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
-
 type MemberCallContext struct {
-	MemberContext
-	op antlr.Token
-	id antlr.Token
+	*MemberContext
+	op   antlr.Token
+	id   antlr.Token
 	open antlr.Token
-	args IExprListContext 
+	args IExprListContext
 }
 
 func NewMemberCallContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberCallContext {
 	var p = new(MemberCallContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *MemberCallContext) GetOp() antlr.Token { return s.op }
 
 func (s *MemberCallContext) GetId() antlr.Token { return s.id }
 
 func (s *MemberCallContext) GetOpen() antlr.Token { return s.open }
 
-
 func (s *MemberCallContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *MemberCallContext) SetId(v antlr.Token) { s.id = v }
 
 func (s *MemberCallContext) SetOpen(v antlr.Token) { s.open = v }
 
-
 func (s *MemberCallContext) GetArgs() IExprListContext { return s.args }
 
-
 func (s *MemberCallContext) SetArgs(v IExprListContext) { s.args = v }
 
 func (s *MemberCallContext) GetRuleContext() antlr.RuleContext {
@@ -2353,10 +2136,10 @@ func (s *MemberCallContext) GetRuleConte
 }
 
 func (s *MemberCallContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2385,10 +2168,10 @@ func (s *MemberCallContext) LPAREN() ant
 }
 
 func (s *MemberCallContext) ExprList() IExprListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2400,7 +2183,6 @@ func (s *MemberCallContext) ExprList() I
 	return t.(IExprListContext)
 }
 
-
 func (s *MemberCallContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterMemberCall(s)
@@ -2423,32 +2205,29 @@ func (s *MemberCallContext) Accept(visit
 	}
 }
 
-
 type SelectContext struct {
-	MemberContext
-	op antlr.Token
+	*MemberContext
+	op  antlr.Token
 	opt antlr.Token
-	id antlr.Token
+	id  antlr.Token
 }
 
 func NewSelectContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *SelectContext {
 	var p = new(SelectContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *SelectContext) GetOp() antlr.Token { return s.op }
 
 func (s *SelectContext) GetOpt() antlr.Token { return s.opt }
 
 func (s *SelectContext) GetId() antlr.Token { return s.id }
 
-
 func (s *SelectContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *SelectContext) SetOpt(v antlr.Token) { s.opt = v }
@@ -2460,10 +2239,10 @@ func (s *SelectContext) GetRuleContext()
 }
 
 func (s *SelectContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2487,7 +2266,6 @@ func (s *SelectContext) QUESTIONMARK() a
 	return s.GetToken(CELParserQUESTIONMARK, 0)
 }
 
-
 func (s *SelectContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterSelect(s)
@@ -2510,17 +2288,16 @@ func (s *SelectContext) Accept(visitor a
 	}
 }
 
-
 type PrimaryExprContext struct {
-	MemberContext
+	*MemberContext
 }
 
 func NewPrimaryExprContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *PrimaryExprContext {
 	var p = new(PrimaryExprContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
@@ -2530,10 +2307,10 @@ func (s *PrimaryExprContext) GetRuleCont
 }
 
 func (s *PrimaryExprContext) Primary() IPrimaryContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IPrimaryContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2545,7 +2322,6 @@ func (s *PrimaryExprContext) Primary() I
 	return t.(IPrimaryContext)
 }
 
-
 func (s *PrimaryExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterPrimaryExpr(s)
@@ -2568,38 +2344,33 @@ func (s *PrimaryExprContext) Accept(visi
 	}
 }
 
-
 type IndexContext struct {
-	MemberContext
-	op antlr.Token
-	opt antlr.Token
-	index IExprContext 
+	*MemberContext
+	op    antlr.Token
+	opt   antlr.Token
+	index IExprContext
 }
 
 func NewIndexContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IndexContext {
 	var p = new(IndexContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *IndexContext) GetOp() antlr.Token { return s.op }
 
 func (s *IndexContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *IndexContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *IndexContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *IndexContext) GetIndex() IExprContext { return s.index }
 
-
 func (s *IndexContext) SetIndex(v IExprContext) { s.index = v }
 
 func (s *IndexContext) GetRuleContext() antlr.RuleContext {
@@ -2607,10 +2378,10 @@ func (s *IndexContext) GetRuleContext()
 }
 
 func (s *IndexContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2631,10 +2402,10 @@ func (s *IndexContext) LBRACKET() antlr.
 }
 
 func (s *IndexContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2650,7 +2421,6 @@ func (s *IndexContext) QUESTIONMARK() an
 	return s.GetToken(CELParserQUESTIONMARK, 0)
 }
 
-
 func (s *IndexContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterIndex(s)
@@ -2673,15 +2443,15 @@ func (s *IndexContext) Accept(visitor an
 	}
 }
 
-
-
 func (p *CELParser) Member() (localctx IMemberContext) {
 	return p.member(0)
 }
 
 func (p *CELParser) member(_p int) (localctx IMemberContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewMemberContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx IMemberContext = localctx
@@ -2690,6 +2460,22 @@ func (p *CELParser) member(_p int) (loca
 	p.EnterRecursionRule(localctx, 14, CELParserRULE_member, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -2705,13 +2491,8 @@ func (p *CELParser) member(_p int) (loca
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(126)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 13, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 13, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -2720,19 +2501,14 @@ func (p *CELParser) member(_p int) (loca
 			_prevctx = localctx
 			p.SetState(124)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
-
-			switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 12, p.GetParserRuleContext()) {
+			switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 12, p.GetParserRuleContext()) {
 			case 1:
 				localctx = NewSelectContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CELParserRULE_member)
 				p.SetState(102)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 3)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
 				}
 				{
 					p.SetState(103)
@@ -2740,19 +2516,11 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserDOT)
 
 					localctx.(*SelectContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(105)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
 				if _la == CELParserQUESTIONMARK {
 					{
 						p.SetState(104)
@@ -2760,10 +2528,6 @@ func (p *CELParser) member(_p int) (loca
 						var _m = p.Match(CELParserQUESTIONMARK)
 
 						localctx.(*SelectContext).opt = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
 					}
 
 				}
@@ -2773,21 +2537,15 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserIDENTIFIER)
 
 					localctx.(*SelectContext).id = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-
 			case 2:
 				localctx = NewMemberCallContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CELParserRULE_member)
 				p.SetState(108)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 2)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
 				}
 				{
 					p.SetState(109)
@@ -2795,10 +2553,6 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserDOT)
 
 					localctx.(*MemberCallContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				{
 					p.SetState(110)
@@ -2806,10 +2560,6 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserIDENTIFIER)
 
 					localctx.(*MemberCallContext).id = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				{
 					p.SetState(111)
@@ -2817,26 +2567,17 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserLPAREN)
 
 					localctx.(*MemberCallContext).open = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(113)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
-				if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 135762105344) != 0) {
+				if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&135762105344) != 0 {
 					{
 						p.SetState(112)
 
 						var _x = p.ExprList()
 
-
 						localctx.(*MemberCallContext).args = _x
 					}
 
@@ -2844,21 +2585,15 @@ func (p *CELParser) member(_p int) (loca
 				{
 					p.SetState(115)
 					p.Match(CELParserRPAREN)
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-
 			case 3:
 				localctx = NewIndexContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CELParserRULE_member)
 				p.SetState(116)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 				}
 				{
 					p.SetState(117)
@@ -2866,19 +2601,11 @@ func (p *CELParser) member(_p int) (loca
 					var _m = p.Match(CELParserLBRACKET)
 
 					localctx.(*IndexContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(119)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
 				if _la == CELParserQUESTIONMARK {
 					{
 						p.SetState(118)
@@ -2886,10 +2613,6 @@ func (p *CELParser) member(_p int) (loca
 						var _m = p.Match(CELParserQUESTIONMARK)
 
 						localctx.(*IndexContext).opt = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
 					}
 
 				}
@@ -2898,50 +2621,24 @@ func (p *CELParser) member(_p int) (loca
 
 					var _x = p.Expr()
 
-
 					localctx.(*IndexContext).index = _x
 				}
 				{
 					p.SetState(122)
 					p.Match(CELParserRPRACKET)
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-			case antlr.ATNInvalidAltNumber:
-				goto errorExit
 			}
 
 		}
 		p.SetState(128)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 13, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 13, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IPrimaryContext is an interface to support dynamic dispatch.
 type IPrimaryContext interface {
 	antlr.ParserRuleContext
@@ -2953,28 +2650,23 @@ type IPrimaryContext interface {
 }
 
 type PrimaryContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyPrimaryContext() *PrimaryContext {
 	var p = new(PrimaryContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_primary
 	return p
 }
 
-func InitEmptyPrimaryContext(p *PrimaryContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_primary
-}
-
 func (*PrimaryContext) IsPrimaryContext() {}
 
 func NewPrimaryContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PrimaryContext {
 	var p = new(PrimaryContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_primary
@@ -2984,8 +2676,8 @@ func NewPrimaryContext(parser antlr.Pars
 
 func (s *PrimaryContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *PrimaryContext) CopyAll(ctx *PrimaryContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *PrimaryContext) CopyFrom(ctx *PrimaryContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *PrimaryContext) GetRuleContext() antlr.RuleContext {
@@ -2996,35 +2688,28 @@ func (s *PrimaryContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type CreateListContext struct {
-	PrimaryContext
-	op antlr.Token
-	elems IListInitContext 
+	*PrimaryContext
+	op    antlr.Token
+	elems IListInitContext
 }
 
 func NewCreateListContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateListContext {
 	var p = new(CreateListContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateListContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateListContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateListContext) GetElems() IListInitContext { return s.elems }
 
-
 func (s *CreateListContext) SetElems(v IListInitContext) { s.elems = v }
 
 func (s *CreateListContext) GetRuleContext() antlr.RuleContext {
@@ -3044,10 +2729,10 @@ func (s *CreateListContext) COMMA() antl
 }
 
 func (s *CreateListContext) ListInit() IListInitContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IListInitContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3059,7 +2744,6 @@ func (s *CreateListContext) ListInit() I
 	return t.(IListInitContext)
 }
 
-
 func (s *CreateListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterCreateList(s)
@@ -3082,33 +2766,28 @@ func (s *CreateListContext) Accept(visit
 	}
 }
 
-
 type CreateStructContext struct {
-	PrimaryContext
-	op antlr.Token
-	entries IMapInitializerListContext 
+	*PrimaryContext
+	op      antlr.Token
+	entries IMapInitializerListContext
 }
 
 func NewCreateStructContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateStructContext {
 	var p = new(CreateStructContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateStructContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateStructContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateStructContext) GetEntries() IMapInitializerListContext { return s.entries }
 
-
 func (s *CreateStructContext) SetEntries(v IMapInitializerListContext) { s.entries = v }
 
 func (s *CreateStructContext) GetRuleContext() antlr.RuleContext {
@@ -3128,10 +2807,10 @@ func (s *CreateStructContext) COMMA() an
 }
 
 func (s *CreateStructContext) MapInitializerList() IMapInitializerListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMapInitializerListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3143,7 +2822,6 @@ func (s *CreateStructContext) MapInitial
 	return t.(IMapInitializerListContext)
 }
 
-
 func (s *CreateStructContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterCreateStruct(s)
@@ -3166,17 +2844,16 @@ func (s *CreateStructContext) Accept(vis
 	}
 }
 
-
 type ConstantLiteralContext struct {
-	PrimaryContext
+	*PrimaryContext
 }
 
 func NewConstantLiteralContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ConstantLiteralContext {
 	var p = new(ConstantLiteralContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
@@ -3186,10 +2863,10 @@ func (s *ConstantLiteralContext) GetRule
 }
 
 func (s *ConstantLiteralContext) Literal() ILiteralContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ILiteralContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3201,7 +2878,6 @@ func (s *ConstantLiteralContext) Literal
 	return t.(ILiteralContext)
 }
 
-
 func (s *ConstantLiteralContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterConstantLiteral(s)
@@ -3224,26 +2900,23 @@ func (s *ConstantLiteralContext) Accept(
 	}
 }
 
-
 type NestedContext struct {
-	PrimaryContext
-	e IExprContext 
+	*PrimaryContext
+	e IExprContext
 }
 
 func NewNestedContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NestedContext {
 	var p = new(NestedContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *NestedContext) GetE() IExprContext { return s.e }
 
-
 func (s *NestedContext) SetE(v IExprContext) { s.e = v }
 
 func (s *NestedContext) GetRuleContext() antlr.RuleContext {
@@ -3259,10 +2932,10 @@ func (s *NestedContext) RPAREN() antlr.T
 }
 
 func (s *NestedContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3274,7 +2947,6 @@ func (s *NestedContext) Expr() IExprCont
 	return t.(IExprContext)
 }
 
-
 func (s *NestedContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterNested(s)
@@ -3297,29 +2969,27 @@ func (s *NestedContext) Accept(visitor a
 	}
 }
 
-
 type CreateMessageContext struct {
-	PrimaryContext
-	leadingDot antlr.Token
+	*PrimaryContext
+	leadingDot  antlr.Token
 	_IDENTIFIER antlr.Token
-	ids []antlr.Token
-	s16 antlr.Token
-	ops []antlr.Token
-	op antlr.Token
-	entries IFieldInitializerListContext 
+	ids         []antlr.Token
+	s16         antlr.Token
+	ops         []antlr.Token
+	op          antlr.Token
+	entries     IFieldInitializerListContext
 }
 
 func NewCreateMessageContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateMessageContext {
 	var p = new(CreateMessageContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateMessageContext) GetLeadingDot() antlr.Token { return s.leadingDot }
 
 func (s *CreateMessageContext) Get_IDENTIFIER() antlr.Token { return s._IDENTIFIER }
@@ -3328,7 +2998,6 @@ func (s *CreateMessageContext) GetS16()
 
 func (s *CreateMessageContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateMessageContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *CreateMessageContext) Set_IDENTIFIER(v antlr.Token) { s._IDENTIFIER = v }
@@ -3337,20 +3006,16 @@ func (s *CreateMessageContext) SetS16(v
 
 func (s *CreateMessageContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateMessageContext) GetIds() []antlr.Token { return s.ids }
 
 func (s *CreateMessageContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *CreateMessageContext) SetIds(v []antlr.Token) { s.ids = v }
 
 func (s *CreateMessageContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *CreateMessageContext) GetEntries() IFieldInitializerListContext { return s.entries }
 
-
 func (s *CreateMessageContext) SetEntries(v IFieldInitializerListContext) { s.entries = v }
 
 func (s *CreateMessageContext) GetRuleContext() antlr.RuleContext {
@@ -3386,10 +3051,10 @@ func (s *CreateMessageContext) DOT(i int
 }
 
 func (s *CreateMessageContext) FieldInitializerList() IFieldInitializerListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IFieldInitializerListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3401,7 +3066,6 @@ func (s *CreateMessageContext) FieldInit
 	return t.(IFieldInitializerListContext)
 }
 
-
 func (s *CreateMessageContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterCreateMessage(s)
@@ -3424,43 +3088,38 @@ func (s *CreateMessageContext) Accept(vi
 	}
 }
 
-
 type IdentOrGlobalCallContext struct {
-	PrimaryContext
+	*PrimaryContext
 	leadingDot antlr.Token
-	id antlr.Token
-	op antlr.Token
-	args IExprListContext 
+	id         antlr.Token
+	op         antlr.Token
+	args       IExprListContext
 }
 
 func NewIdentOrGlobalCallContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IdentOrGlobalCallContext {
 	var p = new(IdentOrGlobalCallContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *IdentOrGlobalCallContext) GetLeadingDot() antlr.Token { return s.leadingDot }
 
 func (s *IdentOrGlobalCallContext) GetId() antlr.Token { return s.id }
 
 func (s *IdentOrGlobalCallContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *IdentOrGlobalCallContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *IdentOrGlobalCallContext) SetId(v antlr.Token) { s.id = v }
 
 func (s *IdentOrGlobalCallContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *IdentOrGlobalCallContext) GetArgs() IExprListContext { return s.args }
 
-
 func (s *IdentOrGlobalCallContext) SetArgs(v IExprListContext) { s.args = v }
 
 func (s *IdentOrGlobalCallContext) GetRuleContext() antlr.RuleContext {
@@ -3484,10 +3143,10 @@ func (s *IdentOrGlobalCallContext) LPARE
 }
 
 func (s *IdentOrGlobalCallContext) ExprList() IExprListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3499,7 +3158,6 @@ func (s *IdentOrGlobalCallContext) ExprL
 	return t.(IExprListContext)
 }
 
-
 func (s *IdentOrGlobalCallContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterIdentOrGlobalCall(s)
@@ -3522,31 +3180,40 @@ func (s *IdentOrGlobalCallContext) Accep
 	}
 }
 
-
-
 func (p *CELParser) Primary() (localctx IPrimaryContext) {
+	this := p
+	_ = this
+
 	localctx = NewPrimaryContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 16, CELParserRULE_primary)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.SetState(180)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 25, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 25, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewIdentOrGlobalCallContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
 		p.SetState(130)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserDOT {
 			{
 				p.SetState(129)
@@ -3554,10 +3221,6 @@ func (p *CELParser) Primary() (localctx
 				var _m = p.Match(CELParserDOT)
 
 				localctx.(*IdentOrGlobalCallContext).leadingDot = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -3567,42 +3230,28 @@ func (p *CELParser) Primary() (localctx
 			var _m = p.Match(CELParserIDENTIFIER)
 
 			localctx.(*IdentOrGlobalCallContext).id = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(138)
 		p.GetErrorHandler().Sync(p)
 
-
-		if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 16, p.GetParserRuleContext()) == 1 {
+		if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 16, p.GetParserRuleContext()) == 1 {
 			{
 				p.SetState(133)
 
 				var _m = p.Match(CELParserLPAREN)
 
 				localctx.(*IdentOrGlobalCallContext).op = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			p.SetState(135)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
 			_la = p.GetTokenStream().LA(1)
 
-
-			if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 135762105344) != 0) {
+			if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&135762105344) != 0 {
 				{
 					p.SetState(134)
 
 					var _x = p.ExprList()
 
-
 					localctx.(*IdentOrGlobalCallContext).args = _x
 				}
 
@@ -3610,46 +3259,29 @@ func (p *CELParser) Primary() (localctx
 			{
 				p.SetState(137)
 				p.Match(CELParserRPAREN)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
-			} else if p.HasError() { // JIM
-				goto errorExit
 		}
 
-
 	case 2:
 		localctx = NewNestedContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
 		{
 			p.SetState(140)
 			p.Match(CELParserLPAREN)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(141)
 
 			var _x = p.Expr()
 
-
 			localctx.(*NestedContext).e = _x
 		}
 		{
 			p.SetState(142)
 			p.Match(CELParserRPAREN)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 3:
 		localctx = NewCreateListContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
@@ -3659,59 +3291,37 @@ func (p *CELParser) Primary() (localctx
 			var _m = p.Match(CELParserLBRACKET)
 
 			localctx.(*CreateListContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(146)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
-		if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 135763153920) != 0) {
+		if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&135763153920) != 0 {
 			{
 				p.SetState(145)
 
 				var _x = p.ListInit()
 
-
 				localctx.(*CreateListContext).elems = _x
 			}
 
 		}
 		p.SetState(149)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserCOMMA {
 			{
 				p.SetState(148)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(151)
 			p.Match(CELParserRPRACKET)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 4:
 		localctx = NewCreateStructContext(p, localctx)
 		p.EnterOuterAlt(localctx, 4)
@@ -3721,70 +3331,44 @@ func (p *CELParser) Primary() (localctx
 			var _m = p.Match(CELParserLBRACE)
 
 			localctx.(*CreateStructContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(154)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
-		if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 135763153920) != 0) {
+		if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&135763153920) != 0 {
 			{
 				p.SetState(153)
 
 				var _x = p.MapInitializerList()
 
-
 				localctx.(*CreateStructContext).entries = _x
 			}
 
 		}
 		p.SetState(157)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserCOMMA {
 			{
 				p.SetState(156)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(159)
 			p.Match(CELParserRBRACE)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 5:
 		localctx = NewCreateMessageContext(p, localctx)
 		p.EnterOuterAlt(localctx, 5)
 		p.SetState(161)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserDOT {
 			{
 				p.SetState(160)
@@ -3792,10 +3376,6 @@ func (p *CELParser) Primary() (localctx
 				var _m = p.Match(CELParserDOT)
 
 				localctx.(*CreateMessageContext).leadingDot = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -3805,20 +3385,12 @@ func (p *CELParser) Primary() (localctx
 			var _m = p.Match(CELParserIDENTIFIER)
 
 			localctx.(*CreateMessageContext)._IDENTIFIER = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER)
 		p.SetState(168)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		for _la == CELParserDOT {
 			{
 				p.SetState(164)
@@ -3826,10 +3398,6 @@ func (p *CELParser) Primary() (localctx
 				var _m = p.Match(CELParserDOT)
 
 				localctx.(*CreateMessageContext).s16 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*CreateMessageContext).ops = append(localctx.(*CreateMessageContext).ops, localctx.(*CreateMessageContext).s16)
 			{
@@ -3838,19 +3406,11 @@ func (p *CELParser) Primary() (localctx
 				var _m = p.Match(CELParserIDENTIFIER)
 
 				localctx.(*CreateMessageContext)._IDENTIFIER = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER)
 
-
 			p.SetState(170)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-		    	goto errorExit
-		    }
 			_la = p.GetTokenStream().LA(1)
 		}
 		{
@@ -3859,59 +3419,37 @@ func (p *CELParser) Primary() (localctx
 			var _m = p.Match(CELParserLBRACE)
 
 			localctx.(*CreateMessageContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(173)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserQUESTIONMARK || _la == CELParserIDENTIFIER {
 			{
 				p.SetState(172)
 
 				var _x = p.FieldInitializerList()
 
-
 				localctx.(*CreateMessageContext).entries = _x
 			}
 
 		}
 		p.SetState(176)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserCOMMA {
 			{
 				p.SetState(175)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(178)
 			p.Match(CELParserRBRACE)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 6:
 		localctx = NewConstantLiteralContext(p, localctx)
 		p.EnterOuterAlt(localctx, 6)
@@ -3920,25 +3458,11 @@ func (p *CELParser) Primary() (localctx
 			p.Literal()
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IExprListContext is an interface to support dynamic dispatch.
 type IExprListContext interface {
 	antlr.ParserRuleContext
@@ -3949,18 +3473,14 @@ type IExprListContext interface {
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetE returns the e rule context list.
 	GetE() []IExprContext
 
-
 	// SetE sets the e rule context list.
-	SetE([]IExprContext) 
-
+	SetE([]IExprContext)
 
 	// Getter signatures
 	AllExpr() []IExprContext
@@ -3973,30 +3493,25 @@ type IExprListContext interface {
 }
 
 type ExprListContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	_expr IExprContext 
-	e []IExprContext
+	_expr  IExprContext
+	e      []IExprContext
 }
 
 func NewEmptyExprListContext() *ExprListContext {
 	var p = new(ExprListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_exprList
 	return p
 }
 
-func InitEmptyExprListContext(p *ExprListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_exprList
-}
-
 func (*ExprListContext) IsExprListContext() {}
 
 func NewExprListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprListContext {
 	var p = new(ExprListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_exprList
@@ -4008,16 +3523,12 @@ func (s *ExprListContext) GetParser() an
 
 func (s *ExprListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *ExprListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *ExprListContext) GetE() []IExprContext { return s.e }
 
-
 func (s *ExprListContext) SetE(v []IExprContext) { s.e = v }
 
-
 func (s *ExprListContext) AllExpr() []IExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -4040,12 +3551,12 @@ func (s *ExprListContext) AllExpr() []IE
 }
 
 func (s *ExprListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4075,7 +3586,6 @@ func (s *ExprListContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ExprListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterExprList(s)
@@ -4098,76 +3608,65 @@ func (s *ExprListContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CELParser) ExprList() (localctx IExprListContext) {
+	this := p
+	_ = this
+
 	localctx = NewExprListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 18, CELParserRULE_exprList)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(182)
 
 		var _x = p.Expr()
 
-
 		localctx.(*ExprListContext)._expr = _x
 	}
 	localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr)
 	p.SetState(187)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CELParserCOMMA {
 		{
 			p.SetState(183)
 			p.Match(CELParserCOMMA)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(184)
 
 			var _x = p.Expr()
 
-
 			localctx.(*ExprListContext)._expr = _x
 		}
 		localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr)
 
-
 		p.SetState(189)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IListInitContext is an interface to support dynamic dispatch.
 type IListInitContext interface {
 	antlr.ParserRuleContext
@@ -4178,18 +3677,14 @@ type IListInitContext interface {
 	// Get_optExpr returns the _optExpr rule contexts.
 	Get_optExpr() IOptExprContext
 
-
 	// Set_optExpr sets the _optExpr rule contexts.
 	Set_optExpr(IOptExprContext)
 
-
 	// GetElems returns the elems rule context list.
 	GetElems() []IOptExprContext
 
-
 	// SetElems sets the elems rule context list.
-	SetElems([]IOptExprContext) 
-
+	SetElems([]IOptExprContext)
 
 	// Getter signatures
 	AllOptExpr() []IOptExprContext
@@ -4202,30 +3697,25 @@ type IListInitContext interface {
 }
 
 type ListInitContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optExpr IOptExprContext 
-	elems []IOptExprContext
+	*antlr.BaseParserRuleContext
+	parser   antlr.Parser
+	_optExpr IOptExprContext
+	elems    []IOptExprContext
 }
 
 func NewEmptyListInitContext() *ListInitContext {
 	var p = new(ListInitContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_listInit
 	return p
 }
 
-func InitEmptyListInitContext(p *ListInitContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_listInit
-}
-
 func (*ListInitContext) IsListInitContext() {}
 
 func NewListInitContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ListInitContext {
 	var p = new(ListInitContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_listInit
@@ -4237,16 +3727,12 @@ func (s *ListInitContext) GetParser() an
 
 func (s *ListInitContext) Get_optExpr() IOptExprContext { return s._optExpr }
 
-
 func (s *ListInitContext) Set_optExpr(v IOptExprContext) { s._optExpr = v }
 
-
 func (s *ListInitContext) GetElems() []IOptExprContext { return s.elems }
 
-
 func (s *ListInitContext) SetElems(v []IOptExprContext) { s.elems = v }
 
-
 func (s *ListInitContext) AllOptExpr() []IOptExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -4269,12 +3755,12 @@ func (s *ListInitContext) AllOptExpr() [
 }
 
 func (s *ListInitContext) OptExpr(i int) IOptExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4304,7 +3790,6 @@ func (s *ListInitContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ListInitContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterListInit(s)
@@ -4327,12 +3812,29 @@ func (s *ListInitContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CELParser) ListInit() (localctx IListInitContext) {
+	this := p
+	_ = this
+
 	localctx = NewListInitContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 20, CELParserRULE_listInit)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -4341,68 +3843,37 @@ func (p *CELParser) ListInit() (localctx
 
 		var _x = p.OptExpr()
 
-
 		localctx.(*ListInitContext)._optExpr = _x
 	}
 	localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr)
 	p.SetState(195)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 27, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 27, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(191)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(192)
 
 				var _x = p.OptExpr()
 
-
 				localctx.(*ListInitContext)._optExpr = _x
 			}
 			localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr)
 
-
 		}
 		p.SetState(197)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 27, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 27, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IFieldInitializerListContext is an interface to support dynamic dispatch.
 type IFieldInitializerListContext interface {
 	antlr.ParserRuleContext
@@ -4411,48 +3882,40 @@ type IFieldInitializerListContext interf
 	GetParser() antlr.Parser
 
 	// GetS21 returns the s21 token.
-	GetS21() antlr.Token 
-
+	GetS21() antlr.Token
 
 	// SetS21 sets the s21 token.
-	SetS21(antlr.Token) 
-
+	SetS21(antlr.Token)
 
 	// GetCols returns the cols token list.
 	GetCols() []antlr.Token
 
-
 	// SetCols sets the cols token list.
 	SetCols([]antlr.Token)
 
-
 	// Get_optField returns the _optField rule contexts.
 	Get_optField() IOptFieldContext
 
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_optField sets the _optField rule contexts.
 	Set_optField(IOptFieldContext)
 
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetFields returns the fields rule context list.
 	GetFields() []IOptFieldContext
 
 	// GetValues returns the values rule context list.
 	GetValues() []IExprContext
 
-
 	// SetFields sets the fields rule context list.
-	SetFields([]IOptFieldContext) 
+	SetFields([]IOptFieldContext)
 
 	// SetValues sets the values rule context list.
-	SetValues([]IExprContext) 
-
+	SetValues([]IExprContext)
 
 	// Getter signatures
 	AllOptField() []IOptFieldContext
@@ -4469,34 +3932,29 @@ type IFieldInitializerListContext interf
 }
 
 type FieldInitializerListContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optField IOptFieldContext 
-	fields []IOptFieldContext
-	s21 antlr.Token
-	cols []antlr.Token
-	_expr IExprContext 
-	values []IExprContext
+	*antlr.BaseParserRuleContext
+	parser    antlr.Parser
+	_optField IOptFieldContext
+	fields    []IOptFieldContext
+	s21       antlr.Token
+	cols      []antlr.Token
+	_expr     IExprContext
+	values    []IExprContext
 }
 
 func NewEmptyFieldInitializerListContext() *FieldInitializerListContext {
 	var p = new(FieldInitializerListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_fieldInitializerList
 	return p
 }
 
-func InitEmptyFieldInitializerListContext(p *FieldInitializerListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_fieldInitializerList
-}
-
 func (*FieldInitializerListContext) IsFieldInitializerListContext() {}
 
 func NewFieldInitializerListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FieldInitializerListContext {
 	var p = new(FieldInitializerListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_fieldInitializerList
@@ -4508,36 +3966,28 @@ func (s *FieldInitializerListContext) Ge
 
 func (s *FieldInitializerListContext) GetS21() antlr.Token { return s.s21 }
 
-
 func (s *FieldInitializerListContext) SetS21(v antlr.Token) { s.s21 = v }
 
-
 func (s *FieldInitializerListContext) GetCols() []antlr.Token { return s.cols }
 
-
 func (s *FieldInitializerListContext) SetCols(v []antlr.Token) { s.cols = v }
 
-
 func (s *FieldInitializerListContext) Get_optField() IOptFieldContext { return s._optField }
 
 func (s *FieldInitializerListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *FieldInitializerListContext) Set_optField(v IOptFieldContext) { s._optField = v }
 
 func (s *FieldInitializerListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *FieldInitializerListContext) GetFields() []IOptFieldContext { return s.fields }
 
 func (s *FieldInitializerListContext) GetValues() []IExprContext { return s.values }
 
-
 func (s *FieldInitializerListContext) SetFields(v []IOptFieldContext) { s.fields = v }
 
 func (s *FieldInitializerListContext) SetValues(v []IExprContext) { s.values = v }
 
-
 func (s *FieldInitializerListContext) AllOptField() []IOptFieldContext {
 	children := s.GetChildren()
 	len := 0
@@ -4560,12 +4010,12 @@ func (s *FieldInitializerListContext) Al
 }
 
 func (s *FieldInitializerListContext) OptField(i int) IOptFieldContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptFieldContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4609,12 +4059,12 @@ func (s *FieldInitializerListContext) Al
 }
 
 func (s *FieldInitializerListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4644,7 +4094,6 @@ func (s *FieldInitializerListContext) To
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *FieldInitializerListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterFieldInitializerList(s)
@@ -4667,12 +4116,29 @@ func (s *FieldInitializerListContext) Ac
 	}
 }
 
-
-
-
 func (p *CELParser) FieldInitializerList() (localctx IFieldInitializerListContext) {
+	this := p
+	_ = this
+
 	localctx = NewFieldInitializerListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 22, CELParserRULE_fieldInitializerList)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -4681,7 +4147,6 @@ func (p *CELParser) FieldInitializerList
 
 		var _x = p.OptField()
 
-
 		localctx.(*FieldInitializerListContext)._optField = _x
 	}
 	localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField)
@@ -4691,10 +4156,6 @@ func (p *CELParser) FieldInitializerList
 		var _m = p.Match(CELParserCOLON)
 
 		localctx.(*FieldInitializerListContext).s21 = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s21)
 	{
@@ -4702,35 +4163,24 @@ func (p *CELParser) FieldInitializerList
 
 		var _x = p.Expr()
 
-
 		localctx.(*FieldInitializerListContext)._expr = _x
 	}
 	localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr)
 	p.SetState(208)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 28, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 28, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(201)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(202)
 
 				var _x = p.OptField()
 
-
 				localctx.(*FieldInitializerListContext)._optField = _x
 			}
 			localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField)
@@ -4740,10 +4190,6 @@ func (p *CELParser) FieldInitializerList
 				var _m = p.Match(CELParserCOLON)
 
 				localctx.(*FieldInitializerListContext).s21 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s21)
 			{
@@ -4751,40 +4197,19 @@ func (p *CELParser) FieldInitializerList
 
 				var _x = p.Expr()
 
-
 				localctx.(*FieldInitializerListContext)._expr = _x
 			}
 			localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr)
 
-
 		}
 		p.SetState(210)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 28, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 28, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IOptFieldContext is an interface to support dynamic dispatch.
 type IOptFieldContext interface {
 	antlr.ParserRuleContext
@@ -4793,12 +4218,10 @@ type IOptFieldContext interface {
 	GetParser() antlr.Parser
 
 	// GetOpt returns the opt token.
-	GetOpt() antlr.Token 
-
+	GetOpt() antlr.Token
 
 	// SetOpt sets the opt token.
-	SetOpt(antlr.Token) 
-
+	SetOpt(antlr.Token)
 
 	// Getter signatures
 	IDENTIFIER() antlr.TerminalNode
@@ -4809,29 +4232,24 @@ type IOptFieldContext interface {
 }
 
 type OptFieldContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	opt antlr.Token
+	opt    antlr.Token
 }
 
 func NewEmptyOptFieldContext() *OptFieldContext {
 	var p = new(OptFieldContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_optField
 	return p
 }
 
-func InitEmptyOptFieldContext(p *OptFieldContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_optField
-}
-
 func (*OptFieldContext) IsOptFieldContext() {}
 
 func NewOptFieldContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OptFieldContext {
 	var p = new(OptFieldContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_optField
@@ -4843,10 +4261,8 @@ func (s *OptFieldContext) GetParser() an
 
 func (s *OptFieldContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *OptFieldContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *OptFieldContext) IDENTIFIER() antlr.TerminalNode {
 	return s.GetToken(CELParserIDENTIFIER, 0)
 }
@@ -4863,7 +4279,6 @@ func (s *OptFieldContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *OptFieldContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterOptField(s)
@@ -4886,23 +4301,35 @@ func (s *OptFieldContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CELParser) OptField() (localctx IOptFieldContext) {
+	this := p
+	_ = this
+
 	localctx = NewOptFieldContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 24, CELParserRULE_optField)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(212)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CELParserQUESTIONMARK {
 		{
 			p.SetState(211)
@@ -4910,38 +4337,17 @@ func (p *CELParser) OptField() (localctx
 			var _m = p.Match(CELParserQUESTIONMARK)
 
 			localctx.(*OptFieldContext).opt = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
 	{
 		p.SetState(214)
 		p.Match(CELParserIDENTIFIER)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IMapInitializerListContext is an interface to support dynamic dispatch.
 type IMapInitializerListContext interface {
 	antlr.ParserRuleContext
@@ -4950,48 +4356,40 @@ type IMapInitializerListContext interfac
 	GetParser() antlr.Parser
 
 	// GetS21 returns the s21 token.
-	GetS21() antlr.Token 
-
+	GetS21() antlr.Token
 
 	// SetS21 sets the s21 token.
-	SetS21(antlr.Token) 
-
+	SetS21(antlr.Token)
 
 	// GetCols returns the cols token list.
 	GetCols() []antlr.Token
 
-
 	// SetCols sets the cols token list.
 	SetCols([]antlr.Token)
 
-
 	// Get_optExpr returns the _optExpr rule contexts.
 	Get_optExpr() IOptExprContext
 
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_optExpr sets the _optExpr rule contexts.
 	Set_optExpr(IOptExprContext)
 
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetKeys returns the keys rule context list.
 	GetKeys() []IOptExprContext
 
 	// GetValues returns the values rule context list.
 	GetValues() []IExprContext
 
-
 	// SetKeys sets the keys rule context list.
-	SetKeys([]IOptExprContext) 
+	SetKeys([]IOptExprContext)
 
 	// SetValues sets the values rule context list.
-	SetValues([]IExprContext) 
-
+	SetValues([]IExprContext)
 
 	// Getter signatures
 	AllOptExpr() []IOptExprContext
@@ -5008,34 +4406,29 @@ type IMapInitializerListContext interfac
 }
 
 type MapInitializerListContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optExpr IOptExprContext 
-	keys []IOptExprContext
-	s21 antlr.Token
-	cols []antlr.Token
-	_expr IExprContext 
-	values []IExprContext
+	*antlr.BaseParserRuleContext
+	parser   antlr.Parser
+	_optExpr IOptExprContext
+	keys     []IOptExprContext
+	s21      antlr.Token
+	cols     []antlr.Token
+	_expr    IExprContext
+	values   []IExprContext
 }
 
 func NewEmptyMapInitializerListContext() *MapInitializerListContext {
 	var p = new(MapInitializerListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_mapInitializerList
 	return p
 }
 
-func InitEmptyMapInitializerListContext(p *MapInitializerListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_mapInitializerList
-}
-
 func (*MapInitializerListContext) IsMapInitializerListContext() {}
 
 func NewMapInitializerListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MapInitializerListContext {
 	var p = new(MapInitializerListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_mapInitializerList
@@ -5047,36 +4440,28 @@ func (s *MapInitializerListContext) GetP
 
 func (s *MapInitializerListContext) GetS21() antlr.Token { return s.s21 }
 
-
 func (s *MapInitializerListContext) SetS21(v antlr.Token) { s.s21 = v }
 
-
 func (s *MapInitializerListContext) GetCols() []antlr.Token { return s.cols }
 
-
 func (s *MapInitializerListContext) SetCols(v []antlr.Token) { s.cols = v }
 
-
 func (s *MapInitializerListContext) Get_optExpr() IOptExprContext { return s._optExpr }
 
 func (s *MapInitializerListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *MapInitializerListContext) Set_optExpr(v IOptExprContext) { s._optExpr = v }
 
 func (s *MapInitializerListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *MapInitializerListContext) GetKeys() []IOptExprContext { return s.keys }
 
 func (s *MapInitializerListContext) GetValues() []IExprContext { return s.values }
 
-
 func (s *MapInitializerListContext) SetKeys(v []IOptExprContext) { s.keys = v }
 
 func (s *MapInitializerListContext) SetValues(v []IExprContext) { s.values = v }
 
-
 func (s *MapInitializerListContext) AllOptExpr() []IOptExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -5099,12 +4484,12 @@ func (s *MapInitializerListContext) AllO
 }
 
 func (s *MapInitializerListContext) OptExpr(i int) IOptExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -5148,12 +4533,12 @@ func (s *MapInitializerListContext) AllE
 }
 
 func (s *MapInitializerListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -5183,7 +4568,6 @@ func (s *MapInitializerListContext) ToSt
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *MapInitializerListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterMapInitializerList(s)
@@ -5206,12 +4590,29 @@ func (s *MapInitializerListContext) Acce
 	}
 }
 
-
-
-
 func (p *CELParser) MapInitializerList() (localctx IMapInitializerListContext) {
+	this := p
+	_ = this
+
 	localctx = NewMapInitializerListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 26, CELParserRULE_mapInitializerList)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -5220,7 +4621,6 @@ func (p *CELParser) MapInitializerList()
 
 		var _x = p.OptExpr()
 
-
 		localctx.(*MapInitializerListContext)._optExpr = _x
 	}
 	localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr)
@@ -5230,10 +4630,6 @@ func (p *CELParser) MapInitializerList()
 		var _m = p.Match(CELParserCOLON)
 
 		localctx.(*MapInitializerListContext).s21 = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s21)
 	{
@@ -5241,35 +4637,24 @@ func (p *CELParser) MapInitializerList()
 
 		var _x = p.Expr()
 
-
 		localctx.(*MapInitializerListContext)._expr = _x
 	}
 	localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr)
 	p.SetState(226)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 30, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 30, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(219)
 				p.Match(CELParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(220)
 
 				var _x = p.OptExpr()
 
-
 				localctx.(*MapInitializerListContext)._optExpr = _x
 			}
 			localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr)
@@ -5279,10 +4664,6 @@ func (p *CELParser) MapInitializerList()
 				var _m = p.Match(CELParserCOLON)
 
 				localctx.(*MapInitializerListContext).s21 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s21)
 			{
@@ -5290,40 +4671,19 @@ func (p *CELParser) MapInitializerList()
 
 				var _x = p.Expr()
 
-
 				localctx.(*MapInitializerListContext)._expr = _x
 			}
 			localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr)
 
-
 		}
 		p.SetState(228)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 30, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 30, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IOptExprContext is an interface to support dynamic dispatch.
 type IOptExprContext interface {
 	antlr.ParserRuleContext
@@ -5332,21 +4692,17 @@ type IOptExprContext interface {
 	GetParser() antlr.Parser
 
 	// GetOpt returns the opt token.
-	GetOpt() antlr.Token 
-
+	GetOpt() antlr.Token
 
 	// SetOpt sets the opt token.
-	SetOpt(antlr.Token) 
-
+	SetOpt(antlr.Token)
 
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	Expr() IExprContext
 	QUESTIONMARK() antlr.TerminalNode
@@ -5356,30 +4712,25 @@ type IOptExprContext interface {
 }
 
 type OptExprContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	opt antlr.Token
-	e IExprContext 
+	opt    antlr.Token
+	e      IExprContext
 }
 
 func NewEmptyOptExprContext() *OptExprContext {
 	var p = new(OptExprContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_optExpr
 	return p
 }
 
-func InitEmptyOptExprContext(p *OptExprContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_optExpr
-}
-
 func (*OptExprContext) IsOptExprContext() {}
 
 func NewOptExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OptExprContext {
 	var p = new(OptExprContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_optExpr
@@ -5391,21 +4742,17 @@ func (s *OptExprContext) GetParser() ant
 
 func (s *OptExprContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *OptExprContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *OptExprContext) GetE() IExprContext { return s.e }
 
-
 func (s *OptExprContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *OptExprContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5429,7 +4776,6 @@ func (s *OptExprContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *OptExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterOptExpr(s)
@@ -5452,23 +4798,35 @@ func (s *OptExprContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CELParser) OptExpr() (localctx IOptExprContext) {
+	this := p
+	_ = this
+
 	localctx = NewOptExprContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 28, CELParserRULE_optExpr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(230)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CELParserQUESTIONMARK {
 		{
 			p.SetState(229)
@@ -5476,10 +4834,6 @@ func (p *CELParser) OptExpr() (localctx
 			var _m = p.Match(CELParserQUESTIONMARK)
 
 			localctx.(*OptExprContext).opt = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
@@ -5488,26 +4842,12 @@ func (p *CELParser) OptExpr() (localctx
 
 		var _x = p.Expr()
 
-
 		localctx.(*OptExprContext).e = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ILiteralContext is an interface to support dynamic dispatch.
 type ILiteralContext interface {
 	antlr.ParserRuleContext
@@ -5519,28 +4859,23 @@ type ILiteralContext interface {
 }
 
 type LiteralContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyLiteralContext() *LiteralContext {
 	var p = new(LiteralContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CELParserRULE_literal
 	return p
 }
 
-func InitEmptyLiteralContext(p *LiteralContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CELParserRULE_literal
-}
-
 func (*LiteralContext) IsLiteralContext() {}
 
 func NewLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LiteralContext {
 	var p = new(LiteralContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CELParserRULE_literal
@@ -5550,8 +4885,8 @@ func NewLiteralContext(parser antlr.Pars
 
 func (s *LiteralContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *LiteralContext) CopyAll(ctx *LiteralContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *LiteralContext) CopyFrom(ctx *LiteralContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *LiteralContext) GetRuleContext() antlr.RuleContext {
@@ -5562,28 +4897,23 @@ func (s *LiteralContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type BytesContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBytesContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BytesContext {
 	var p = new(BytesContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BytesContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BytesContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BytesContext) GetRuleContext() antlr.RuleContext {
@@ -5594,7 +4924,6 @@ func (s *BytesContext) BYTES() antlr.Ter
 	return s.GetToken(CELParserBYTES, 0)
 }
 
-
 func (s *BytesContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterBytes(s)
@@ -5617,26 +4946,23 @@ func (s *BytesContext) Accept(visitor an
 	}
 }
 
-
 type UintContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewUintContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *UintContext {
 	var p = new(UintContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *UintContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *UintContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *UintContext) GetRuleContext() antlr.RuleContext {
@@ -5647,7 +4973,6 @@ func (s *UintContext) NUM_UINT() antlr.T
 	return s.GetToken(CELParserNUM_UINT, 0)
 }
 
-
 func (s *UintContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterUint(s)
@@ -5670,26 +4995,23 @@ func (s *UintContext) Accept(visitor ant
 	}
 }
 
-
 type NullContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewNullContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NullContext {
 	var p = new(NullContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *NullContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *NullContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *NullContext) GetRuleContext() antlr.RuleContext {
@@ -5700,7 +5022,6 @@ func (s *NullContext) NUL() antlr.Termin
 	return s.GetToken(CELParserNUL, 0)
 }
 
-
 func (s *NullContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterNull(s)
@@ -5723,26 +5044,23 @@ func (s *NullContext) Accept(visitor ant
 	}
 }
 
-
 type BoolFalseContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBoolFalseContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BoolFalseContext {
 	var p = new(BoolFalseContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BoolFalseContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BoolFalseContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BoolFalseContext) GetRuleContext() antlr.RuleContext {
@@ -5753,7 +5071,6 @@ func (s *BoolFalseContext) CEL_FALSE() a
 	return s.GetToken(CELParserCEL_FALSE, 0)
 }
 
-
 func (s *BoolFalseContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterBoolFalse(s)
@@ -5776,26 +5093,23 @@ func (s *BoolFalseContext) Accept(visito
 	}
 }
 
-
 type StringContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewStringContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *StringContext {
 	var p = new(StringContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *StringContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *StringContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *StringContext) GetRuleContext() antlr.RuleContext {
@@ -5806,7 +5120,6 @@ func (s *StringContext) STRING() antlr.T
 	return s.GetToken(CELParserSTRING, 0)
 }
 
-
 func (s *StringContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterString(s)
@@ -5829,29 +5142,26 @@ func (s *StringContext) Accept(visitor a
 	}
 }
 
-
 type DoubleContext struct {
-	LiteralContext
+	*LiteralContext
 	sign antlr.Token
-	tok antlr.Token
+	tok  antlr.Token
 }
 
 func NewDoubleContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *DoubleContext {
 	var p = new(DoubleContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *DoubleContext) GetSign() antlr.Token { return s.sign }
 
 func (s *DoubleContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *DoubleContext) SetSign(v antlr.Token) { s.sign = v }
 
 func (s *DoubleContext) SetTok(v antlr.Token) { s.tok = v }
@@ -5868,7 +5178,6 @@ func (s *DoubleContext) MINUS() antlr.Te
 	return s.GetToken(CELParserMINUS, 0)
 }
 
-
 func (s *DoubleContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterDouble(s)
@@ -5891,26 +5200,23 @@ func (s *DoubleContext) Accept(visitor a
 	}
 }
 
-
 type BoolTrueContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBoolTrueContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BoolTrueContext {
 	var p = new(BoolTrueContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BoolTrueContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BoolTrueContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BoolTrueContext) GetRuleContext() antlr.RuleContext {
@@ -5921,7 +5227,6 @@ func (s *BoolTrueContext) CEL_TRUE() ant
 	return s.GetToken(CELParserCEL_TRUE, 0)
 }
 
-
 func (s *BoolTrueContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterBoolTrue(s)
@@ -5944,29 +5249,26 @@ func (s *BoolTrueContext) Accept(visitor
 	}
 }
 
-
 type IntContext struct {
-	LiteralContext
+	*LiteralContext
 	sign antlr.Token
-	tok antlr.Token
+	tok  antlr.Token
 }
 
 func NewIntContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IntContext {
 	var p = new(IntContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *IntContext) GetSign() antlr.Token { return s.sign }
 
 func (s *IntContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *IntContext) SetSign(v antlr.Token) { s.sign = v }
 
 func (s *IntContext) SetTok(v antlr.Token) { s.tok = v }
@@ -5983,7 +5285,6 @@ func (s *IntContext) MINUS() antlr.Termi
 	return s.GetToken(CELParserMINUS, 0)
 }
 
-
 func (s *IntContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CELListener); ok {
 		listenerT.EnterInt(s)
@@ -6006,31 +5307,40 @@ func (s *IntContext) Accept(visitor antl
 	}
 }
 
-
-
 func (p *CELParser) Literal() (localctx ILiteralContext) {
+	this := p
+	_ = this
+
 	localctx = NewLiteralContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 30, CELParserRULE_literal)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.SetState(248)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 34, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 34, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewIntContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
 		p.SetState(235)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserMINUS {
 			{
 				p.SetState(234)
@@ -6038,10 +5348,6 @@ func (p *CELParser) Literal() (localctx
 				var _m = p.Match(CELParserMINUS)
 
 				localctx.(*IntContext).sign = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -6051,13 +5357,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserNUM_INT)
 
 			localctx.(*IntContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 2:
 		localctx = NewUintContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
@@ -6067,24 +5368,15 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserNUM_UINT)
 
 			localctx.(*UintContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 3:
 		localctx = NewDoubleContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
 		p.SetState(240)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CELParserMINUS {
 			{
 				p.SetState(239)
@@ -6092,10 +5384,6 @@ func (p *CELParser) Literal() (localctx
 				var _m = p.Match(CELParserMINUS)
 
 				localctx.(*DoubleContext).sign = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -6105,13 +5393,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserNUM_FLOAT)
 
 			localctx.(*DoubleContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 4:
 		localctx = NewStringContext(p, localctx)
 		p.EnterOuterAlt(localctx, 4)
@@ -6121,13 +5404,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserSTRING)
 
 			localctx.(*StringContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 5:
 		localctx = NewBytesContext(p, localctx)
 		p.EnterOuterAlt(localctx, 5)
@@ -6137,13 +5415,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserBYTES)
 
 			localctx.(*BytesContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 6:
 		localctx = NewBoolTrueContext(p, localctx)
 		p.EnterOuterAlt(localctx, 6)
@@ -6153,13 +5426,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserCEL_TRUE)
 
 			localctx.(*BoolTrueContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 7:
 		localctx = NewBoolFalseContext(p, localctx)
 		p.EnterOuterAlt(localctx, 7)
@@ -6169,13 +5437,8 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserCEL_FALSE)
 
 			localctx.(*BoolFalseContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 8:
 		localctx = NewNullContext(p, localctx)
 		p.EnterOuterAlt(localctx, 8)
@@ -6185,48 +5448,35 @@ func (p *CELParser) Literal() (localctx
 			var _m = p.Match(CELParserNUL)
 
 			localctx.(*NullContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 func (p *CELParser) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex int) bool {
 	switch ruleIndex {
 	case 4:
-			var t *RelationContext = nil
-			if localctx != nil { t = localctx.(*RelationContext) }
-			return p.Relation_Sempred(t, predIndex)
+		var t *RelationContext = nil
+		if localctx != nil {
+			t = localctx.(*RelationContext)
+		}
+		return p.Relation_Sempred(t, predIndex)
 
 	case 5:
-			var t *CalcContext = nil
-			if localctx != nil { t = localctx.(*CalcContext) }
-			return p.Calc_Sempred(t, predIndex)
+		var t *CalcContext = nil
+		if localctx != nil {
+			t = localctx.(*CalcContext)
+		}
+		return p.Calc_Sempred(t, predIndex)
 
 	case 7:
-			var t *MemberContext = nil
-			if localctx != nil { t = localctx.(*MemberContext) }
-			return p.Member_Sempred(t, predIndex)
-
+		var t *MemberContext = nil
+		if localctx != nil {
+			t = localctx.(*MemberContext)
+		}
+		return p.Member_Sempred(t, predIndex)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(ruleIndex))
@@ -6234,9 +5484,12 @@ func (p *CELParser) Sempred(localctx ant
 }
 
 func (p *CELParser) Relation_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 0:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
@@ -6244,12 +5497,15 @@ func (p *CELParser) Relation_Sempred(loc
 }
 
 func (p *CELParser) Calc_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 1:
-			return p.Precpred(p.GetParserRuleContext(), 2)
+		return p.Precpred(p.GetParserRuleContext(), 2)
 
 	case 2:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
@@ -6257,18 +5513,20 @@ func (p *CELParser) Calc_Sempred(localct
 }
 
 func (p *CELParser) Member_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 3:
-			return p.Precpred(p.GetParserRuleContext(), 3)
+		return p.Precpred(p.GetParserRuleContext(), 3)
 
 	case 4:
-			return p.Precpred(p.GetParserRuleContext(), 2)
+		return p.Precpred(p.GetParserRuleContext(), 2)
 
 	case 5:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
 	}
 }
-
Index: golang-github-google-cel-go/parser/gen/cel_visitor.go
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/cel_visitor.go
+++ golang-github-google-cel-go/parser/gen/cel_visitor.go
@@ -1,8 +1,7 @@
-// Code generated from /usr/local/google/home/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from /Users/tswadell/go/src/github.com/google/cel-go/parser/gen/CEL.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package gen // CEL
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // A complete Visitor for a parse tree produced by CELParser.
 type CELVisitor interface {
@@ -106,5 +105,4 @@ type CELVisitor interface {
 
 	// Visit a parse tree produced by CELParser#Null.
 	VisitNull(ctx *NullContext) interface{}
-
-}
\ No newline at end of file
+}
Index: golang-github-google-cel-go/parser/gen/generate.sh
===================================================================
--- golang-github-google-cel-go.orig/parser/gen/generate.sh
+++ golang-github-google-cel-go/parser/gen/generate.sh
@@ -27,7 +27,7 @@
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 # Generate AntLR artifacts.
-java -Xmx500M -cp ${DIR}/antlr-4.13.1-complete.jar org.antlr.v4.Tool  \
+java -Xmx500M -cp ${DIR}/antlr-4.12.0-complete.jar org.antlr.v4.Tool  \
     -Dlanguage=Go \
     -package gen \
     -o ${DIR} \
Index: golang-github-google-cel-go/parser/helper.go
===================================================================
--- golang-github-google-cel-go.orig/parser/helper.go
+++ golang-github-google-cel-go/parser/helper.go
@@ -17,7 +17,7 @@ package parser
 import (
 	"sync"
 
-	antlr "github.com/antlr4-go/antlr/v4"
+	antlr "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 	"github.com/google/cel-go/common"
 	"github.com/google/cel-go/common/ast"
Index: golang-github-google-cel-go/parser/input.go
===================================================================
--- golang-github-google-cel-go.orig/parser/input.go
+++ golang-github-google-cel-go/parser/input.go
@@ -15,7 +15,7 @@
 package parser
 
 import (
-	antlr "github.com/antlr4-go/antlr/v4"
+	antlr "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 	"github.com/google/cel-go/common/runes"
 )
@@ -110,7 +110,7 @@ func (c *charStream) GetTextFromTokens(s
 }
 
 // GetTextFromInterval implements (antlr.CharStream).GetTextFromInterval.
-func (c *charStream) GetTextFromInterval(i antlr.Interval) string {
+func (c *charStream) GetTextFromInterval(i *antlr.Interval) string {
 	return c.GetText(i.Start, i.Stop)
 }
 
Index: golang-github-google-cel-go/parser/parser.go
===================================================================
--- golang-github-google-cel-go.orig/parser/parser.go
+++ golang-github-google-cel-go/parser/parser.go
@@ -22,7 +22,7 @@ import (
 	"strconv"
 	"strings"
 
-	antlr "github.com/antlr4-go/antlr/v4"
+	antlr "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 	"github.com/google/cel-go/common"
 	"github.com/google/cel-go/common/ast"
@@ -339,7 +339,7 @@ func (p *parser) parse(expr runes.Buffer
 		}
 	}()
 
-	return p.Visit(prsr.Start_()).(ast.Expr)
+	return p.Visit(prsr.Start()).(ast.Expr)
 }
 
 // Visitor implementations.
@@ -875,15 +875,15 @@ func (p *parser) SyntaxError(recognizer
 	}
 }
 
-func (p *parser) ReportAmbiguity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, exact bool, ambigAlts *antlr.BitSet, configs *antlr.ATNConfigSet) {
+func (p *parser) ReportAmbiguity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, exact bool, ambigAlts *antlr.BitSet, configs antlr.ATNConfigSet) {
 	// Intentional
 }
 
-func (p *parser) ReportAttemptingFullContext(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, conflictingAlts *antlr.BitSet, configs *antlr.ATNConfigSet) {
+func (p *parser) ReportAttemptingFullContext(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, conflictingAlts *antlr.BitSet, configs antlr.ATNConfigSet) {
 	// Intentional
 }
 
-func (p *parser) ReportContextSensitivity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex, prediction int, configs *antlr.ATNConfigSet) {
+func (p *parser) ReportContextSensitivity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex, prediction int, configs antlr.ATNConfigSet) {
 	// Intentional
 }
 
Index: golang-github-google-cel-go/repl/BUILD.bazel
===================================================================
--- golang-github-google-cel-go.orig/repl/BUILD.bazel
+++ golang-github-google-cel-go/repl/BUILD.bazel
@@ -36,7 +36,7 @@ go_library(
         "//ext:go_default_library",
         "//interpreter:go_default_library",
         "//repl/parser:go_default_library",
-        "@com_github_antlr4_go_antlr_v4//:go_default_library",
+        "@com_github_antlr_antlr4_runtime_go_antlr_v4//:go_default_library",
         "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
         "@org_golang_google_protobuf//encoding/prototext:go_default_library",
         "@org_golang_google_protobuf//proto:go_default_library",
Index: golang-github-google-cel-go/repl/appengine/go.mod
===================================================================
--- golang-github-google-cel-go.orig/repl/appengine/go.mod
+++ golang-github-google-cel-go/repl/appengine/go.mod
@@ -5,16 +5,14 @@ go 1.18
 require github.com/google/cel-go/repl v0.0.0-20230406155237-b081aea03865
 
 require (
-	github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
+	github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1 // indirect
 	github.com/google/cel-go v0.18.1 // indirect
 	github.com/stoewer/go-strcase v1.3.0 // indirect
-	golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
+	golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect
 	golang.org/x/text v0.9.0 // indirect
 	google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 // indirect
 	google.golang.org/protobuf v1.31.0 // indirect
 )
 
-replace github.com/google/cel-go => ../../.
-
 replace github.com/google/cel-go/repl => ../.
Index: golang-github-google-cel-go/repl/appengine/go.sum
===================================================================
--- golang-github-google-cel-go.orig/repl/appengine/go.sum
+++ golang-github-google-cel-go/repl/appengine/go.sum
@@ -1,9 +1,11 @@
-github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
-github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1 h1:X8MJ0fnN5FPdcGF5Ij2/OW+HgiJrRg3AfHAx1PJtIzM=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/google/cel-go v0.18.1 h1:V/lAXKq4C3BYLDy/ARzMtpkEEYfHQpZzVyzy69nEUjs=
+github.com/google/cel-go v0.18.1/go.mod h1:PVAybmSnWkNMUZR/tEWFUiJ1Np4Hz0MHsZJcgC4zln4=
 github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -17,8 +19,8 @@ github.com/stretchr/testify v1.7.1/go.mo
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
+golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
 golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Index: golang-github-google-cel-go/repl/commands.go
===================================================================
--- golang-github-google-cel-go.orig/repl/commands.go
+++ golang-github-google-cel-go/repl/commands.go
@@ -19,7 +19,7 @@ import (
 	"fmt"
 	"strings"
 
-	antlr "github.com/antlr4-go/antlr/v4"
+	antlr "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 	"github.com/google/cel-go/repl/parser"
 
Index: golang-github-google-cel-go/repl/go.mod
===================================================================
--- golang-github-google-cel-go.orig/repl/go.mod
+++ golang-github-google-cel-go/repl/go.mod
@@ -3,7 +3,7 @@ module github.com/google/cel-go/repl
 go 1.18
 
 require (
-	github.com/antlr4-go/antlr/v4 v4.13.0
+	github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1
 	github.com/chzyer/readline v1.5.1
 	github.com/google/cel-go v0.18.1
 	google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5
@@ -12,7 +12,7 @@ require (
 
 require (
 	github.com/stoewer/go-strcase v1.3.0 // indirect
-	golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
+	golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect
 	golang.org/x/sys v0.8.0 // indirect
 	golang.org/x/text v0.9.0 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 // indirect
Index: golang-github-google-cel-go/repl/go.sum
===================================================================
--- golang-github-google-cel-go.orig/repl/go.sum
+++ golang-github-google-cel-go/repl/go.sum
@@ -1,5 +1,7 @@
-github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
-github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1 h1:X8MJ0fnN5FPdcGF5Ij2/OW+HgiJrRg3AfHAx1PJtIzM=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
 github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM=
 github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ=
 github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI=
@@ -23,8 +25,8 @@ github.com/stretchr/testify v1.7.1/go.mo
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
+golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
 golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Index: golang-github-google-cel-go/repl/parser/BUILD.bazel
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/BUILD.bazel
+++ golang-github-google-cel-go/repl/parser/BUILD.bazel
@@ -25,7 +25,7 @@ go_library(
     data = glob(["*.tokens"]),
     importpath = "github.com/google/cel-go/repl/parser",
     deps = [
-        "@com_github_antlr4_go_antlr_v4//:go_default_library",
+        "@com_github_antlr_antlr4_runtime_go_antlr_v4//:go_default_library",
     ],
 )
 
@@ -33,7 +33,5 @@ go_test(
     name = "go_default_test",
     srcs = ["commands_test.go"],
     embed = [":go_default_library"],
-    deps = [
-        "@com_github_antlr4_go_antlr_v4//:go_default_library",
-    ],
+    deps = ["@com_github_antlr_antlr4_runtime_go_antlr_v4//:go_default_library"],
 )
Index: golang-github-google-cel-go/repl/parser/commands_base_listener.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_base_listener.go
+++ golang-github-google-cel-go/repl/parser/commands_base_listener.go
@@ -1,7 +1,7 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser // Commands
-import "github.com/antlr4-go/antlr/v4"
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // BaseCommandsListener is a complete listener for a parse tree produced by CommandsParser.
 type BaseCommandsListener struct{}
Index: golang-github-google-cel-go/repl/parser/commands_base_visitor.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_base_visitor.go
+++ golang-github-google-cel-go/repl/parser/commands_base_visitor.go
@@ -1,8 +1,7 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser // Commands
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 type BaseCommandsVisitor struct {
 	*antlr.BaseParseTreeVisitor
Index: golang-github-google-cel-go/repl/parser/commands_lexer.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_lexer.go
+++ golang-github-google-cel-go/repl/parser/commands_lexer.go
@@ -1,316 +1,318 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser
+
 import (
 	"fmt"
-  	"sync"
+	"sync"
 	"unicode"
-	"github.com/antlr4-go/antlr/v4"
+
+	"github.com/antlr/antlr4/runtime/Go/antlr/v4"
 )
+
 // Suppress unused import error
 var _ = fmt.Printf
 var _ = sync.Once{}
 var _ = unicode.IsLetter
 
-
 type CommandsLexer struct {
 	*antlr.BaseLexer
 	channelNames []string
-	modeNames []string
+	modeNames    []string
 	// TODO: EOF string
 }
 
-var CommandsLexerLexerStaticData struct {
-  once                   sync.Once
-  serializedATN          []int32
-  ChannelNames           []string
-  ModeNames              []string
-  LiteralNames           []string
-  SymbolicNames          []string
-  RuleNames              []string
-  PredictionContextCache *antlr.PredictionContextCache
-  atn                    *antlr.ATN
-  decisionToDFA          []*antlr.DFA
+var commandslexerLexerStaticData struct {
+	once                   sync.Once
+	serializedATN          []int32
+	channelNames           []string
+	modeNames              []string
+	literalNames           []string
+	symbolicNames          []string
+	ruleNames              []string
+	predictionContextCache *antlr.PredictionContextCache
+	atn                    *antlr.ATN
+	decisionToDFA          []*antlr.DFA
 }
 
 func commandslexerLexerInit() {
-  staticData := &CommandsLexerLexerStaticData
-  staticData.ChannelNames = []string{
-    "DEFAULT_TOKEN_CHANNEL", "HIDDEN",
-  }
-  staticData.ModeNames = []string{
-    "DEFAULT_MODE",
-  }
-  staticData.LiteralNames = []string{
-    "", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'", 
-    "'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", "'<'", "'<='", 
-    "'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", "'('", "')'", 
-    "'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", "'/'", "'%'", 
-    "'true'", "'false'", "'null'",
-  }
-  staticData.SymbolicNames = []string{
-    "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN", 
-    "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", 
-    "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", 
-    "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", 
-    "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", 
-    "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", 
-    "STRING", "BYTES", "IDENTIFIER",
-  }
-  staticData.RuleNames = []string{
-    "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "COMMAND", "FLAG", 
-    "ARROW", "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", 
-    "GREATER_EQUALS", "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", 
-    "RPRACKET", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", 
-    "MINUS", "EXCLAM", "QUESTIONMARK", "COLON", "PLUS", "STAR", "SLASH", 
-    "PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", "BACKSLASH", "LETTER", "DIGIT", 
-    "EXPONENT", "HEXDIGIT", "RAW", "ESC_SEQ", "ESC_CHAR_SEQ", "ESC_OCT_SEQ", 
-    "ESC_BYTE_SEQ", "ESC_UNI_SEQ", "WHITESPACE", "COMMENT", "NUM_FLOAT", 
-    "NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER",
-  }
-  staticData.PredictionContextCache = antlr.NewPredictionContextCache()
-  staticData.serializedATN = []int32{
-	4, 0, 47, 505, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 
-	4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 
-	10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 
-	7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 
-	20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 
-	2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 
-	31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 
-	7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 
-	41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 
-	2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 
-	52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 
-	7, 57, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 
-	1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 
-	1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 
-	1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 
-	1, 7, 1, 7, 1, 8, 3, 8, 168, 8, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 
-	1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 
-	13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 
-	1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 
-	22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 
-	1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 
-	32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 
-	1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 
-	38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42, 
-	259, 8, 42, 1, 42, 4, 42, 262, 8, 42, 11, 42, 12, 42, 263, 1, 43, 1, 43, 
-	1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 274, 8, 45, 1, 46, 1, 
-	46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 
-	1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 
-	49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 307, 
-	8, 49, 1, 50, 4, 50, 310, 8, 50, 11, 50, 12, 50, 311, 1, 50, 1, 50, 1, 
-	51, 1, 51, 1, 51, 1, 51, 5, 51, 320, 8, 51, 10, 51, 12, 51, 323, 9, 51, 
-	1, 51, 1, 51, 1, 52, 4, 52, 328, 8, 52, 11, 52, 12, 52, 329, 1, 52, 1, 
-	52, 4, 52, 334, 8, 52, 11, 52, 12, 52, 335, 1, 52, 3, 52, 339, 8, 52, 1, 
-	52, 4, 52, 342, 8, 52, 11, 52, 12, 52, 343, 1, 52, 1, 52, 1, 52, 1, 52, 
-	4, 52, 350, 8, 52, 11, 52, 12, 52, 351, 1, 52, 3, 52, 355, 8, 52, 3, 52, 
-	357, 8, 52, 1, 53, 4, 53, 360, 8, 53, 11, 53, 12, 53, 361, 1, 53, 1, 53, 
-	1, 53, 1, 53, 4, 53, 368, 8, 53, 11, 53, 12, 53, 369, 3, 53, 372, 8, 53, 
-	1, 54, 4, 54, 375, 8, 54, 11, 54, 12, 54, 376, 1, 54, 1, 54, 1, 54, 1, 
-	54, 1, 54, 1, 54, 4, 54, 385, 8, 54, 11, 54, 12, 54, 386, 1, 54, 1, 54, 
-	3, 54, 391, 8, 54, 1, 55, 1, 55, 1, 55, 5, 55, 396, 8, 55, 10, 55, 12, 
-	55, 399, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 405, 8, 55, 10, 55, 
-	12, 55, 408, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 
-	55, 417, 8, 55, 10, 55, 12, 55, 420, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 
-	1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 431, 8, 55, 10, 55, 12, 55, 434, 
-	9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 442, 8, 55, 10, 
-	55, 12, 55, 445, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 452, 
-	8, 55, 10, 55, 12, 55, 455, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 
-	55, 1, 55, 1, 55, 5, 55, 465, 8, 55, 10, 55, 12, 55, 468, 9, 55, 1, 55, 
-	1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 480, 
-	8, 55, 10, 55, 12, 55, 483, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 489, 
-	8, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 3, 57, 496, 8, 57, 1, 57, 1, 
-	57, 1, 57, 5, 57, 501, 8, 57, 10, 57, 12, 57, 504, 9, 57, 4, 418, 432, 
-	466, 481, 0, 58, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 
-	9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 
-	18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 
-	27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 
-	36, 73, 37, 75, 38, 77, 39, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 
-	0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 40, 103, 41, 105, 42, 107, 43, 109, 
-	44, 111, 45, 113, 46, 115, 47, 1, 0, 16, 2, 0, 65, 90, 97, 122, 2, 0, 69, 
-	69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 
-	82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96, 98, 102, 102, 
-	110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120, 120, 3, 0, 9, 
-	10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117, 4, 0, 10, 10, 
-	13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 1, 0, 92, 
-	92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 2, 0, 66, 
-	66, 98, 98, 539, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 
-	0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 
-	0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 
-	0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 
-	0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 
-	1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 
-	45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 
-	0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 
-	0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 
-	0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 
-	0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 
-	105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 
-	0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 1, 117, 1, 0, 0, 0, 3, 123, 
-	1, 0, 0, 0, 5, 126, 1, 0, 0, 0, 7, 131, 1, 0, 0, 0, 9, 140, 1, 0, 0, 0, 
-	11, 148, 1, 0, 0, 0, 13, 157, 1, 0, 0, 0, 15, 163, 1, 0, 0, 0, 17, 167, 
-	1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 175, 1, 0, 0, 0, 23, 177, 1, 0, 0, 
-	0, 25, 180, 1, 0, 0, 0, 27, 183, 1, 0, 0, 0, 29, 186, 1, 0, 0, 0, 31, 188, 
-	1, 0, 0, 0, 33, 191, 1, 0, 0, 0, 35, 194, 1, 0, 0, 0, 37, 196, 1, 0, 0, 
-	0, 39, 199, 1, 0, 0, 0, 41, 202, 1, 0, 0, 0, 43, 204, 1, 0, 0, 0, 45, 206, 
-	1, 0, 0, 0, 47, 208, 1, 0, 0, 0, 49, 210, 1, 0, 0, 0, 51, 212, 1, 0, 0, 
-	0, 53, 214, 1, 0, 0, 0, 55, 216, 1, 0, 0, 0, 57, 218, 1, 0, 0, 0, 59, 220, 
-	1, 0, 0, 0, 61, 222, 1, 0, 0, 0, 63, 224, 1, 0, 0, 0, 65, 226, 1, 0, 0, 
-	0, 67, 228, 1, 0, 0, 0, 69, 230, 1, 0, 0, 0, 71, 232, 1, 0, 0, 0, 73, 234, 
-	1, 0, 0, 0, 75, 239, 1, 0, 0, 0, 77, 245, 1, 0, 0, 0, 79, 250, 1, 0, 0, 
-	0, 81, 252, 1, 0, 0, 0, 83, 254, 1, 0, 0, 0, 85, 256, 1, 0, 0, 0, 87, 265, 
-	1, 0, 0, 0, 89, 267, 1, 0, 0, 0, 91, 273, 1, 0, 0, 0, 93, 275, 1, 0, 0, 
-	0, 95, 278, 1, 0, 0, 0, 97, 283, 1, 0, 0, 0, 99, 306, 1, 0, 0, 0, 101, 
-	309, 1, 0, 0, 0, 103, 315, 1, 0, 0, 0, 105, 356, 1, 0, 0, 0, 107, 371, 
-	1, 0, 0, 0, 109, 390, 1, 0, 0, 0, 111, 488, 1, 0, 0, 0, 113, 490, 1, 0, 
-	0, 0, 115, 495, 1, 0, 0, 0, 117, 118, 5, 37, 0, 0, 118, 119, 5, 104, 0, 
-	0, 119, 120, 5, 101, 0, 0, 120, 121, 5, 108, 0, 0, 121, 122, 5, 112, 0, 
-	0, 122, 2, 1, 0, 0, 0, 123, 124, 5, 37, 0, 0, 124, 125, 5, 63, 0, 0, 125, 
-	4, 1, 0, 0, 0, 126, 127, 5, 37, 0, 0, 127, 128, 5, 108, 0, 0, 128, 129, 
-	5, 101, 0, 0, 129, 130, 5, 116, 0, 0, 130, 6, 1, 0, 0, 0, 131, 132, 5, 
-	37, 0, 0, 132, 133, 5, 100, 0, 0, 133, 134, 5, 101, 0, 0, 134, 135, 5, 
-	99, 0, 0, 135, 136, 5, 108, 0, 0, 136, 137, 5, 97, 0, 0, 137, 138, 5, 114, 
-	0, 0, 138, 139, 5, 101, 0, 0, 139, 8, 1, 0, 0, 0, 140, 141, 5, 37, 0, 0, 
-	141, 142, 5, 100, 0, 0, 142, 143, 5, 101, 0, 0, 143, 144, 5, 108, 0, 0, 
-	144, 145, 5, 101, 0, 0, 145, 146, 5, 116, 0, 0, 146, 147, 5, 101, 0, 0, 
-	147, 10, 1, 0, 0, 0, 148, 149, 5, 37, 0, 0, 149, 150, 5, 99, 0, 0, 150, 
-	151, 5, 111, 0, 0, 151, 152, 5, 109, 0, 0, 152, 153, 5, 112, 0, 0, 153, 
-	154, 5, 105, 0, 0, 154, 155, 5, 108, 0, 0, 155, 156, 5, 101, 0, 0, 156, 
-	12, 1, 0, 0, 0, 157, 158, 5, 37, 0, 0, 158, 159, 5, 101, 0, 0, 159, 160, 
-	5, 118, 0, 0, 160, 161, 5, 97, 0, 0, 161, 162, 5, 108, 0, 0, 162, 14, 1, 
-	0, 0, 0, 163, 164, 5, 37, 0, 0, 164, 165, 3, 115, 57, 0, 165, 16, 1, 0, 
-	0, 0, 166, 168, 5, 45, 0, 0, 167, 166, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 
-	168, 169, 1, 0, 0, 0, 169, 170, 5, 45, 0, 0, 170, 171, 3, 115, 57, 0, 171, 
-	18, 1, 0, 0, 0, 172, 173, 5, 45, 0, 0, 173, 174, 5, 62, 0, 0, 174, 20, 
-	1, 0, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61, 
-	0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0, 
-	181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 105, 0, 0, 184, 
-	185, 5, 110, 0, 0, 185, 28, 1, 0, 0, 0, 186, 187, 5, 60, 0, 0, 187, 30, 
-	1, 0, 0, 0, 188, 189, 5, 60, 0, 0, 189, 190, 5, 61, 0, 0, 190, 32, 1, 0, 
-	0, 0, 191, 192, 5, 62, 0, 0, 192, 193, 5, 61, 0, 0, 193, 34, 1, 0, 0, 0, 
-	194, 195, 5, 62, 0, 0, 195, 36, 1, 0, 0, 0, 196, 197, 5, 38, 0, 0, 197, 
-	198, 5, 38, 0, 0, 198, 38, 1, 0, 0, 0, 199, 200, 5, 124, 0, 0, 200, 201, 
-	5, 124, 0, 0, 201, 40, 1, 0, 0, 0, 202, 203, 5, 91, 0, 0, 203, 42, 1, 0, 
-	0, 0, 204, 205, 5, 93, 0, 0, 205, 44, 1, 0, 0, 0, 206, 207, 5, 123, 0, 
-	0, 207, 46, 1, 0, 0, 0, 208, 209, 5, 125, 0, 0, 209, 48, 1, 0, 0, 0, 210, 
-	211, 5, 40, 0, 0, 211, 50, 1, 0, 0, 0, 212, 213, 5, 41, 0, 0, 213, 52, 
-	1, 0, 0, 0, 214, 215, 5, 46, 0, 0, 215, 54, 1, 0, 0, 0, 216, 217, 5, 44, 
-	0, 0, 217, 56, 1, 0, 0, 0, 218, 219, 5, 45, 0, 0, 219, 58, 1, 0, 0, 0, 
-	220, 221, 5, 33, 0, 0, 221, 60, 1, 0, 0, 0, 222, 223, 5, 63, 0, 0, 223, 
-	62, 1, 0, 0, 0, 224, 225, 5, 58, 0, 0, 225, 64, 1, 0, 0, 0, 226, 227, 5, 
-	43, 0, 0, 227, 66, 1, 0, 0, 0, 228, 229, 5, 42, 0, 0, 229, 68, 1, 0, 0, 
-	0, 230, 231, 5, 47, 0, 0, 231, 70, 1, 0, 0, 0, 232, 233, 5, 37, 0, 0, 233, 
-	72, 1, 0, 0, 0, 234, 235, 5, 116, 0, 0, 235, 236, 5, 114, 0, 0, 236, 237, 
-	5, 117, 0, 0, 237, 238, 5, 101, 0, 0, 238, 74, 1, 0, 0, 0, 239, 240, 5, 
-	102, 0, 0, 240, 241, 5, 97, 0, 0, 241, 242, 5, 108, 0, 0, 242, 243, 5, 
-	115, 0, 0, 243, 244, 5, 101, 0, 0, 244, 76, 1, 0, 0, 0, 245, 246, 5, 110, 
-	0, 0, 246, 247, 5, 117, 0, 0, 247, 248, 5, 108, 0, 0, 248, 249, 5, 108, 
-	0, 0, 249, 78, 1, 0, 0, 0, 250, 251, 5, 92, 0, 0, 251, 80, 1, 0, 0, 0, 
-	252, 253, 7, 0, 0, 0, 253, 82, 1, 0, 0, 0, 254, 255, 2, 48, 57, 0, 255, 
-	84, 1, 0, 0, 0, 256, 258, 7, 1, 0, 0, 257, 259, 7, 2, 0, 0, 258, 257, 1, 
-	0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 262, 3, 83, 41, 
-	0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263, 
-	264, 1, 0, 0, 0, 264, 86, 1, 0, 0, 0, 265, 266, 7, 3, 0, 0, 266, 88, 1, 
-	0, 0, 0, 267, 268, 7, 4, 0, 0, 268, 90, 1, 0, 0, 0, 269, 274, 3, 93, 46, 
-	0, 270, 274, 3, 97, 48, 0, 271, 274, 3, 99, 49, 0, 272, 274, 3, 95, 47, 
-	0, 273, 269, 1, 0, 0, 0, 273, 270, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 273, 
-	272, 1, 0, 0, 0, 274, 92, 1, 0, 0, 0, 275, 276, 3, 79, 39, 0, 276, 277, 
-	7, 5, 0, 0, 277, 94, 1, 0, 0, 0, 278, 279, 3, 79, 39, 0, 279, 280, 2, 48, 
-	51, 0, 280, 281, 2, 48, 55, 0, 281, 282, 2, 48, 55, 0, 282, 96, 1, 0, 0, 
-	0, 283, 284, 3, 79, 39, 0, 284, 285, 7, 6, 0, 0, 285, 286, 3, 87, 43, 0, 
-	286, 287, 3, 87, 43, 0, 287, 98, 1, 0, 0, 0, 288, 289, 3, 79, 39, 0, 289, 
-	290, 5, 117, 0, 0, 290, 291, 3, 87, 43, 0, 291, 292, 3, 87, 43, 0, 292, 
-	293, 3, 87, 43, 0, 293, 294, 3, 87, 43, 0, 294, 307, 1, 0, 0, 0, 295, 296, 
-	3, 79, 39, 0, 296, 297, 5, 85, 0, 0, 297, 298, 3, 87, 43, 0, 298, 299, 
-	3, 87, 43, 0, 299, 300, 3, 87, 43, 0, 300, 301, 3, 87, 43, 0, 301, 302, 
-	3, 87, 43, 0, 302, 303, 3, 87, 43, 0, 303, 304, 3, 87, 43, 0, 304, 305, 
-	3, 87, 43, 0, 305, 307, 1, 0, 0, 0, 306, 288, 1, 0, 0, 0, 306, 295, 1, 
-	0, 0, 0, 307, 100, 1, 0, 0, 0, 308, 310, 7, 7, 0, 0, 309, 308, 1, 0, 0, 
-	0, 310, 311, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 
-	313, 1, 0, 0, 0, 313, 314, 6, 50, 0, 0, 314, 102, 1, 0, 0, 0, 315, 316, 
-	5, 47, 0, 0, 316, 317, 5, 47, 0, 0, 317, 321, 1, 0, 0, 0, 318, 320, 8, 
-	8, 0, 0, 319, 318, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 
-	0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 
-	325, 6, 51, 0, 0, 325, 104, 1, 0, 0, 0, 326, 328, 3, 83, 41, 0, 327, 326, 
-	1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329, 330, 1, 0, 
-	0, 0, 330, 331, 1, 0, 0, 0, 331, 333, 5, 46, 0, 0, 332, 334, 3, 83, 41, 
-	0, 333, 332, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 335, 
-	336, 1, 0, 0, 0, 336, 338, 1, 0, 0, 0, 337, 339, 3, 85, 42, 0, 338, 337, 
-	1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 357, 1, 0, 0, 0, 340, 342, 3, 83, 
-	41, 0, 341, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 
-	343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 3, 85, 42, 0, 346, 
-	357, 1, 0, 0, 0, 347, 349, 5, 46, 0, 0, 348, 350, 3, 83, 41, 0, 349, 348, 
-	1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0, 
-	0, 0, 352, 354, 1, 0, 0, 0, 353, 355, 3, 85, 42, 0, 354, 353, 1, 0, 0, 
-	0, 354, 355, 1, 0, 0, 0, 355, 357, 1, 0, 0, 0, 356, 327, 1, 0, 0, 0, 356, 
-	341, 1, 0, 0, 0, 356, 347, 1, 0, 0, 0, 357, 106, 1, 0, 0, 0, 358, 360, 
-	3, 83, 41, 0, 359, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 359, 1, 
-	0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 372, 1, 0, 0, 0, 363, 364, 5, 48, 0, 
-	0, 364, 365, 5, 120, 0, 0, 365, 367, 1, 0, 0, 0, 366, 368, 3, 87, 43, 0, 
-	367, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 367, 1, 0, 0, 0, 369, 
-	370, 1, 0, 0, 0, 370, 372, 1, 0, 0, 0, 371, 359, 1, 0, 0, 0, 371, 363, 
-	1, 0, 0, 0, 372, 108, 1, 0, 0, 0, 373, 375, 3, 83, 41, 0, 374, 373, 1, 
-	0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 
-	0, 377, 378, 1, 0, 0, 0, 378, 379, 7, 9, 0, 0, 379, 391, 1, 0, 0, 0, 380, 
-	381, 5, 48, 0, 0, 381, 382, 5, 120, 0, 0, 382, 384, 1, 0, 0, 0, 383, 385, 
-	3, 87, 43, 0, 384, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 384, 1, 
-	0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 7, 9, 0, 
-	0, 389, 391, 1, 0, 0, 0, 390, 374, 1, 0, 0, 0, 390, 380, 1, 0, 0, 0, 391, 
-	110, 1, 0, 0, 0, 392, 397, 5, 34, 0, 0, 393, 396, 3, 91, 45, 0, 394, 396, 
-	8, 10, 0, 0, 395, 393, 1, 0, 0, 0, 395, 394, 1, 0, 0, 0, 396, 399, 1, 0, 
-	0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 400, 1, 0, 0, 0, 
-	399, 397, 1, 0, 0, 0, 400, 489, 5, 34, 0, 0, 401, 406, 5, 39, 0, 0, 402, 
-	405, 3, 91, 45, 0, 403, 405, 8, 11, 0, 0, 404, 402, 1, 0, 0, 0, 404, 403, 
-	1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 
-	0, 0, 407, 409, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 489, 5, 39, 0, 0, 
-	410, 411, 5, 34, 0, 0, 411, 412, 5, 34, 0, 0, 412, 413, 5, 34, 0, 0, 413, 
-	418, 1, 0, 0, 0, 414, 417, 3, 91, 45, 0, 415, 417, 8, 12, 0, 0, 416, 414, 
-	1, 0, 0, 0, 416, 415, 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 419, 1, 0, 
-	0, 0, 418, 416, 1, 0, 0, 0, 419, 421, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 
-	421, 422, 5, 34, 0, 0, 422, 423, 5, 34, 0, 0, 423, 489, 5, 34, 0, 0, 424, 
-	425, 5, 39, 0, 0, 425, 426, 5, 39, 0, 0, 426, 427, 5, 39, 0, 0, 427, 432, 
-	1, 0, 0, 0, 428, 431, 3, 91, 45, 0, 429, 431, 8, 12, 0, 0, 430, 428, 1, 
-	0, 0, 0, 430, 429, 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 433, 1, 0, 0, 
-	0, 432, 430, 1, 0, 0, 0, 433, 435, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 435, 
-	436, 5, 39, 0, 0, 436, 437, 5, 39, 0, 0, 437, 489, 5, 39, 0, 0, 438, 439, 
-	3, 89, 44, 0, 439, 443, 5, 34, 0, 0, 440, 442, 8, 13, 0, 0, 441, 440, 1, 
-	0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 443, 444, 1, 0, 0, 
-	0, 444, 446, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 34, 0, 0, 447, 
-	489, 1, 0, 0, 0, 448, 449, 3, 89, 44, 0, 449, 453, 5, 39, 0, 0, 450, 452, 
-	8, 14, 0, 0, 451, 450, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 
-	0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 
-	456, 457, 5, 39, 0, 0, 457, 489, 1, 0, 0, 0, 458, 459, 3, 89, 44, 0, 459, 
-	460, 5, 34, 0, 0, 460, 461, 5, 34, 0, 0, 461, 462, 5, 34, 0, 0, 462, 466, 
-	1, 0, 0, 0, 463, 465, 9, 0, 0, 0, 464, 463, 1, 0, 0, 0, 465, 468, 1, 0, 
-	0, 0, 466, 467, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 467, 469, 1, 0, 0, 0, 
-	468, 466, 1, 0, 0, 0, 469, 470, 5, 34, 0, 0, 470, 471, 5, 34, 0, 0, 471, 
-	472, 5, 34, 0, 0, 472, 489, 1, 0, 0, 0, 473, 474, 3, 89, 44, 0, 474, 475, 
-	5, 39, 0, 0, 475, 476, 5, 39, 0, 0, 476, 477, 5, 39, 0, 0, 477, 481, 1, 
-	0, 0, 0, 478, 480, 9, 0, 0, 0, 479, 478, 1, 0, 0, 0, 480, 483, 1, 0, 0, 
-	0, 481, 482, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 484, 1, 0, 0, 0, 483, 
-	481, 1, 0, 0, 0, 484, 485, 5, 39, 0, 0, 485, 486, 5, 39, 0, 0, 486, 487, 
-	5, 39, 0, 0, 487, 489, 1, 0, 0, 0, 488, 392, 1, 0, 0, 0, 488, 401, 1, 0, 
-	0, 0, 488, 410, 1, 0, 0, 0, 488, 424, 1, 0, 0, 0, 488, 438, 1, 0, 0, 0, 
-	488, 448, 1, 0, 0, 0, 488, 458, 1, 0, 0, 0, 488, 473, 1, 0, 0, 0, 489, 
-	112, 1, 0, 0, 0, 490, 491, 7, 15, 0, 0, 491, 492, 3, 111, 55, 0, 492, 114, 
-	1, 0, 0, 0, 493, 496, 3, 81, 40, 0, 494, 496, 5, 95, 0, 0, 495, 493, 1, 
-	0, 0, 0, 495, 494, 1, 0, 0, 0, 496, 502, 1, 0, 0, 0, 497, 501, 3, 81, 40, 
-	0, 498, 501, 3, 83, 41, 0, 499, 501, 5, 95, 0, 0, 500, 497, 1, 0, 0, 0, 
-	500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 504, 1, 0, 0, 0, 502, 
-	500, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 116, 1, 0, 0, 0, 504, 502, 
-	1, 0, 0, 0, 37, 0, 167, 258, 263, 273, 306, 311, 321, 329, 335, 338, 343, 
-	351, 354, 356, 361, 369, 371, 376, 386, 390, 395, 397, 404, 406, 416, 418, 
-	430, 432, 443, 453, 466, 481, 488, 495, 500, 502, 1, 0, 1, 0,
-}
-  deserializer := antlr.NewATNDeserializer(nil)
-  staticData.atn = deserializer.Deserialize(staticData.serializedATN)
-  atn := staticData.atn
-  staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
-  decisionToDFA := staticData.decisionToDFA
-  for index, state := range atn.DecisionToState {
-    decisionToDFA[index] = antlr.NewDFA(state, index)
-  }
+	staticData := &commandslexerLexerStaticData
+	staticData.channelNames = []string{
+		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
+	}
+	staticData.modeNames = []string{
+		"DEFAULT_MODE",
+	}
+	staticData.literalNames = []string{
+		"", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'",
+		"'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", "'<'", "'<='",
+		"'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", "'('", "')'",
+		"'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", "'/'", "'%'",
+		"'true'", "'false'", "'null'",
+	}
+	staticData.symbolicNames = []string{
+		"", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN",
+		"EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS",
+		"GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE",
+		"RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK",
+		"COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE",
+		"NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT",
+		"STRING", "BYTES", "IDENTIFIER",
+	}
+	staticData.ruleNames = []string{
+		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "COMMAND", "FLAG",
+		"ARROW", "EQUAL_ASSIGN", "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS",
+		"GREATER_EQUALS", "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET",
+		"RPRACKET", "LBRACE", "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA",
+		"MINUS", "EXCLAM", "QUESTIONMARK", "COLON", "PLUS", "STAR", "SLASH",
+		"PERCENT", "CEL_TRUE", "CEL_FALSE", "NUL", "BACKSLASH", "LETTER", "DIGIT",
+		"EXPONENT", "HEXDIGIT", "RAW", "ESC_SEQ", "ESC_CHAR_SEQ", "ESC_OCT_SEQ",
+		"ESC_BYTE_SEQ", "ESC_UNI_SEQ", "WHITESPACE", "COMMENT", "NUM_FLOAT",
+		"NUM_INT", "NUM_UINT", "STRING", "BYTES", "IDENTIFIER",
+	}
+	staticData.predictionContextCache = antlr.NewPredictionContextCache()
+	staticData.serializedATN = []int32{
+		4, 0, 47, 505, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2,
+		4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
+		10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15,
+		7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7,
+		20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25,
+		2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2,
+		31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36,
+		7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7,
+		41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46,
+		2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2,
+		52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57,
+		7, 57, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2,
+		1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
+		1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5,
+		1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7,
+		1, 7, 1, 7, 1, 8, 3, 8, 168, 8, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9,
+		1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1,
+		13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17,
+		1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1,
+		22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27,
+		1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1,
+		32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36,
+		1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1,
+		38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42,
+		259, 8, 42, 1, 42, 4, 42, 262, 8, 42, 11, 42, 12, 42, 263, 1, 43, 1, 43,
+		1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 274, 8, 45, 1, 46, 1,
+		46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48,
+		1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1,
+		49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 307,
+		8, 49, 1, 50, 4, 50, 310, 8, 50, 11, 50, 12, 50, 311, 1, 50, 1, 50, 1,
+		51, 1, 51, 1, 51, 1, 51, 5, 51, 320, 8, 51, 10, 51, 12, 51, 323, 9, 51,
+		1, 51, 1, 51, 1, 52, 4, 52, 328, 8, 52, 11, 52, 12, 52, 329, 1, 52, 1,
+		52, 4, 52, 334, 8, 52, 11, 52, 12, 52, 335, 1, 52, 3, 52, 339, 8, 52, 1,
+		52, 4, 52, 342, 8, 52, 11, 52, 12, 52, 343, 1, 52, 1, 52, 1, 52, 1, 52,
+		4, 52, 350, 8, 52, 11, 52, 12, 52, 351, 1, 52, 3, 52, 355, 8, 52, 3, 52,
+		357, 8, 52, 1, 53, 4, 53, 360, 8, 53, 11, 53, 12, 53, 361, 1, 53, 1, 53,
+		1, 53, 1, 53, 4, 53, 368, 8, 53, 11, 53, 12, 53, 369, 3, 53, 372, 8, 53,
+		1, 54, 4, 54, 375, 8, 54, 11, 54, 12, 54, 376, 1, 54, 1, 54, 1, 54, 1,
+		54, 1, 54, 1, 54, 4, 54, 385, 8, 54, 11, 54, 12, 54, 386, 1, 54, 1, 54,
+		3, 54, 391, 8, 54, 1, 55, 1, 55, 1, 55, 5, 55, 396, 8, 55, 10, 55, 12,
+		55, 399, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 405, 8, 55, 10, 55,
+		12, 55, 408, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5,
+		55, 417, 8, 55, 10, 55, 12, 55, 420, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55,
+		1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 431, 8, 55, 10, 55, 12, 55, 434,
+		9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 442, 8, 55, 10,
+		55, 12, 55, 445, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 452,
+		8, 55, 10, 55, 12, 55, 455, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1,
+		55, 1, 55, 1, 55, 5, 55, 465, 8, 55, 10, 55, 12, 55, 468, 9, 55, 1, 55,
+		1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 480,
+		8, 55, 10, 55, 12, 55, 483, 9, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 489,
+		8, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 3, 57, 496, 8, 57, 1, 57, 1,
+		57, 1, 57, 5, 57, 501, 8, 57, 10, 57, 12, 57, 504, 9, 57, 4, 418, 432,
+		466, 481, 0, 58, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17,
+		9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35,
+		18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53,
+		27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71,
+		36, 73, 37, 75, 38, 77, 39, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91,
+		0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 40, 103, 41, 105, 42, 107, 43, 109,
+		44, 111, 45, 113, 46, 115, 47, 1, 0, 16, 2, 0, 65, 90, 97, 122, 2, 0, 69,
+		69, 101, 101, 2, 0, 43, 43, 45, 45, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0,
+		82, 82, 114, 114, 10, 0, 34, 34, 39, 39, 63, 63, 92, 92, 96, 98, 102, 102,
+		110, 110, 114, 114, 116, 116, 118, 118, 2, 0, 88, 88, 120, 120, 3, 0, 9,
+		10, 12, 13, 32, 32, 1, 0, 10, 10, 2, 0, 85, 85, 117, 117, 4, 0, 10, 10,
+		13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 1, 0, 92,
+		92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 2, 0, 66,
+		66, 98, 98, 539, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0,
+		0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0,
+		0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0,
+		0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1,
+		0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37,
+		1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0,
+		45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0,
+		0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0,
+		0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0,
+		0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1,
+		0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0,
+		105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0,
+		0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 1, 117, 1, 0, 0, 0, 3, 123,
+		1, 0, 0, 0, 5, 126, 1, 0, 0, 0, 7, 131, 1, 0, 0, 0, 9, 140, 1, 0, 0, 0,
+		11, 148, 1, 0, 0, 0, 13, 157, 1, 0, 0, 0, 15, 163, 1, 0, 0, 0, 17, 167,
+		1, 0, 0, 0, 19, 172, 1, 0, 0, 0, 21, 175, 1, 0, 0, 0, 23, 177, 1, 0, 0,
+		0, 25, 180, 1, 0, 0, 0, 27, 183, 1, 0, 0, 0, 29, 186, 1, 0, 0, 0, 31, 188,
+		1, 0, 0, 0, 33, 191, 1, 0, 0, 0, 35, 194, 1, 0, 0, 0, 37, 196, 1, 0, 0,
+		0, 39, 199, 1, 0, 0, 0, 41, 202, 1, 0, 0, 0, 43, 204, 1, 0, 0, 0, 45, 206,
+		1, 0, 0, 0, 47, 208, 1, 0, 0, 0, 49, 210, 1, 0, 0, 0, 51, 212, 1, 0, 0,
+		0, 53, 214, 1, 0, 0, 0, 55, 216, 1, 0, 0, 0, 57, 218, 1, 0, 0, 0, 59, 220,
+		1, 0, 0, 0, 61, 222, 1, 0, 0, 0, 63, 224, 1, 0, 0, 0, 65, 226, 1, 0, 0,
+		0, 67, 228, 1, 0, 0, 0, 69, 230, 1, 0, 0, 0, 71, 232, 1, 0, 0, 0, 73, 234,
+		1, 0, 0, 0, 75, 239, 1, 0, 0, 0, 77, 245, 1, 0, 0, 0, 79, 250, 1, 0, 0,
+		0, 81, 252, 1, 0, 0, 0, 83, 254, 1, 0, 0, 0, 85, 256, 1, 0, 0, 0, 87, 265,
+		1, 0, 0, 0, 89, 267, 1, 0, 0, 0, 91, 273, 1, 0, 0, 0, 93, 275, 1, 0, 0,
+		0, 95, 278, 1, 0, 0, 0, 97, 283, 1, 0, 0, 0, 99, 306, 1, 0, 0, 0, 101,
+		309, 1, 0, 0, 0, 103, 315, 1, 0, 0, 0, 105, 356, 1, 0, 0, 0, 107, 371,
+		1, 0, 0, 0, 109, 390, 1, 0, 0, 0, 111, 488, 1, 0, 0, 0, 113, 490, 1, 0,
+		0, 0, 115, 495, 1, 0, 0, 0, 117, 118, 5, 37, 0, 0, 118, 119, 5, 104, 0,
+		0, 119, 120, 5, 101, 0, 0, 120, 121, 5, 108, 0, 0, 121, 122, 5, 112, 0,
+		0, 122, 2, 1, 0, 0, 0, 123, 124, 5, 37, 0, 0, 124, 125, 5, 63, 0, 0, 125,
+		4, 1, 0, 0, 0, 126, 127, 5, 37, 0, 0, 127, 128, 5, 108, 0, 0, 128, 129,
+		5, 101, 0, 0, 129, 130, 5, 116, 0, 0, 130, 6, 1, 0, 0, 0, 131, 132, 5,
+		37, 0, 0, 132, 133, 5, 100, 0, 0, 133, 134, 5, 101, 0, 0, 134, 135, 5,
+		99, 0, 0, 135, 136, 5, 108, 0, 0, 136, 137, 5, 97, 0, 0, 137, 138, 5, 114,
+		0, 0, 138, 139, 5, 101, 0, 0, 139, 8, 1, 0, 0, 0, 140, 141, 5, 37, 0, 0,
+		141, 142, 5, 100, 0, 0, 142, 143, 5, 101, 0, 0, 143, 144, 5, 108, 0, 0,
+		144, 145, 5, 101, 0, 0, 145, 146, 5, 116, 0, 0, 146, 147, 5, 101, 0, 0,
+		147, 10, 1, 0, 0, 0, 148, 149, 5, 37, 0, 0, 149, 150, 5, 99, 0, 0, 150,
+		151, 5, 111, 0, 0, 151, 152, 5, 109, 0, 0, 152, 153, 5, 112, 0, 0, 153,
+		154, 5, 105, 0, 0, 154, 155, 5, 108, 0, 0, 155, 156, 5, 101, 0, 0, 156,
+		12, 1, 0, 0, 0, 157, 158, 5, 37, 0, 0, 158, 159, 5, 101, 0, 0, 159, 160,
+		5, 118, 0, 0, 160, 161, 5, 97, 0, 0, 161, 162, 5, 108, 0, 0, 162, 14, 1,
+		0, 0, 0, 163, 164, 5, 37, 0, 0, 164, 165, 3, 115, 57, 0, 165, 16, 1, 0,
+		0, 0, 166, 168, 5, 45, 0, 0, 167, 166, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0,
+		168, 169, 1, 0, 0, 0, 169, 170, 5, 45, 0, 0, 170, 171, 3, 115, 57, 0, 171,
+		18, 1, 0, 0, 0, 172, 173, 5, 45, 0, 0, 173, 174, 5, 62, 0, 0, 174, 20,
+		1, 0, 0, 0, 175, 176, 5, 61, 0, 0, 176, 22, 1, 0, 0, 0, 177, 178, 5, 61,
+		0, 0, 178, 179, 5, 61, 0, 0, 179, 24, 1, 0, 0, 0, 180, 181, 5, 33, 0, 0,
+		181, 182, 5, 61, 0, 0, 182, 26, 1, 0, 0, 0, 183, 184, 5, 105, 0, 0, 184,
+		185, 5, 110, 0, 0, 185, 28, 1, 0, 0, 0, 186, 187, 5, 60, 0, 0, 187, 30,
+		1, 0, 0, 0, 188, 189, 5, 60, 0, 0, 189, 190, 5, 61, 0, 0, 190, 32, 1, 0,
+		0, 0, 191, 192, 5, 62, 0, 0, 192, 193, 5, 61, 0, 0, 193, 34, 1, 0, 0, 0,
+		194, 195, 5, 62, 0, 0, 195, 36, 1, 0, 0, 0, 196, 197, 5, 38, 0, 0, 197,
+		198, 5, 38, 0, 0, 198, 38, 1, 0, 0, 0, 199, 200, 5, 124, 0, 0, 200, 201,
+		5, 124, 0, 0, 201, 40, 1, 0, 0, 0, 202, 203, 5, 91, 0, 0, 203, 42, 1, 0,
+		0, 0, 204, 205, 5, 93, 0, 0, 205, 44, 1, 0, 0, 0, 206, 207, 5, 123, 0,
+		0, 207, 46, 1, 0, 0, 0, 208, 209, 5, 125, 0, 0, 209, 48, 1, 0, 0, 0, 210,
+		211, 5, 40, 0, 0, 211, 50, 1, 0, 0, 0, 212, 213, 5, 41, 0, 0, 213, 52,
+		1, 0, 0, 0, 214, 215, 5, 46, 0, 0, 215, 54, 1, 0, 0, 0, 216, 217, 5, 44,
+		0, 0, 217, 56, 1, 0, 0, 0, 218, 219, 5, 45, 0, 0, 219, 58, 1, 0, 0, 0,
+		220, 221, 5, 33, 0, 0, 221, 60, 1, 0, 0, 0, 222, 223, 5, 63, 0, 0, 223,
+		62, 1, 0, 0, 0, 224, 225, 5, 58, 0, 0, 225, 64, 1, 0, 0, 0, 226, 227, 5,
+		43, 0, 0, 227, 66, 1, 0, 0, 0, 228, 229, 5, 42, 0, 0, 229, 68, 1, 0, 0,
+		0, 230, 231, 5, 47, 0, 0, 231, 70, 1, 0, 0, 0, 232, 233, 5, 37, 0, 0, 233,
+		72, 1, 0, 0, 0, 234, 235, 5, 116, 0, 0, 235, 236, 5, 114, 0, 0, 236, 237,
+		5, 117, 0, 0, 237, 238, 5, 101, 0, 0, 238, 74, 1, 0, 0, 0, 239, 240, 5,
+		102, 0, 0, 240, 241, 5, 97, 0, 0, 241, 242, 5, 108, 0, 0, 242, 243, 5,
+		115, 0, 0, 243, 244, 5, 101, 0, 0, 244, 76, 1, 0, 0, 0, 245, 246, 5, 110,
+		0, 0, 246, 247, 5, 117, 0, 0, 247, 248, 5, 108, 0, 0, 248, 249, 5, 108,
+		0, 0, 249, 78, 1, 0, 0, 0, 250, 251, 5, 92, 0, 0, 251, 80, 1, 0, 0, 0,
+		252, 253, 7, 0, 0, 0, 253, 82, 1, 0, 0, 0, 254, 255, 2, 48, 57, 0, 255,
+		84, 1, 0, 0, 0, 256, 258, 7, 1, 0, 0, 257, 259, 7, 2, 0, 0, 258, 257, 1,
+		0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 262, 3, 83, 41,
+		0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263,
+		264, 1, 0, 0, 0, 264, 86, 1, 0, 0, 0, 265, 266, 7, 3, 0, 0, 266, 88, 1,
+		0, 0, 0, 267, 268, 7, 4, 0, 0, 268, 90, 1, 0, 0, 0, 269, 274, 3, 93, 46,
+		0, 270, 274, 3, 97, 48, 0, 271, 274, 3, 99, 49, 0, 272, 274, 3, 95, 47,
+		0, 273, 269, 1, 0, 0, 0, 273, 270, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 273,
+		272, 1, 0, 0, 0, 274, 92, 1, 0, 0, 0, 275, 276, 3, 79, 39, 0, 276, 277,
+		7, 5, 0, 0, 277, 94, 1, 0, 0, 0, 278, 279, 3, 79, 39, 0, 279, 280, 2, 48,
+		51, 0, 280, 281, 2, 48, 55, 0, 281, 282, 2, 48, 55, 0, 282, 96, 1, 0, 0,
+		0, 283, 284, 3, 79, 39, 0, 284, 285, 7, 6, 0, 0, 285, 286, 3, 87, 43, 0,
+		286, 287, 3, 87, 43, 0, 287, 98, 1, 0, 0, 0, 288, 289, 3, 79, 39, 0, 289,
+		290, 5, 117, 0, 0, 290, 291, 3, 87, 43, 0, 291, 292, 3, 87, 43, 0, 292,
+		293, 3, 87, 43, 0, 293, 294, 3, 87, 43, 0, 294, 307, 1, 0, 0, 0, 295, 296,
+		3, 79, 39, 0, 296, 297, 5, 85, 0, 0, 297, 298, 3, 87, 43, 0, 298, 299,
+		3, 87, 43, 0, 299, 300, 3, 87, 43, 0, 300, 301, 3, 87, 43, 0, 301, 302,
+		3, 87, 43, 0, 302, 303, 3, 87, 43, 0, 303, 304, 3, 87, 43, 0, 304, 305,
+		3, 87, 43, 0, 305, 307, 1, 0, 0, 0, 306, 288, 1, 0, 0, 0, 306, 295, 1,
+		0, 0, 0, 307, 100, 1, 0, 0, 0, 308, 310, 7, 7, 0, 0, 309, 308, 1, 0, 0,
+		0, 310, 311, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312,
+		313, 1, 0, 0, 0, 313, 314, 6, 50, 0, 0, 314, 102, 1, 0, 0, 0, 315, 316,
+		5, 47, 0, 0, 316, 317, 5, 47, 0, 0, 317, 321, 1, 0, 0, 0, 318, 320, 8,
+		8, 0, 0, 319, 318, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0,
+		0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324,
+		325, 6, 51, 0, 0, 325, 104, 1, 0, 0, 0, 326, 328, 3, 83, 41, 0, 327, 326,
+		1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329, 330, 1, 0,
+		0, 0, 330, 331, 1, 0, 0, 0, 331, 333, 5, 46, 0, 0, 332, 334, 3, 83, 41,
+		0, 333, 332, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 335,
+		336, 1, 0, 0, 0, 336, 338, 1, 0, 0, 0, 337, 339, 3, 85, 42, 0, 338, 337,
+		1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 357, 1, 0, 0, 0, 340, 342, 3, 83,
+		41, 0, 341, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0,
+		343, 344, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 3, 85, 42, 0, 346,
+		357, 1, 0, 0, 0, 347, 349, 5, 46, 0, 0, 348, 350, 3, 83, 41, 0, 349, 348,
+		1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0,
+		0, 0, 352, 354, 1, 0, 0, 0, 353, 355, 3, 85, 42, 0, 354, 353, 1, 0, 0,
+		0, 354, 355, 1, 0, 0, 0, 355, 357, 1, 0, 0, 0, 356, 327, 1, 0, 0, 0, 356,
+		341, 1, 0, 0, 0, 356, 347, 1, 0, 0, 0, 357, 106, 1, 0, 0, 0, 358, 360,
+		3, 83, 41, 0, 359, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 359, 1,
+		0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 372, 1, 0, 0, 0, 363, 364, 5, 48, 0,
+		0, 364, 365, 5, 120, 0, 0, 365, 367, 1, 0, 0, 0, 366, 368, 3, 87, 43, 0,
+		367, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 367, 1, 0, 0, 0, 369,
+		370, 1, 0, 0, 0, 370, 372, 1, 0, 0, 0, 371, 359, 1, 0, 0, 0, 371, 363,
+		1, 0, 0, 0, 372, 108, 1, 0, 0, 0, 373, 375, 3, 83, 41, 0, 374, 373, 1,
+		0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 376, 377, 1, 0, 0,
+		0, 377, 378, 1, 0, 0, 0, 378, 379, 7, 9, 0, 0, 379, 391, 1, 0, 0, 0, 380,
+		381, 5, 48, 0, 0, 381, 382, 5, 120, 0, 0, 382, 384, 1, 0, 0, 0, 383, 385,
+		3, 87, 43, 0, 384, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 384, 1,
+		0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 7, 9, 0,
+		0, 389, 391, 1, 0, 0, 0, 390, 374, 1, 0, 0, 0, 390, 380, 1, 0, 0, 0, 391,
+		110, 1, 0, 0, 0, 392, 397, 5, 34, 0, 0, 393, 396, 3, 91, 45, 0, 394, 396,
+		8, 10, 0, 0, 395, 393, 1, 0, 0, 0, 395, 394, 1, 0, 0, 0, 396, 399, 1, 0,
+		0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 400, 1, 0, 0, 0,
+		399, 397, 1, 0, 0, 0, 400, 489, 5, 34, 0, 0, 401, 406, 5, 39, 0, 0, 402,
+		405, 3, 91, 45, 0, 403, 405, 8, 11, 0, 0, 404, 402, 1, 0, 0, 0, 404, 403,
+		1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0,
+		0, 0, 407, 409, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 489, 5, 39, 0, 0,
+		410, 411, 5, 34, 0, 0, 411, 412, 5, 34, 0, 0, 412, 413, 5, 34, 0, 0, 413,
+		418, 1, 0, 0, 0, 414, 417, 3, 91, 45, 0, 415, 417, 8, 12, 0, 0, 416, 414,
+		1, 0, 0, 0, 416, 415, 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 419, 1, 0,
+		0, 0, 418, 416, 1, 0, 0, 0, 419, 421, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0,
+		421, 422, 5, 34, 0, 0, 422, 423, 5, 34, 0, 0, 423, 489, 5, 34, 0, 0, 424,
+		425, 5, 39, 0, 0, 425, 426, 5, 39, 0, 0, 426, 427, 5, 39, 0, 0, 427, 432,
+		1, 0, 0, 0, 428, 431, 3, 91, 45, 0, 429, 431, 8, 12, 0, 0, 430, 428, 1,
+		0, 0, 0, 430, 429, 1, 0, 0, 0, 431, 434, 1, 0, 0, 0, 432, 433, 1, 0, 0,
+		0, 432, 430, 1, 0, 0, 0, 433, 435, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 435,
+		436, 5, 39, 0, 0, 436, 437, 5, 39, 0, 0, 437, 489, 5, 39, 0, 0, 438, 439,
+		3, 89, 44, 0, 439, 443, 5, 34, 0, 0, 440, 442, 8, 13, 0, 0, 441, 440, 1,
+		0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 443, 444, 1, 0, 0,
+		0, 444, 446, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 34, 0, 0, 447,
+		489, 1, 0, 0, 0, 448, 449, 3, 89, 44, 0, 449, 453, 5, 39, 0, 0, 450, 452,
+		8, 14, 0, 0, 451, 450, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0,
+		0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0,
+		456, 457, 5, 39, 0, 0, 457, 489, 1, 0, 0, 0, 458, 459, 3, 89, 44, 0, 459,
+		460, 5, 34, 0, 0, 460, 461, 5, 34, 0, 0, 461, 462, 5, 34, 0, 0, 462, 466,
+		1, 0, 0, 0, 463, 465, 9, 0, 0, 0, 464, 463, 1, 0, 0, 0, 465, 468, 1, 0,
+		0, 0, 466, 467, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 467, 469, 1, 0, 0, 0,
+		468, 466, 1, 0, 0, 0, 469, 470, 5, 34, 0, 0, 470, 471, 5, 34, 0, 0, 471,
+		472, 5, 34, 0, 0, 472, 489, 1, 0, 0, 0, 473, 474, 3, 89, 44, 0, 474, 475,
+		5, 39, 0, 0, 475, 476, 5, 39, 0, 0, 476, 477, 5, 39, 0, 0, 477, 481, 1,
+		0, 0, 0, 478, 480, 9, 0, 0, 0, 479, 478, 1, 0, 0, 0, 480, 483, 1, 0, 0,
+		0, 481, 482, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 484, 1, 0, 0, 0, 483,
+		481, 1, 0, 0, 0, 484, 485, 5, 39, 0, 0, 485, 486, 5, 39, 0, 0, 486, 487,
+		5, 39, 0, 0, 487, 489, 1, 0, 0, 0, 488, 392, 1, 0, 0, 0, 488, 401, 1, 0,
+		0, 0, 488, 410, 1, 0, 0, 0, 488, 424, 1, 0, 0, 0, 488, 438, 1, 0, 0, 0,
+		488, 448, 1, 0, 0, 0, 488, 458, 1, 0, 0, 0, 488, 473, 1, 0, 0, 0, 489,
+		112, 1, 0, 0, 0, 490, 491, 7, 15, 0, 0, 491, 492, 3, 111, 55, 0, 492, 114,
+		1, 0, 0, 0, 493, 496, 3, 81, 40, 0, 494, 496, 5, 95, 0, 0, 495, 493, 1,
+		0, 0, 0, 495, 494, 1, 0, 0, 0, 496, 502, 1, 0, 0, 0, 497, 501, 3, 81, 40,
+		0, 498, 501, 3, 83, 41, 0, 499, 501, 5, 95, 0, 0, 500, 497, 1, 0, 0, 0,
+		500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 504, 1, 0, 0, 0, 502,
+		500, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 116, 1, 0, 0, 0, 504, 502,
+		1, 0, 0, 0, 37, 0, 167, 258, 263, 273, 306, 311, 321, 329, 335, 338, 343,
+		351, 354, 356, 361, 369, 371, 376, 386, 390, 395, 397, 404, 406, 416, 418,
+		430, 432, 443, 453, 466, 481, 488, 495, 500, 502, 1, 0, 1, 0,
+	}
+	deserializer := antlr.NewATNDeserializer(nil)
+	staticData.atn = deserializer.Deserialize(staticData.serializedATN)
+	atn := staticData.atn
+	staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
+	decisionToDFA := staticData.decisionToDFA
+	for index, state := range atn.DecisionToState {
+		decisionToDFA[index] = antlr.NewDFA(state, index)
+	}
 }
 
 // CommandsLexerInit initializes any static state used to implement CommandsLexer. By default the
@@ -318,22 +320,22 @@ func commandslexerLexerInit() {
 // NewCommandsLexer(). You can call this function if you wish to initialize the static state ahead
 // of time.
 func CommandsLexerInit() {
-  staticData := &CommandsLexerLexerStaticData
-  staticData.once.Do(commandslexerLexerInit)
+	staticData := &commandslexerLexerStaticData
+	staticData.once.Do(commandslexerLexerInit)
 }
 
 // NewCommandsLexer produces a new lexer instance for the optional input antlr.CharStream.
 func NewCommandsLexer(input antlr.CharStream) *CommandsLexer {
-  CommandsLexerInit()
+	CommandsLexerInit()
 	l := new(CommandsLexer)
 	l.BaseLexer = antlr.NewBaseLexer(input)
-  staticData := &CommandsLexerLexerStaticData
-	l.Interpreter = antlr.NewLexerATNSimulator(l, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache)
-	l.channelNames = staticData.ChannelNames
-	l.modeNames = staticData.ModeNames
-	l.RuleNames = staticData.RuleNames
-	l.LiteralNames = staticData.LiteralNames
-	l.SymbolicNames = staticData.SymbolicNames
+	staticData := &commandslexerLexerStaticData
+	l.Interpreter = antlr.NewLexerATNSimulator(l, staticData.atn, staticData.decisionToDFA, staticData.predictionContextCache)
+	l.channelNames = staticData.channelNames
+	l.modeNames = staticData.modeNames
+	l.RuleNames = staticData.ruleNames
+	l.LiteralNames = staticData.literalNames
+	l.SymbolicNames = staticData.symbolicNames
 	l.GrammarFileName = "Commands.g4"
 	// TODO: l.EOF = antlr.TokenEOF
 
@@ -342,52 +344,51 @@ func NewCommandsLexer(input antlr.CharSt
 
 // CommandsLexer tokens.
 const (
-	CommandsLexerT__0 = 1
-	CommandsLexerT__1 = 2
-	CommandsLexerT__2 = 3
-	CommandsLexerT__3 = 4
-	CommandsLexerT__4 = 5
-	CommandsLexerT__5 = 6
-	CommandsLexerT__6 = 7
-	CommandsLexerCOMMAND = 8
-	CommandsLexerFLAG = 9
-	CommandsLexerARROW = 10
-	CommandsLexerEQUAL_ASSIGN = 11
-	CommandsLexerEQUALS = 12
-	CommandsLexerNOT_EQUALS = 13
-	CommandsLexerIN = 14
-	CommandsLexerLESS = 15
-	CommandsLexerLESS_EQUALS = 16
+	CommandsLexerT__0           = 1
+	CommandsLexerT__1           = 2
+	CommandsLexerT__2           = 3
+	CommandsLexerT__3           = 4
+	CommandsLexerT__4           = 5
+	CommandsLexerT__5           = 6
+	CommandsLexerT__6           = 7
+	CommandsLexerCOMMAND        = 8
+	CommandsLexerFLAG           = 9
+	CommandsLexerARROW          = 10
+	CommandsLexerEQUAL_ASSIGN   = 11
+	CommandsLexerEQUALS         = 12
+	CommandsLexerNOT_EQUALS     = 13
+	CommandsLexerIN             = 14
+	CommandsLexerLESS           = 15
+	CommandsLexerLESS_EQUALS    = 16
 	CommandsLexerGREATER_EQUALS = 17
-	CommandsLexerGREATER = 18
-	CommandsLexerLOGICAL_AND = 19
-	CommandsLexerLOGICAL_OR = 20
-	CommandsLexerLBRACKET = 21
-	CommandsLexerRPRACKET = 22
-	CommandsLexerLBRACE = 23
-	CommandsLexerRBRACE = 24
-	CommandsLexerLPAREN = 25
-	CommandsLexerRPAREN = 26
-	CommandsLexerDOT = 27
-	CommandsLexerCOMMA = 28
-	CommandsLexerMINUS = 29
-	CommandsLexerEXCLAM = 30
-	CommandsLexerQUESTIONMARK = 31
-	CommandsLexerCOLON = 32
-	CommandsLexerPLUS = 33
-	CommandsLexerSTAR = 34
-	CommandsLexerSLASH = 35
-	CommandsLexerPERCENT = 36
-	CommandsLexerCEL_TRUE = 37
-	CommandsLexerCEL_FALSE = 38
-	CommandsLexerNUL = 39
-	CommandsLexerWHITESPACE = 40
-	CommandsLexerCOMMENT = 41
-	CommandsLexerNUM_FLOAT = 42
-	CommandsLexerNUM_INT = 43
-	CommandsLexerNUM_UINT = 44
-	CommandsLexerSTRING = 45
-	CommandsLexerBYTES = 46
-	CommandsLexerIDENTIFIER = 47
+	CommandsLexerGREATER        = 18
+	CommandsLexerLOGICAL_AND    = 19
+	CommandsLexerLOGICAL_OR     = 20
+	CommandsLexerLBRACKET       = 21
+	CommandsLexerRPRACKET       = 22
+	CommandsLexerLBRACE         = 23
+	CommandsLexerRBRACE         = 24
+	CommandsLexerLPAREN         = 25
+	CommandsLexerRPAREN         = 26
+	CommandsLexerDOT            = 27
+	CommandsLexerCOMMA          = 28
+	CommandsLexerMINUS          = 29
+	CommandsLexerEXCLAM         = 30
+	CommandsLexerQUESTIONMARK   = 31
+	CommandsLexerCOLON          = 32
+	CommandsLexerPLUS           = 33
+	CommandsLexerSTAR           = 34
+	CommandsLexerSLASH          = 35
+	CommandsLexerPERCENT        = 36
+	CommandsLexerCEL_TRUE       = 37
+	CommandsLexerCEL_FALSE      = 38
+	CommandsLexerNUL            = 39
+	CommandsLexerWHITESPACE     = 40
+	CommandsLexerCOMMENT        = 41
+	CommandsLexerNUM_FLOAT      = 42
+	CommandsLexerNUM_INT        = 43
+	CommandsLexerNUM_UINT       = 44
+	CommandsLexerSTRING         = 45
+	CommandsLexerBYTES          = 46
+	CommandsLexerIDENTIFIER     = 47
 )
-
Index: golang-github-google-cel-go/repl/parser/commands_listener.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_listener.go
+++ golang-github-google-cel-go/repl/parser/commands_listener.go
@@ -1,8 +1,7 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser // Commands
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // CommandsListener is a complete listener for a parse tree produced by CommandsParser.
 type CommandsListener interface {
Index: golang-github-google-cel-go/repl/parser/commands_parser.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_parser.go
+++ golang-github-google-cel-go/repl/parser/commands_parser.go
@@ -1,12 +1,12 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser // Commands
 import (
 	"fmt"
 	"strconv"
-  	"sync"
+	"sync"
 
-	"github.com/antlr4-go/antlr/v4"
+	"github.com/antlr/antlr4/runtime/Go/antlr/v4"
 )
 
 // Suppress unused import errors
@@ -14,244 +14,243 @@ var _ = fmt.Printf
 var _ = strconv.Itoa
 var _ = sync.Once{}
 
-
 type CommandsParser struct {
 	*antlr.BaseParser
 }
 
-var CommandsParserStaticData struct {
-  once                   sync.Once
-  serializedATN          []int32
-  LiteralNames           []string
-  SymbolicNames          []string
-  RuleNames              []string
-  PredictionContextCache *antlr.PredictionContextCache
-  atn                    *antlr.ATN
-  decisionToDFA          []*antlr.DFA
+var commandsParserStaticData struct {
+	once                   sync.Once
+	serializedATN          []int32
+	literalNames           []string
+	symbolicNames          []string
+	ruleNames              []string
+	predictionContextCache *antlr.PredictionContextCache
+	atn                    *antlr.ATN
+	decisionToDFA          []*antlr.DFA
 }
 
 func commandsParserInit() {
-  staticData := &CommandsParserStaticData
-  staticData.LiteralNames = []string{
-    "", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'", 
-    "'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", "'<'", "'<='", 
-    "'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", "'('", "')'", 
-    "'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", "'/'", "'%'", 
-    "'true'", "'false'", "'null'",
-  }
-  staticData.SymbolicNames = []string{
-    "", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN", 
-    "EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS", 
-    "GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE", 
-    "RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK", 
-    "COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE", 
-    "NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT", 
-    "STRING", "BYTES", "IDENTIFIER",
-  }
-  staticData.RuleNames = []string{
-    "startCommand", "command", "help", "let", "declare", "varDecl", "fnDecl", 
-    "param", "delete", "simple", "empty", "compile", "exprCmd", "qualId", 
-    "startType", "type", "typeId", "typeParamList", "start", "expr", "conditionalOr", 
-    "conditionalAnd", "relation", "calc", "unary", "member", "primary", 
-    "exprList", "listInit", "fieldInitializerList", "optField", "mapInitializerList", 
-    "optExpr", "literal",
-  }
-  staticData.PredictionContextCache = antlr.NewPredictionContextCache()
-  staticData.serializedATN = []int32{
-	4, 1, 47, 406, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 
-	4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 
-	10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 
-	2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 
-	21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 
-	7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 
-	31, 2, 32, 7, 32, 2, 33, 7, 33, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
-	1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 
-	1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 91, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3, 
-	4, 98, 8, 4, 1, 5, 1, 5, 1, 5, 3, 5, 103, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 
-	1, 6, 5, 6, 110, 8, 6, 10, 6, 12, 6, 113, 9, 6, 3, 6, 115, 8, 6, 1, 6, 
-	1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 128, 
-	8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 133, 8, 9, 10, 9, 12, 9, 136, 9, 9, 1, 10, 
-	1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 3, 12, 144, 8, 12, 1, 12, 1, 12, 1, 
-	13, 3, 13, 149, 8, 13, 1, 13, 1, 13, 1, 13, 5, 13, 154, 8, 13, 10, 13, 
-	12, 13, 157, 9, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 3, 15, 164, 8, 15, 
-	1, 16, 3, 16, 167, 8, 16, 1, 16, 1, 16, 1, 16, 5, 16, 172, 8, 16, 10, 16, 
-	12, 16, 175, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 181, 8, 17, 10, 
-	17, 12, 17, 184, 9, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 
-	1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 197, 8, 19, 1, 20, 1, 20, 1, 20, 5, 
-	20, 202, 8, 20, 10, 20, 12, 20, 205, 9, 20, 1, 21, 1, 21, 1, 21, 5, 21, 
-	210, 8, 21, 10, 21, 12, 21, 213, 9, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 
-	22, 1, 22, 5, 22, 221, 8, 22, 10, 22, 12, 22, 224, 9, 22, 1, 23, 1, 23, 
-	1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 235, 8, 23, 10, 
-	23, 12, 23, 238, 9, 23, 1, 24, 1, 24, 4, 24, 242, 8, 24, 11, 24, 12, 24, 
-	243, 1, 24, 1, 24, 4, 24, 248, 8, 24, 11, 24, 12, 24, 249, 1, 24, 3, 24, 
-	253, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 261, 8, 25, 
-	1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 269, 8, 25, 1, 25, 1, 
-	25, 1, 25, 1, 25, 3, 25, 275, 8, 25, 1, 25, 1, 25, 1, 25, 5, 25, 280, 8, 
-	25, 10, 25, 12, 25, 283, 9, 25, 1, 26, 3, 26, 286, 8, 26, 1, 26, 1, 26, 
-	1, 26, 3, 26, 291, 8, 26, 1, 26, 3, 26, 294, 8, 26, 1, 26, 1, 26, 1, 26, 
-	1, 26, 1, 26, 1, 26, 3, 26, 302, 8, 26, 1, 26, 3, 26, 305, 8, 26, 1, 26, 
-	1, 26, 1, 26, 3, 26, 310, 8, 26, 1, 26, 3, 26, 313, 8, 26, 1, 26, 1, 26, 
-	3, 26, 317, 8, 26, 1, 26, 1, 26, 1, 26, 5, 26, 322, 8, 26, 10, 26, 12, 
-	26, 325, 9, 26, 1, 26, 1, 26, 3, 26, 329, 8, 26, 1, 26, 3, 26, 332, 8, 
-	26, 1, 26, 1, 26, 3, 26, 336, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 341, 8, 
-	27, 10, 27, 12, 27, 344, 9, 27, 1, 28, 1, 28, 1, 28, 5, 28, 349, 8, 28, 
-	10, 28, 12, 28, 352, 9, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 
-	29, 1, 29, 5, 29, 362, 8, 29, 10, 29, 12, 29, 365, 9, 29, 1, 30, 3, 30, 
-	368, 8, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 
-	31, 1, 31, 5, 31, 380, 8, 31, 10, 31, 12, 31, 383, 9, 31, 1, 32, 3, 32, 
-	386, 8, 32, 1, 32, 1, 32, 1, 33, 3, 33, 391, 8, 33, 1, 33, 1, 33, 1, 33, 
-	3, 33, 396, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 404, 
-	8, 33, 1, 33, 0, 3, 44, 46, 50, 34, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 
-	20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 
-	56, 58, 60, 62, 64, 66, 0, 5, 1, 0, 1, 2, 2, 0, 39, 39, 47, 47, 1, 0, 12, 
-	18, 1, 0, 34, 36, 2, 0, 29, 29, 33, 33, 440, 0, 68, 1, 0, 0, 0, 2, 79, 
-	1, 0, 0, 0, 4, 81, 1, 0, 0, 0, 6, 83, 1, 0, 0, 0, 8, 94, 1, 0, 0, 0, 10, 
-	99, 1, 0, 0, 0, 12, 104, 1, 0, 0, 0, 14, 120, 1, 0, 0, 0, 16, 124, 1, 0, 
-	0, 0, 18, 129, 1, 0, 0, 0, 20, 137, 1, 0, 0, 0, 22, 139, 1, 0, 0, 0, 24, 
-	143, 1, 0, 0, 0, 26, 148, 1, 0, 0, 0, 28, 158, 1, 0, 0, 0, 30, 161, 1, 
-	0, 0, 0, 32, 166, 1, 0, 0, 0, 34, 176, 1, 0, 0, 0, 36, 187, 1, 0, 0, 0, 
-	38, 190, 1, 0, 0, 0, 40, 198, 1, 0, 0, 0, 42, 206, 1, 0, 0, 0, 44, 214, 
-	1, 0, 0, 0, 46, 225, 1, 0, 0, 0, 48, 252, 1, 0, 0, 0, 50, 254, 1, 0, 0, 
-	0, 52, 335, 1, 0, 0, 0, 54, 337, 1, 0, 0, 0, 56, 345, 1, 0, 0, 0, 58, 353, 
-	1, 0, 0, 0, 60, 367, 1, 0, 0, 0, 62, 371, 1, 0, 0, 0, 64, 385, 1, 0, 0, 
-	0, 66, 403, 1, 0, 0, 0, 68, 69, 3, 2, 1, 0, 69, 70, 5, 0, 0, 1, 70, 1, 
-	1, 0, 0, 0, 71, 80, 3, 4, 2, 0, 72, 80, 3, 6, 3, 0, 73, 80, 3, 8, 4, 0, 
-	74, 80, 3, 16, 8, 0, 75, 80, 3, 18, 9, 0, 76, 80, 3, 22, 11, 0, 77, 80, 
-	3, 24, 12, 0, 78, 80, 3, 20, 10, 0, 79, 71, 1, 0, 0, 0, 79, 72, 1, 0, 0, 
-	0, 79, 73, 1, 0, 0, 0, 79, 74, 1, 0, 0, 0, 79, 75, 1, 0, 0, 0, 79, 76, 
-	1, 0, 0, 0, 79, 77, 1, 0, 0, 0, 79, 78, 1, 0, 0, 0, 80, 3, 1, 0, 0, 0, 
-	81, 82, 7, 0, 0, 0, 82, 5, 1, 0, 0, 0, 83, 90, 5, 3, 0, 0, 84, 85, 3, 10, 
-	5, 0, 85, 86, 5, 11, 0, 0, 86, 91, 1, 0, 0, 0, 87, 88, 3, 12, 6, 0, 88, 
-	89, 5, 10, 0, 0, 89, 91, 1, 0, 0, 0, 90, 84, 1, 0, 0, 0, 90, 87, 1, 0, 
-	0, 0, 91, 92, 1, 0, 0, 0, 92, 93, 3, 38, 19, 0, 93, 7, 1, 0, 0, 0, 94, 
-	97, 5, 4, 0, 0, 95, 98, 3, 10, 5, 0, 96, 98, 3, 12, 6, 0, 97, 95, 1, 0, 
-	0, 0, 97, 96, 1, 0, 0, 0, 98, 9, 1, 0, 0, 0, 99, 102, 3, 26, 13, 0, 100, 
-	101, 5, 32, 0, 0, 101, 103, 3, 30, 15, 0, 102, 100, 1, 0, 0, 0, 102, 103, 
-	1, 0, 0, 0, 103, 11, 1, 0, 0, 0, 104, 105, 3, 26, 13, 0, 105, 114, 5, 25, 
-	0, 0, 106, 111, 3, 14, 7, 0, 107, 108, 5, 28, 0, 0, 108, 110, 3, 14, 7, 
-	0, 109, 107, 1, 0, 0, 0, 110, 113, 1, 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 
-	112, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 114, 106, 
-	1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 117, 5, 26, 
-	0, 0, 117, 118, 5, 32, 0, 0, 118, 119, 3, 30, 15, 0, 119, 13, 1, 0, 0, 
-	0, 120, 121, 5, 47, 0, 0, 121, 122, 5, 32, 0, 0, 122, 123, 3, 30, 15, 0, 
-	123, 15, 1, 0, 0, 0, 124, 127, 5, 5, 0, 0, 125, 128, 3, 10, 5, 0, 126, 
-	128, 3, 12, 6, 0, 127, 125, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 17, 
-	1, 0, 0, 0, 129, 134, 5, 8, 0, 0, 130, 133, 5, 9, 0, 0, 131, 133, 5, 45, 
-	0, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0, 
-	134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 19, 1, 0, 0, 0, 136, 134, 
-	1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 21, 1, 0, 0, 0, 139, 140, 5, 6, 
-	0, 0, 140, 141, 3, 38, 19, 0, 141, 23, 1, 0, 0, 0, 142, 144, 5, 7, 0, 0, 
-	143, 142, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 
-	146, 3, 38, 19, 0, 146, 25, 1, 0, 0, 0, 147, 149, 5, 27, 0, 0, 148, 147, 
-	1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 1, 0, 0, 0, 150, 155, 5, 47, 
-	0, 0, 151, 152, 5, 27, 0, 0, 152, 154, 5, 47, 0, 0, 153, 151, 1, 0, 0, 
-	0, 154, 157, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 
-	27, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 158, 159, 3, 30, 15, 0, 159, 160, 
-	5, 0, 0, 1, 160, 29, 1, 0, 0, 0, 161, 163, 3, 32, 16, 0, 162, 164, 3, 34, 
-	17, 0, 163, 162, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 31, 1, 0, 0, 0, 
-	165, 167, 5, 27, 0, 0, 166, 165, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 
-	168, 1, 0, 0, 0, 168, 173, 7, 1, 0, 0, 169, 170, 5, 27, 0, 0, 170, 172, 
-	5, 47, 0, 0, 171, 169, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 
-	0, 0, 173, 174, 1, 0, 0, 0, 174, 33, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 
-	176, 177, 5, 25, 0, 0, 177, 182, 3, 30, 15, 0, 178, 179, 5, 28, 0, 0, 179, 
-	181, 3, 30, 15, 0, 180, 178, 1, 0, 0, 0, 181, 184, 1, 0, 0, 0, 182, 180, 
-	1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 1, 0, 0, 0, 184, 182, 1, 0, 
-	0, 0, 185, 186, 5, 26, 0, 0, 186, 35, 1, 0, 0, 0, 187, 188, 3, 38, 19, 
-	0, 188, 189, 5, 0, 0, 1, 189, 37, 1, 0, 0, 0, 190, 196, 3, 40, 20, 0, 191, 
-	192, 5, 31, 0, 0, 192, 193, 3, 40, 20, 0, 193, 194, 5, 32, 0, 0, 194, 195, 
-	3, 38, 19, 0, 195, 197, 1, 0, 0, 0, 196, 191, 1, 0, 0, 0, 196, 197, 1, 
-	0, 0, 0, 197, 39, 1, 0, 0, 0, 198, 203, 3, 42, 21, 0, 199, 200, 5, 20, 
-	0, 0, 200, 202, 3, 42, 21, 0, 201, 199, 1, 0, 0, 0, 202, 205, 1, 0, 0, 
-	0, 203, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 41, 1, 0, 0, 0, 205, 
-	203, 1, 0, 0, 0, 206, 211, 3, 44, 22, 0, 207, 208, 5, 19, 0, 0, 208, 210, 
-	3, 44, 22, 0, 209, 207, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 
-	0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 43, 1, 0, 0, 0, 213, 211, 1, 0, 0, 
-	0, 214, 215, 6, 22, -1, 0, 215, 216, 3, 46, 23, 0, 216, 222, 1, 0, 0, 0, 
-	217, 218, 10, 1, 0, 0, 218, 219, 7, 2, 0, 0, 219, 221, 3, 44, 22, 2, 220, 
-	217, 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 
-	1, 0, 0, 0, 223, 45, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 226, 6, 23, 
-	-1, 0, 226, 227, 3, 48, 24, 0, 227, 236, 1, 0, 0, 0, 228, 229, 10, 2, 0, 
-	0, 229, 230, 7, 3, 0, 0, 230, 235, 3, 46, 23, 3, 231, 232, 10, 1, 0, 0, 
-	232, 233, 7, 4, 0, 0, 233, 235, 3, 46, 23, 2, 234, 228, 1, 0, 0, 0, 234, 
-	231, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237, 
-	1, 0, 0, 0, 237, 47, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 253, 3, 50, 
-	25, 0, 240, 242, 5, 30, 0, 0, 241, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 
-	0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 
-	253, 3, 50, 25, 0, 246, 248, 5, 29, 0, 0, 247, 246, 1, 0, 0, 0, 248, 249, 
-	1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 1, 0, 
-	0, 0, 251, 253, 3, 50, 25, 0, 252, 239, 1, 0, 0, 0, 252, 241, 1, 0, 0, 
-	0, 252, 247, 1, 0, 0, 0, 253, 49, 1, 0, 0, 0, 254, 255, 6, 25, -1, 0, 255, 
-	256, 3, 52, 26, 0, 256, 281, 1, 0, 0, 0, 257, 258, 10, 3, 0, 0, 258, 260, 
-	5, 27, 0, 0, 259, 261, 5, 31, 0, 0, 260, 259, 1, 0, 0, 0, 260, 261, 1, 
-	0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 280, 5, 47, 0, 0, 263, 264, 10, 2, 
-	0, 0, 264, 265, 5, 27, 0, 0, 265, 266, 5, 47, 0, 0, 266, 268, 5, 25, 0, 
-	0, 267, 269, 3, 54, 27, 0, 268, 267, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 
-	269, 270, 1, 0, 0, 0, 270, 280, 5, 26, 0, 0, 271, 272, 10, 1, 0, 0, 272, 
-	274, 5, 21, 0, 0, 273, 275, 5, 31, 0, 0, 274, 273, 1, 0, 0, 0, 274, 275, 
-	1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 277, 3, 38, 19, 0, 277, 278, 5, 
-	22, 0, 0, 278, 280, 1, 0, 0, 0, 279, 257, 1, 0, 0, 0, 279, 263, 1, 0, 0, 
-	0, 279, 271, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 
-	282, 1, 0, 0, 0, 282, 51, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 286, 5, 
-	27, 0, 0, 285, 284, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 287, 1, 0, 0, 
-	0, 287, 293, 5, 47, 0, 0, 288, 290, 5, 25, 0, 0, 289, 291, 3, 54, 27, 0, 
-	290, 289, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 
-	294, 5, 26, 0, 0, 293, 288, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 336, 
-	1, 0, 0, 0, 295, 296, 5, 25, 0, 0, 296, 297, 3, 38, 19, 0, 297, 298, 5, 
-	26, 0, 0, 298, 336, 1, 0, 0, 0, 299, 301, 5, 21, 0, 0, 300, 302, 3, 56, 
-	28, 0, 301, 300, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 304, 1, 0, 0, 0, 
-	303, 305, 5, 28, 0, 0, 304, 303, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 
-	306, 1, 0, 0, 0, 306, 336, 5, 22, 0, 0, 307, 309, 5, 23, 0, 0, 308, 310, 
-	3, 62, 31, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 312, 1, 
-	0, 0, 0, 311, 313, 5, 28, 0, 0, 312, 311, 1, 0, 0, 0, 312, 313, 1, 0, 0, 
-	0, 313, 314, 1, 0, 0, 0, 314, 336, 5, 24, 0, 0, 315, 317, 5, 27, 0, 0, 
-	316, 315, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 
-	323, 5, 47, 0, 0, 319, 320, 5, 27, 0, 0, 320, 322, 5, 47, 0, 0, 321, 319, 
-	1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 323, 324, 1, 0, 
-	0, 0, 324, 326, 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 326, 328, 5, 23, 0, 0, 
-	327, 329, 3, 58, 29, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 
-	331, 1, 0, 0, 0, 330, 332, 5, 28, 0, 0, 331, 330, 1, 0, 0, 0, 331, 332, 
-	1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 336, 5, 24, 0, 0, 334, 336, 3, 66, 
-	33, 0, 335, 285, 1, 0, 0, 0, 335, 295, 1, 0, 0, 0, 335, 299, 1, 0, 0, 0, 
-	335, 307, 1, 0, 0, 0, 335, 316, 1, 0, 0, 0, 335, 334, 1, 0, 0, 0, 336, 
-	53, 1, 0, 0, 0, 337, 342, 3, 38, 19, 0, 338, 339, 5, 28, 0, 0, 339, 341, 
-	3, 38, 19, 0, 340, 338, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 340, 1, 
-	0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 55, 1, 0, 0, 0, 344, 342, 1, 0, 0, 
-	0, 345, 350, 3, 64, 32, 0, 346, 347, 5, 28, 0, 0, 347, 349, 3, 64, 32, 
-	0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350, 
-	351, 1, 0, 0, 0, 351, 57, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 3, 
-	60, 30, 0, 354, 355, 5, 32, 0, 0, 355, 363, 3, 38, 19, 0, 356, 357, 5, 
-	28, 0, 0, 357, 358, 3, 60, 30, 0, 358, 359, 5, 32, 0, 0, 359, 360, 3, 38, 
-	19, 0, 360, 362, 1, 0, 0, 0, 361, 356, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 
-	363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 59, 1, 0, 0, 0, 365, 363, 
-	1, 0, 0, 0, 366, 368, 5, 31, 0, 0, 367, 366, 1, 0, 0, 0, 367, 368, 1, 0, 
-	0, 0, 368, 369, 1, 0, 0, 0, 369, 370, 5, 47, 0, 0, 370, 61, 1, 0, 0, 0, 
-	371, 372, 3, 64, 32, 0, 372, 373, 5, 32, 0, 0, 373, 381, 3, 38, 19, 0, 
-	374, 375, 5, 28, 0, 0, 375, 376, 3, 64, 32, 0, 376, 377, 5, 32, 0, 0, 377, 
-	378, 3, 38, 19, 0, 378, 380, 1, 0, 0, 0, 379, 374, 1, 0, 0, 0, 380, 383, 
-	1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 63, 1, 0, 
-	0, 0, 383, 381, 1, 0, 0, 0, 384, 386, 5, 31, 0, 0, 385, 384, 1, 0, 0, 0, 
-	385, 386, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 3, 38, 19, 0, 388, 
-	65, 1, 0, 0, 0, 389, 391, 5, 29, 0, 0, 390, 389, 1, 0, 0, 0, 390, 391, 
-	1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 404, 5, 43, 0, 0, 393, 404, 5, 44, 
-	0, 0, 394, 396, 5, 29, 0, 0, 395, 394, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 
-	396, 397, 1, 0, 0, 0, 397, 404, 5, 42, 0, 0, 398, 404, 5, 45, 0, 0, 399, 
-	404, 5, 46, 0, 0, 400, 404, 5, 37, 0, 0, 401, 404, 5, 38, 0, 0, 402, 404, 
-	5, 39, 0, 0, 403, 390, 1, 0, 0, 0, 403, 393, 1, 0, 0, 0, 403, 395, 1, 0, 
-	0, 0, 403, 398, 1, 0, 0, 0, 403, 399, 1, 0, 0, 0, 403, 400, 1, 0, 0, 0, 
-	403, 401, 1, 0, 0, 0, 403, 402, 1, 0, 0, 0, 404, 67, 1, 0, 0, 0, 51, 79, 
-	90, 97, 102, 111, 114, 127, 132, 134, 143, 148, 155, 163, 166, 173, 182, 
-	196, 203, 211, 222, 234, 236, 243, 249, 252, 260, 268, 274, 279, 281, 285, 
-	290, 293, 301, 304, 309, 312, 316, 323, 328, 331, 335, 342, 350, 363, 367, 
-	381, 385, 390, 395, 403,
-}
-  deserializer := antlr.NewATNDeserializer(nil)
-  staticData.atn = deserializer.Deserialize(staticData.serializedATN)
-  atn := staticData.atn
-  staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
-  decisionToDFA := staticData.decisionToDFA
-  for index, state := range atn.DecisionToState {
-    decisionToDFA[index] = antlr.NewDFA(state, index)
-  }
+	staticData := &commandsParserStaticData
+	staticData.literalNames = []string{
+		"", "'%help'", "'%?'", "'%let'", "'%declare'", "'%delete'", "'%compile'",
+		"'%eval'", "", "", "'->'", "'='", "'=='", "'!='", "'in'", "'<'", "'<='",
+		"'>='", "'>'", "'&&'", "'||'", "'['", "']'", "'{'", "'}'", "'('", "')'",
+		"'.'", "','", "'-'", "'!'", "'?'", "':'", "'+'", "'*'", "'/'", "'%'",
+		"'true'", "'false'", "'null'",
+	}
+	staticData.symbolicNames = []string{
+		"", "", "", "", "", "", "", "", "COMMAND", "FLAG", "ARROW", "EQUAL_ASSIGN",
+		"EQUALS", "NOT_EQUALS", "IN", "LESS", "LESS_EQUALS", "GREATER_EQUALS",
+		"GREATER", "LOGICAL_AND", "LOGICAL_OR", "LBRACKET", "RPRACKET", "LBRACE",
+		"RBRACE", "LPAREN", "RPAREN", "DOT", "COMMA", "MINUS", "EXCLAM", "QUESTIONMARK",
+		"COLON", "PLUS", "STAR", "SLASH", "PERCENT", "CEL_TRUE", "CEL_FALSE",
+		"NUL", "WHITESPACE", "COMMENT", "NUM_FLOAT", "NUM_INT", "NUM_UINT",
+		"STRING", "BYTES", "IDENTIFIER",
+	}
+	staticData.ruleNames = []string{
+		"startCommand", "command", "help", "let", "declare", "varDecl", "fnDecl",
+		"param", "delete", "simple", "empty", "compile", "exprCmd", "qualId",
+		"startType", "type", "typeId", "typeParamList", "start", "expr", "conditionalOr",
+		"conditionalAnd", "relation", "calc", "unary", "member", "primary",
+		"exprList", "listInit", "fieldInitializerList", "optField", "mapInitializerList",
+		"optExpr", "literal",
+	}
+	staticData.predictionContextCache = antlr.NewPredictionContextCache()
+	staticData.serializedATN = []int32{
+		4, 1, 47, 406, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7,
+		4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7,
+		10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15,
+		2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2,
+		21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26,
+		7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7,
+		31, 2, 32, 7, 32, 2, 33, 7, 33, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3,
+		1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 91, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 3,
+		4, 98, 8, 4, 1, 5, 1, 5, 1, 5, 3, 5, 103, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6,
+		1, 6, 5, 6, 110, 8, 6, 10, 6, 12, 6, 113, 9, 6, 3, 6, 115, 8, 6, 1, 6,
+		1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 3, 8, 128,
+		8, 8, 1, 9, 1, 9, 1, 9, 5, 9, 133, 8, 9, 10, 9, 12, 9, 136, 9, 9, 1, 10,
+		1, 10, 1, 11, 1, 11, 1, 11, 1, 12, 3, 12, 144, 8, 12, 1, 12, 1, 12, 1,
+		13, 3, 13, 149, 8, 13, 1, 13, 1, 13, 1, 13, 5, 13, 154, 8, 13, 10, 13,
+		12, 13, 157, 9, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 3, 15, 164, 8, 15,
+		1, 16, 3, 16, 167, 8, 16, 1, 16, 1, 16, 1, 16, 5, 16, 172, 8, 16, 10, 16,
+		12, 16, 175, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 181, 8, 17, 10,
+		17, 12, 17, 184, 9, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19,
+		1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 197, 8, 19, 1, 20, 1, 20, 1, 20, 5,
+		20, 202, 8, 20, 10, 20, 12, 20, 205, 9, 20, 1, 21, 1, 21, 1, 21, 5, 21,
+		210, 8, 21, 10, 21, 12, 21, 213, 9, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1,
+		22, 1, 22, 5, 22, 221, 8, 22, 10, 22, 12, 22, 224, 9, 22, 1, 23, 1, 23,
+		1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 235, 8, 23, 10,
+		23, 12, 23, 238, 9, 23, 1, 24, 1, 24, 4, 24, 242, 8, 24, 11, 24, 12, 24,
+		243, 1, 24, 1, 24, 4, 24, 248, 8, 24, 11, 24, 12, 24, 249, 1, 24, 3, 24,
+		253, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 261, 8, 25,
+		1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 269, 8, 25, 1, 25, 1,
+		25, 1, 25, 1, 25, 3, 25, 275, 8, 25, 1, 25, 1, 25, 1, 25, 5, 25, 280, 8,
+		25, 10, 25, 12, 25, 283, 9, 25, 1, 26, 3, 26, 286, 8, 26, 1, 26, 1, 26,
+		1, 26, 3, 26, 291, 8, 26, 1, 26, 3, 26, 294, 8, 26, 1, 26, 1, 26, 1, 26,
+		1, 26, 1, 26, 1, 26, 3, 26, 302, 8, 26, 1, 26, 3, 26, 305, 8, 26, 1, 26,
+		1, 26, 1, 26, 3, 26, 310, 8, 26, 1, 26, 3, 26, 313, 8, 26, 1, 26, 1, 26,
+		3, 26, 317, 8, 26, 1, 26, 1, 26, 1, 26, 5, 26, 322, 8, 26, 10, 26, 12,
+		26, 325, 9, 26, 1, 26, 1, 26, 3, 26, 329, 8, 26, 1, 26, 3, 26, 332, 8,
+		26, 1, 26, 1, 26, 3, 26, 336, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 341, 8,
+		27, 10, 27, 12, 27, 344, 9, 27, 1, 28, 1, 28, 1, 28, 5, 28, 349, 8, 28,
+		10, 28, 12, 28, 352, 9, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1,
+		29, 1, 29, 5, 29, 362, 8, 29, 10, 29, 12, 29, 365, 9, 29, 1, 30, 3, 30,
+		368, 8, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1,
+		31, 1, 31, 5, 31, 380, 8, 31, 10, 31, 12, 31, 383, 9, 31, 1, 32, 3, 32,
+		386, 8, 32, 1, 32, 1, 32, 1, 33, 3, 33, 391, 8, 33, 1, 33, 1, 33, 1, 33,
+		3, 33, 396, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 404,
+		8, 33, 1, 33, 0, 3, 44, 46, 50, 34, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
+		20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54,
+		56, 58, 60, 62, 64, 66, 0, 5, 1, 0, 1, 2, 2, 0, 39, 39, 47, 47, 1, 0, 12,
+		18, 1, 0, 34, 36, 2, 0, 29, 29, 33, 33, 440, 0, 68, 1, 0, 0, 0, 2, 79,
+		1, 0, 0, 0, 4, 81, 1, 0, 0, 0, 6, 83, 1, 0, 0, 0, 8, 94, 1, 0, 0, 0, 10,
+		99, 1, 0, 0, 0, 12, 104, 1, 0, 0, 0, 14, 120, 1, 0, 0, 0, 16, 124, 1, 0,
+		0, 0, 18, 129, 1, 0, 0, 0, 20, 137, 1, 0, 0, 0, 22, 139, 1, 0, 0, 0, 24,
+		143, 1, 0, 0, 0, 26, 148, 1, 0, 0, 0, 28, 158, 1, 0, 0, 0, 30, 161, 1,
+		0, 0, 0, 32, 166, 1, 0, 0, 0, 34, 176, 1, 0, 0, 0, 36, 187, 1, 0, 0, 0,
+		38, 190, 1, 0, 0, 0, 40, 198, 1, 0, 0, 0, 42, 206, 1, 0, 0, 0, 44, 214,
+		1, 0, 0, 0, 46, 225, 1, 0, 0, 0, 48, 252, 1, 0, 0, 0, 50, 254, 1, 0, 0,
+		0, 52, 335, 1, 0, 0, 0, 54, 337, 1, 0, 0, 0, 56, 345, 1, 0, 0, 0, 58, 353,
+		1, 0, 0, 0, 60, 367, 1, 0, 0, 0, 62, 371, 1, 0, 0, 0, 64, 385, 1, 0, 0,
+		0, 66, 403, 1, 0, 0, 0, 68, 69, 3, 2, 1, 0, 69, 70, 5, 0, 0, 1, 70, 1,
+		1, 0, 0, 0, 71, 80, 3, 4, 2, 0, 72, 80, 3, 6, 3, 0, 73, 80, 3, 8, 4, 0,
+		74, 80, 3, 16, 8, 0, 75, 80, 3, 18, 9, 0, 76, 80, 3, 22, 11, 0, 77, 80,
+		3, 24, 12, 0, 78, 80, 3, 20, 10, 0, 79, 71, 1, 0, 0, 0, 79, 72, 1, 0, 0,
+		0, 79, 73, 1, 0, 0, 0, 79, 74, 1, 0, 0, 0, 79, 75, 1, 0, 0, 0, 79, 76,
+		1, 0, 0, 0, 79, 77, 1, 0, 0, 0, 79, 78, 1, 0, 0, 0, 80, 3, 1, 0, 0, 0,
+		81, 82, 7, 0, 0, 0, 82, 5, 1, 0, 0, 0, 83, 90, 5, 3, 0, 0, 84, 85, 3, 10,
+		5, 0, 85, 86, 5, 11, 0, 0, 86, 91, 1, 0, 0, 0, 87, 88, 3, 12, 6, 0, 88,
+		89, 5, 10, 0, 0, 89, 91, 1, 0, 0, 0, 90, 84, 1, 0, 0, 0, 90, 87, 1, 0,
+		0, 0, 91, 92, 1, 0, 0, 0, 92, 93, 3, 38, 19, 0, 93, 7, 1, 0, 0, 0, 94,
+		97, 5, 4, 0, 0, 95, 98, 3, 10, 5, 0, 96, 98, 3, 12, 6, 0, 97, 95, 1, 0,
+		0, 0, 97, 96, 1, 0, 0, 0, 98, 9, 1, 0, 0, 0, 99, 102, 3, 26, 13, 0, 100,
+		101, 5, 32, 0, 0, 101, 103, 3, 30, 15, 0, 102, 100, 1, 0, 0, 0, 102, 103,
+		1, 0, 0, 0, 103, 11, 1, 0, 0, 0, 104, 105, 3, 26, 13, 0, 105, 114, 5, 25,
+		0, 0, 106, 111, 3, 14, 7, 0, 107, 108, 5, 28, 0, 0, 108, 110, 3, 14, 7,
+		0, 109, 107, 1, 0, 0, 0, 110, 113, 1, 0, 0, 0, 111, 109, 1, 0, 0, 0, 111,
+		112, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 114, 106,
+		1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 117, 5, 26,
+		0, 0, 117, 118, 5, 32, 0, 0, 118, 119, 3, 30, 15, 0, 119, 13, 1, 0, 0,
+		0, 120, 121, 5, 47, 0, 0, 121, 122, 5, 32, 0, 0, 122, 123, 3, 30, 15, 0,
+		123, 15, 1, 0, 0, 0, 124, 127, 5, 5, 0, 0, 125, 128, 3, 10, 5, 0, 126,
+		128, 3, 12, 6, 0, 127, 125, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 17,
+		1, 0, 0, 0, 129, 134, 5, 8, 0, 0, 130, 133, 5, 9, 0, 0, 131, 133, 5, 45,
+		0, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0,
+		134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 19, 1, 0, 0, 0, 136, 134,
+		1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 21, 1, 0, 0, 0, 139, 140, 5, 6,
+		0, 0, 140, 141, 3, 38, 19, 0, 141, 23, 1, 0, 0, 0, 142, 144, 5, 7, 0, 0,
+		143, 142, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145,
+		146, 3, 38, 19, 0, 146, 25, 1, 0, 0, 0, 147, 149, 5, 27, 0, 0, 148, 147,
+		1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 1, 0, 0, 0, 150, 155, 5, 47,
+		0, 0, 151, 152, 5, 27, 0, 0, 152, 154, 5, 47, 0, 0, 153, 151, 1, 0, 0,
+		0, 154, 157, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156,
+		27, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 158, 159, 3, 30, 15, 0, 159, 160,
+		5, 0, 0, 1, 160, 29, 1, 0, 0, 0, 161, 163, 3, 32, 16, 0, 162, 164, 3, 34,
+		17, 0, 163, 162, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 31, 1, 0, 0, 0,
+		165, 167, 5, 27, 0, 0, 166, 165, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167,
+		168, 1, 0, 0, 0, 168, 173, 7, 1, 0, 0, 169, 170, 5, 27, 0, 0, 170, 172,
+		5, 47, 0, 0, 171, 169, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0,
+		0, 0, 173, 174, 1, 0, 0, 0, 174, 33, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0,
+		176, 177, 5, 25, 0, 0, 177, 182, 3, 30, 15, 0, 178, 179, 5, 28, 0, 0, 179,
+		181, 3, 30, 15, 0, 180, 178, 1, 0, 0, 0, 181, 184, 1, 0, 0, 0, 182, 180,
+		1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 1, 0, 0, 0, 184, 182, 1, 0,
+		0, 0, 185, 186, 5, 26, 0, 0, 186, 35, 1, 0, 0, 0, 187, 188, 3, 38, 19,
+		0, 188, 189, 5, 0, 0, 1, 189, 37, 1, 0, 0, 0, 190, 196, 3, 40, 20, 0, 191,
+		192, 5, 31, 0, 0, 192, 193, 3, 40, 20, 0, 193, 194, 5, 32, 0, 0, 194, 195,
+		3, 38, 19, 0, 195, 197, 1, 0, 0, 0, 196, 191, 1, 0, 0, 0, 196, 197, 1,
+		0, 0, 0, 197, 39, 1, 0, 0, 0, 198, 203, 3, 42, 21, 0, 199, 200, 5, 20,
+		0, 0, 200, 202, 3, 42, 21, 0, 201, 199, 1, 0, 0, 0, 202, 205, 1, 0, 0,
+		0, 203, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 41, 1, 0, 0, 0, 205,
+		203, 1, 0, 0, 0, 206, 211, 3, 44, 22, 0, 207, 208, 5, 19, 0, 0, 208, 210,
+		3, 44, 22, 0, 209, 207, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1,
+		0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 43, 1, 0, 0, 0, 213, 211, 1, 0, 0,
+		0, 214, 215, 6, 22, -1, 0, 215, 216, 3, 46, 23, 0, 216, 222, 1, 0, 0, 0,
+		217, 218, 10, 1, 0, 0, 218, 219, 7, 2, 0, 0, 219, 221, 3, 44, 22, 2, 220,
+		217, 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223,
+		1, 0, 0, 0, 223, 45, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 226, 6, 23,
+		-1, 0, 226, 227, 3, 48, 24, 0, 227, 236, 1, 0, 0, 0, 228, 229, 10, 2, 0,
+		0, 229, 230, 7, 3, 0, 0, 230, 235, 3, 46, 23, 3, 231, 232, 10, 1, 0, 0,
+		232, 233, 7, 4, 0, 0, 233, 235, 3, 46, 23, 2, 234, 228, 1, 0, 0, 0, 234,
+		231, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237,
+		1, 0, 0, 0, 237, 47, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 253, 3, 50,
+		25, 0, 240, 242, 5, 30, 0, 0, 241, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0,
+		0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245,
+		253, 3, 50, 25, 0, 246, 248, 5, 29, 0, 0, 247, 246, 1, 0, 0, 0, 248, 249,
+		1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 1, 0,
+		0, 0, 251, 253, 3, 50, 25, 0, 252, 239, 1, 0, 0, 0, 252, 241, 1, 0, 0,
+		0, 252, 247, 1, 0, 0, 0, 253, 49, 1, 0, 0, 0, 254, 255, 6, 25, -1, 0, 255,
+		256, 3, 52, 26, 0, 256, 281, 1, 0, 0, 0, 257, 258, 10, 3, 0, 0, 258, 260,
+		5, 27, 0, 0, 259, 261, 5, 31, 0, 0, 260, 259, 1, 0, 0, 0, 260, 261, 1,
+		0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 280, 5, 47, 0, 0, 263, 264, 10, 2,
+		0, 0, 264, 265, 5, 27, 0, 0, 265, 266, 5, 47, 0, 0, 266, 268, 5, 25, 0,
+		0, 267, 269, 3, 54, 27, 0, 268, 267, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0,
+		269, 270, 1, 0, 0, 0, 270, 280, 5, 26, 0, 0, 271, 272, 10, 1, 0, 0, 272,
+		274, 5, 21, 0, 0, 273, 275, 5, 31, 0, 0, 274, 273, 1, 0, 0, 0, 274, 275,
+		1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 277, 3, 38, 19, 0, 277, 278, 5,
+		22, 0, 0, 278, 280, 1, 0, 0, 0, 279, 257, 1, 0, 0, 0, 279, 263, 1, 0, 0,
+		0, 279, 271, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281,
+		282, 1, 0, 0, 0, 282, 51, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 286, 5,
+		27, 0, 0, 285, 284, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 287, 1, 0, 0,
+		0, 287, 293, 5, 47, 0, 0, 288, 290, 5, 25, 0, 0, 289, 291, 3, 54, 27, 0,
+		290, 289, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292,
+		294, 5, 26, 0, 0, 293, 288, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 336,
+		1, 0, 0, 0, 295, 296, 5, 25, 0, 0, 296, 297, 3, 38, 19, 0, 297, 298, 5,
+		26, 0, 0, 298, 336, 1, 0, 0, 0, 299, 301, 5, 21, 0, 0, 300, 302, 3, 56,
+		28, 0, 301, 300, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 304, 1, 0, 0, 0,
+		303, 305, 5, 28, 0, 0, 304, 303, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305,
+		306, 1, 0, 0, 0, 306, 336, 5, 22, 0, 0, 307, 309, 5, 23, 0, 0, 308, 310,
+		3, 62, 31, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 312, 1,
+		0, 0, 0, 311, 313, 5, 28, 0, 0, 312, 311, 1, 0, 0, 0, 312, 313, 1, 0, 0,
+		0, 313, 314, 1, 0, 0, 0, 314, 336, 5, 24, 0, 0, 315, 317, 5, 27, 0, 0,
+		316, 315, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318,
+		323, 5, 47, 0, 0, 319, 320, 5, 27, 0, 0, 320, 322, 5, 47, 0, 0, 321, 319,
+		1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 323, 324, 1, 0,
+		0, 0, 324, 326, 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 326, 328, 5, 23, 0, 0,
+		327, 329, 3, 58, 29, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329,
+		331, 1, 0, 0, 0, 330, 332, 5, 28, 0, 0, 331, 330, 1, 0, 0, 0, 331, 332,
+		1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 336, 5, 24, 0, 0, 334, 336, 3, 66,
+		33, 0, 335, 285, 1, 0, 0, 0, 335, 295, 1, 0, 0, 0, 335, 299, 1, 0, 0, 0,
+		335, 307, 1, 0, 0, 0, 335, 316, 1, 0, 0, 0, 335, 334, 1, 0, 0, 0, 336,
+		53, 1, 0, 0, 0, 337, 342, 3, 38, 19, 0, 338, 339, 5, 28, 0, 0, 339, 341,
+		3, 38, 19, 0, 340, 338, 1, 0, 0, 0, 341, 344, 1, 0, 0, 0, 342, 340, 1,
+		0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 55, 1, 0, 0, 0, 344, 342, 1, 0, 0,
+		0, 345, 350, 3, 64, 32, 0, 346, 347, 5, 28, 0, 0, 347, 349, 3, 64, 32,
+		0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350,
+		351, 1, 0, 0, 0, 351, 57, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 3,
+		60, 30, 0, 354, 355, 5, 32, 0, 0, 355, 363, 3, 38, 19, 0, 356, 357, 5,
+		28, 0, 0, 357, 358, 3, 60, 30, 0, 358, 359, 5, 32, 0, 0, 359, 360, 3, 38,
+		19, 0, 360, 362, 1, 0, 0, 0, 361, 356, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0,
+		363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 59, 1, 0, 0, 0, 365, 363,
+		1, 0, 0, 0, 366, 368, 5, 31, 0, 0, 367, 366, 1, 0, 0, 0, 367, 368, 1, 0,
+		0, 0, 368, 369, 1, 0, 0, 0, 369, 370, 5, 47, 0, 0, 370, 61, 1, 0, 0, 0,
+		371, 372, 3, 64, 32, 0, 372, 373, 5, 32, 0, 0, 373, 381, 3, 38, 19, 0,
+		374, 375, 5, 28, 0, 0, 375, 376, 3, 64, 32, 0, 376, 377, 5, 32, 0, 0, 377,
+		378, 3, 38, 19, 0, 378, 380, 1, 0, 0, 0, 379, 374, 1, 0, 0, 0, 380, 383,
+		1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 63, 1, 0,
+		0, 0, 383, 381, 1, 0, 0, 0, 384, 386, 5, 31, 0, 0, 385, 384, 1, 0, 0, 0,
+		385, 386, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 3, 38, 19, 0, 388,
+		65, 1, 0, 0, 0, 389, 391, 5, 29, 0, 0, 390, 389, 1, 0, 0, 0, 390, 391,
+		1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 404, 5, 43, 0, 0, 393, 404, 5, 44,
+		0, 0, 394, 396, 5, 29, 0, 0, 395, 394, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0,
+		396, 397, 1, 0, 0, 0, 397, 404, 5, 42, 0, 0, 398, 404, 5, 45, 0, 0, 399,
+		404, 5, 46, 0, 0, 400, 404, 5, 37, 0, 0, 401, 404, 5, 38, 0, 0, 402, 404,
+		5, 39, 0, 0, 403, 390, 1, 0, 0, 0, 403, 393, 1, 0, 0, 0, 403, 395, 1, 0,
+		0, 0, 403, 398, 1, 0, 0, 0, 403, 399, 1, 0, 0, 0, 403, 400, 1, 0, 0, 0,
+		403, 401, 1, 0, 0, 0, 403, 402, 1, 0, 0, 0, 404, 67, 1, 0, 0, 0, 51, 79,
+		90, 97, 102, 111, 114, 127, 132, 134, 143, 148, 155, 163, 166, 173, 182,
+		196, 203, 211, 222, 234, 236, 243, 249, 252, 260, 268, 274, 279, 281, 285,
+		290, 293, 301, 304, 309, 312, 316, 323, 328, 331, 335, 342, 350, 363, 367,
+		381, 385, 390, 395, 403,
+	}
+	deserializer := antlr.NewATNDeserializer(nil)
+	staticData.atn = deserializer.Deserialize(staticData.serializedATN)
+	atn := staticData.atn
+	staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
+	decisionToDFA := staticData.decisionToDFA
+	for index, state := range atn.DecisionToState {
+		decisionToDFA[index] = antlr.NewDFA(state, index)
+	}
 }
 
 // CommandsParserInit initializes any static state used to implement CommandsParser. By default the
@@ -259,8 +258,8 @@ func commandsParserInit() {
 // NewCommandsParser(). You can call this function if you wish to initialize the static state ahead
 // of time.
 func CommandsParserInit() {
-  staticData := &CommandsParserStaticData
-  staticData.once.Do(commandsParserInit)
+	staticData := &commandsParserStaticData
+	staticData.once.Do(commandsParserInit)
 }
 
 // NewCommandsParser produces a new parser instance for the optional input antlr.TokenStream.
@@ -268,105 +267,104 @@ func NewCommandsParser(input antlr.Token
 	CommandsParserInit()
 	this := new(CommandsParser)
 	this.BaseParser = antlr.NewBaseParser(input)
-  staticData := &CommandsParserStaticData
-	this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache)
-	this.RuleNames = staticData.RuleNames
-	this.LiteralNames = staticData.LiteralNames
-	this.SymbolicNames = staticData.SymbolicNames
+	staticData := &commandsParserStaticData
+	this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.predictionContextCache)
+	this.RuleNames = staticData.ruleNames
+	this.LiteralNames = staticData.literalNames
+	this.SymbolicNames = staticData.symbolicNames
 	this.GrammarFileName = "Commands.g4"
 
 	return this
 }
 
-
 // CommandsParser tokens.
 const (
-	CommandsParserEOF = antlr.TokenEOF
-	CommandsParserT__0 = 1
-	CommandsParserT__1 = 2
-	CommandsParserT__2 = 3
-	CommandsParserT__3 = 4
-	CommandsParserT__4 = 5
-	CommandsParserT__5 = 6
-	CommandsParserT__6 = 7
-	CommandsParserCOMMAND = 8
-	CommandsParserFLAG = 9
-	CommandsParserARROW = 10
-	CommandsParserEQUAL_ASSIGN = 11
-	CommandsParserEQUALS = 12
-	CommandsParserNOT_EQUALS = 13
-	CommandsParserIN = 14
-	CommandsParserLESS = 15
-	CommandsParserLESS_EQUALS = 16
+	CommandsParserEOF            = antlr.TokenEOF
+	CommandsParserT__0           = 1
+	CommandsParserT__1           = 2
+	CommandsParserT__2           = 3
+	CommandsParserT__3           = 4
+	CommandsParserT__4           = 5
+	CommandsParserT__5           = 6
+	CommandsParserT__6           = 7
+	CommandsParserCOMMAND        = 8
+	CommandsParserFLAG           = 9
+	CommandsParserARROW          = 10
+	CommandsParserEQUAL_ASSIGN   = 11
+	CommandsParserEQUALS         = 12
+	CommandsParserNOT_EQUALS     = 13
+	CommandsParserIN             = 14
+	CommandsParserLESS           = 15
+	CommandsParserLESS_EQUALS    = 16
 	CommandsParserGREATER_EQUALS = 17
-	CommandsParserGREATER = 18
-	CommandsParserLOGICAL_AND = 19
-	CommandsParserLOGICAL_OR = 20
-	CommandsParserLBRACKET = 21
-	CommandsParserRPRACKET = 22
-	CommandsParserLBRACE = 23
-	CommandsParserRBRACE = 24
-	CommandsParserLPAREN = 25
-	CommandsParserRPAREN = 26
-	CommandsParserDOT = 27
-	CommandsParserCOMMA = 28
-	CommandsParserMINUS = 29
-	CommandsParserEXCLAM = 30
-	CommandsParserQUESTIONMARK = 31
-	CommandsParserCOLON = 32
-	CommandsParserPLUS = 33
-	CommandsParserSTAR = 34
-	CommandsParserSLASH = 35
-	CommandsParserPERCENT = 36
-	CommandsParserCEL_TRUE = 37
-	CommandsParserCEL_FALSE = 38
-	CommandsParserNUL = 39
-	CommandsParserWHITESPACE = 40
-	CommandsParserCOMMENT = 41
-	CommandsParserNUM_FLOAT = 42
-	CommandsParserNUM_INT = 43
-	CommandsParserNUM_UINT = 44
-	CommandsParserSTRING = 45
-	CommandsParserBYTES = 46
-	CommandsParserIDENTIFIER = 47
+	CommandsParserGREATER        = 18
+	CommandsParserLOGICAL_AND    = 19
+	CommandsParserLOGICAL_OR     = 20
+	CommandsParserLBRACKET       = 21
+	CommandsParserRPRACKET       = 22
+	CommandsParserLBRACE         = 23
+	CommandsParserRBRACE         = 24
+	CommandsParserLPAREN         = 25
+	CommandsParserRPAREN         = 26
+	CommandsParserDOT            = 27
+	CommandsParserCOMMA          = 28
+	CommandsParserMINUS          = 29
+	CommandsParserEXCLAM         = 30
+	CommandsParserQUESTIONMARK   = 31
+	CommandsParserCOLON          = 32
+	CommandsParserPLUS           = 33
+	CommandsParserSTAR           = 34
+	CommandsParserSLASH          = 35
+	CommandsParserPERCENT        = 36
+	CommandsParserCEL_TRUE       = 37
+	CommandsParserCEL_FALSE      = 38
+	CommandsParserNUL            = 39
+	CommandsParserWHITESPACE     = 40
+	CommandsParserCOMMENT        = 41
+	CommandsParserNUM_FLOAT      = 42
+	CommandsParserNUM_INT        = 43
+	CommandsParserNUM_UINT       = 44
+	CommandsParserSTRING         = 45
+	CommandsParserBYTES          = 46
+	CommandsParserIDENTIFIER     = 47
 )
 
 // CommandsParser rules.
 const (
-	CommandsParserRULE_startCommand = 0
-	CommandsParserRULE_command = 1
-	CommandsParserRULE_help = 2
-	CommandsParserRULE_let = 3
-	CommandsParserRULE_declare = 4
-	CommandsParserRULE_varDecl = 5
-	CommandsParserRULE_fnDecl = 6
-	CommandsParserRULE_param = 7
-	CommandsParserRULE_delete = 8
-	CommandsParserRULE_simple = 9
-	CommandsParserRULE_empty = 10
-	CommandsParserRULE_compile = 11
-	CommandsParserRULE_exprCmd = 12
-	CommandsParserRULE_qualId = 13
-	CommandsParserRULE_startType = 14
-	CommandsParserRULE_type = 15
-	CommandsParserRULE_typeId = 16
-	CommandsParserRULE_typeParamList = 17
-	CommandsParserRULE_start = 18
-	CommandsParserRULE_expr = 19
-	CommandsParserRULE_conditionalOr = 20
-	CommandsParserRULE_conditionalAnd = 21
-	CommandsParserRULE_relation = 22
-	CommandsParserRULE_calc = 23
-	CommandsParserRULE_unary = 24
-	CommandsParserRULE_member = 25
-	CommandsParserRULE_primary = 26
-	CommandsParserRULE_exprList = 27
-	CommandsParserRULE_listInit = 28
+	CommandsParserRULE_startCommand         = 0
+	CommandsParserRULE_command              = 1
+	CommandsParserRULE_help                 = 2
+	CommandsParserRULE_let                  = 3
+	CommandsParserRULE_declare              = 4
+	CommandsParserRULE_varDecl              = 5
+	CommandsParserRULE_fnDecl               = 6
+	CommandsParserRULE_param                = 7
+	CommandsParserRULE_delete               = 8
+	CommandsParserRULE_simple               = 9
+	CommandsParserRULE_empty                = 10
+	CommandsParserRULE_compile              = 11
+	CommandsParserRULE_exprCmd              = 12
+	CommandsParserRULE_qualId               = 13
+	CommandsParserRULE_startType            = 14
+	CommandsParserRULE_type                 = 15
+	CommandsParserRULE_typeId               = 16
+	CommandsParserRULE_typeParamList        = 17
+	CommandsParserRULE_start                = 18
+	CommandsParserRULE_expr                 = 19
+	CommandsParserRULE_conditionalOr        = 20
+	CommandsParserRULE_conditionalAnd       = 21
+	CommandsParserRULE_relation             = 22
+	CommandsParserRULE_calc                 = 23
+	CommandsParserRULE_unary                = 24
+	CommandsParserRULE_member               = 25
+	CommandsParserRULE_primary              = 26
+	CommandsParserRULE_exprList             = 27
+	CommandsParserRULE_listInit             = 28
 	CommandsParserRULE_fieldInitializerList = 29
-	CommandsParserRULE_optField = 30
-	CommandsParserRULE_mapInitializerList = 31
-	CommandsParserRULE_optExpr = 32
-	CommandsParserRULE_literal = 33
+	CommandsParserRULE_optField             = 30
+	CommandsParserRULE_mapInitializerList   = 31
+	CommandsParserRULE_optExpr              = 32
+	CommandsParserRULE_literal              = 33
 )
 
 // IStartCommandContext is an interface to support dynamic dispatch.
@@ -385,28 +383,23 @@ type IStartCommandContext interface {
 }
 
 type StartCommandContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyStartCommandContext() *StartCommandContext {
 	var p = new(StartCommandContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_startCommand
 	return p
 }
 
-func InitEmptyStartCommandContext(p *StartCommandContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_startCommand
-}
-
 func (*StartCommandContext) IsStartCommandContext() {}
 
 func NewStartCommandContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StartCommandContext {
 	var p = new(StartCommandContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_startCommand
@@ -417,10 +410,10 @@ func NewStartCommandContext(parser antlr
 func (s *StartCommandContext) GetParser() antlr.Parser { return s.parser }
 
 func (s *StartCommandContext) Command() ICommandContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICommandContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -444,7 +437,6 @@ func (s *StartCommandContext) ToStringTr
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *StartCommandContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterStartCommand(s)
@@ -467,12 +459,29 @@ func (s *StartCommandContext) Accept(vis
 	}
 }
 
-
-
-
 func (p *CommandsParser) StartCommand() (localctx IStartCommandContext) {
+	this := p
+	_ = this
+
 	localctx = NewStartCommandContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 0, CommandsParserRULE_startCommand)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(68)
@@ -481,28 +490,11 @@ func (p *CommandsParser) StartCommand()
 	{
 		p.SetState(69)
 		p.Match(CommandsParserEOF)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ICommandContext is an interface to support dynamic dispatch.
 type ICommandContext interface {
 	antlr.ParserRuleContext
@@ -525,28 +517,23 @@ type ICommandContext interface {
 }
 
 type CommandContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyCommandContext() *CommandContext {
 	var p = new(CommandContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_command
 	return p
 }
 
-func InitEmptyCommandContext(p *CommandContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_command
-}
-
 func (*CommandContext) IsCommandContext() {}
 
 func NewCommandContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CommandContext {
 	var p = new(CommandContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_command
@@ -557,10 +544,10 @@ func NewCommandContext(parser antlr.Pars
 func (s *CommandContext) GetParser() antlr.Parser { return s.parser }
 
 func (s *CommandContext) Help() IHelpContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IHelpContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -573,10 +560,10 @@ func (s *CommandContext) Help() IHelpCon
 }
 
 func (s *CommandContext) Let() ILetContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ILetContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -589,10 +576,10 @@ func (s *CommandContext) Let() ILetConte
 }
 
 func (s *CommandContext) Declare() IDeclareContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IDeclareContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -605,10 +592,10 @@ func (s *CommandContext) Declare() IDecl
 }
 
 func (s *CommandContext) Delete_() IDeleteContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IDeleteContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -621,10 +608,10 @@ func (s *CommandContext) Delete_() IDele
 }
 
 func (s *CommandContext) Simple() ISimpleContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ISimpleContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -637,10 +624,10 @@ func (s *CommandContext) Simple() ISimpl
 }
 
 func (s *CommandContext) Compile() ICompileContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICompileContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -653,10 +640,10 @@ func (s *CommandContext) Compile() IComp
 }
 
 func (s *CommandContext) ExprCmd() IExprCmdContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprCmdContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -669,10 +656,10 @@ func (s *CommandContext) ExprCmd() IExpr
 }
 
 func (s *CommandContext) Empty() IEmptyContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IEmptyContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -692,7 +679,6 @@ func (s *CommandContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *CommandContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCommand(s)
@@ -715,17 +701,31 @@ func (s *CommandContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) Command() (localctx ICommandContext) {
+	this := p
+	_ = this
+
 	localctx = NewCommandContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 2, CommandsParserRULE_command)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.SetState(79)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 
 	switch p.GetTokenStream().LA(1) {
 	case CommandsParserT__0, CommandsParserT__1:
@@ -735,7 +735,6 @@ func (p *CommandsParser) Command() (loca
 			p.Help()
 		}
 
-
 	case CommandsParserT__2:
 		p.EnterOuterAlt(localctx, 2)
 		{
@@ -743,7 +742,6 @@ func (p *CommandsParser) Command() (loca
 			p.Let()
 		}
 
-
 	case CommandsParserT__3:
 		p.EnterOuterAlt(localctx, 3)
 		{
@@ -751,7 +749,6 @@ func (p *CommandsParser) Command() (loca
 			p.Declare()
 		}
 
-
 	case CommandsParserT__4:
 		p.EnterOuterAlt(localctx, 4)
 		{
@@ -759,7 +756,6 @@ func (p *CommandsParser) Command() (loca
 			p.Delete_()
 		}
 
-
 	case CommandsParserCOMMAND:
 		p.EnterOuterAlt(localctx, 5)
 		{
@@ -767,7 +763,6 @@ func (p *CommandsParser) Command() (loca
 			p.Simple()
 		}
 
-
 	case CommandsParserT__5:
 		p.EnterOuterAlt(localctx, 6)
 		{
@@ -775,7 +770,6 @@ func (p *CommandsParser) Command() (loca
 			p.Compile()
 		}
 
-
 	case CommandsParserT__6, CommandsParserLBRACKET, CommandsParserLBRACE, CommandsParserLPAREN, CommandsParserDOT, CommandsParserMINUS, CommandsParserEXCLAM, CommandsParserCEL_TRUE, CommandsParserCEL_FALSE, CommandsParserNUL, CommandsParserNUM_FLOAT, CommandsParserNUM_INT, CommandsParserNUM_UINT, CommandsParserSTRING, CommandsParserBYTES, CommandsParserIDENTIFIER:
 		p.EnterOuterAlt(localctx, 7)
 		{
@@ -783,7 +777,6 @@ func (p *CommandsParser) Command() (loca
 			p.ExprCmd()
 		}
 
-
 	case CommandsParserEOF:
 		p.EnterOuterAlt(localctx, 8)
 		{
@@ -791,28 +784,13 @@ func (p *CommandsParser) Command() (loca
 			p.Empty()
 		}
 
-
-
 	default:
-		p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
-		goto errorExit
+		panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IHelpContext is an interface to support dynamic dispatch.
 type IHelpContext interface {
 	antlr.ParserRuleContext
@@ -824,28 +802,23 @@ type IHelpContext interface {
 }
 
 type HelpContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyHelpContext() *HelpContext {
 	var p = new(HelpContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_help
 	return p
 }
 
-func InitEmptyHelpContext(p *HelpContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_help
-}
-
 func (*HelpContext) IsHelpContext() {}
 
 func NewHelpContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *HelpContext {
 	var p = new(HelpContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_help
@@ -862,7 +835,6 @@ func (s *HelpContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *HelpContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterHelp(s)
@@ -885,14 +857,30 @@ func (s *HelpContext) Accept(visitor ant
 	}
 }
 
-
-
-
 func (p *CommandsParser) Help() (localctx IHelpContext) {
+	this := p
+	_ = this
+
 	localctx = NewHelpContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 4, CommandsParserRULE_help)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(81)
@@ -906,22 +894,9 @@ func (p *CommandsParser) Help() (localct
 		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ILetContext is an interface to support dynamic dispatch.
 type ILetContext interface {
 	antlr.ParserRuleContext
@@ -938,7 +913,6 @@ type ILetContext interface {
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetVar_ sets the var_ rule contexts.
 	SetVar_(IVarDeclContext)
 
@@ -948,7 +922,6 @@ type ILetContext interface {
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	Expr() IExprContext
 	EQUAL_ASSIGN() antlr.TerminalNode
@@ -961,31 +934,26 @@ type ILetContext interface {
 }
 
 type LetContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	var_ IVarDeclContext 
-	fn IFnDeclContext 
-	e IExprContext 
+	var_   IVarDeclContext
+	fn     IFnDeclContext
+	e      IExprContext
 }
 
 func NewEmptyLetContext() *LetContext {
 	var p = new(LetContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_let
 	return p
 }
 
-func InitEmptyLetContext(p *LetContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_let
-}
-
 func (*LetContext) IsLetContext() {}
 
 func NewLetContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LetContext {
 	var p = new(LetContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_let
@@ -1001,19 +969,17 @@ func (s *LetContext) GetFn() IFnDeclCont
 
 func (s *LetContext) GetE() IExprContext { return s.e }
 
-
 func (s *LetContext) SetVar_(v IVarDeclContext) { s.var_ = v }
 
 func (s *LetContext) SetFn(v IFnDeclContext) { s.fn = v }
 
 func (s *LetContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *LetContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1034,10 +1000,10 @@ func (s *LetContext) ARROW() antlr.Termi
 }
 
 func (s *LetContext) VarDecl() IVarDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IVarDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1050,10 +1016,10 @@ func (s *LetContext) VarDecl() IVarDeclC
 }
 
 func (s *LetContext) FnDecl() IFnDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IFnDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1073,7 +1039,6 @@ func (s *LetContext) ToStringTree(ruleNa
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *LetContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterLet(s)
@@ -1096,95 +1061,75 @@ func (s *LetContext) Accept(visitor antl
 	}
 }
 
-
-
-
 func (p *CommandsParser) Let() (localctx ILetContext) {
+	this := p
+	_ = this
+
 	localctx = NewLetContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 6, CommandsParserRULE_let)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(83)
 		p.Match(CommandsParserT__2)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(90)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 1, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 1, p.GetParserRuleContext()) {
 	case 1:
 		{
 			p.SetState(84)
 
 			var _x = p.VarDecl()
 
-
 			localctx.(*LetContext).var_ = _x
 		}
 		{
 			p.SetState(85)
 			p.Match(CommandsParserEQUAL_ASSIGN)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
-
 	case 2:
 		{
 			p.SetState(87)
 
 			var _x = p.FnDecl()
 
-
 			localctx.(*LetContext).fn = _x
 		}
 		{
 			p.SetState(88)
 			p.Match(CommandsParserARROW)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 	{
 		p.SetState(92)
 
 		var _x = p.Expr()
 
-
 		localctx.(*LetContext).e = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IDeclareContext is an interface to support dynamic dispatch.
 type IDeclareContext interface {
 	antlr.ParserRuleContext
@@ -1198,14 +1143,12 @@ type IDeclareContext interface {
 	// GetFn returns the fn rule contexts.
 	GetFn() IFnDeclContext
 
-
 	// SetVar_ sets the var_ rule contexts.
 	SetVar_(IVarDeclContext)
 
 	// SetFn sets the fn rule contexts.
 	SetFn(IFnDeclContext)
 
-
 	// Getter signatures
 	VarDecl() IVarDeclContext
 	FnDecl() IFnDeclContext
@@ -1215,30 +1158,25 @@ type IDeclareContext interface {
 }
 
 type DeclareContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	var_ IVarDeclContext 
-	fn IFnDeclContext 
+	var_   IVarDeclContext
+	fn     IFnDeclContext
 }
 
 func NewEmptyDeclareContext() *DeclareContext {
 	var p = new(DeclareContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_declare
 	return p
 }
 
-func InitEmptyDeclareContext(p *DeclareContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_declare
-}
-
 func (*DeclareContext) IsDeclareContext() {}
 
 func NewDeclareContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DeclareContext {
 	var p = new(DeclareContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_declare
@@ -1252,17 +1190,15 @@ func (s *DeclareContext) GetVar_() IVarD
 
 func (s *DeclareContext) GetFn() IFnDeclContext { return s.fn }
 
-
 func (s *DeclareContext) SetVar_(v IVarDeclContext) { s.var_ = v }
 
 func (s *DeclareContext) SetFn(v IFnDeclContext) { s.fn = v }
 
-
 func (s *DeclareContext) VarDecl() IVarDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IVarDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1275,10 +1211,10 @@ func (s *DeclareContext) VarDecl() IVarD
 }
 
 func (s *DeclareContext) FnDecl() IFnDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IFnDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1298,7 +1234,6 @@ func (s *DeclareContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *DeclareContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterDeclare(s)
@@ -1321,69 +1256,60 @@ func (s *DeclareContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) Declare() (localctx IDeclareContext) {
+	this := p
+	_ = this
+
 	localctx = NewDeclareContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 8, CommandsParserRULE_declare)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(94)
 		p.Match(CommandsParserT__3)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(97)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 2, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 2, p.GetParserRuleContext()) {
 	case 1:
 		{
 			p.SetState(95)
 
 			var _x = p.VarDecl()
 
-
 			localctx.(*DeclareContext).var_ = _x
 		}
 
-
 	case 2:
 		{
 			p.SetState(96)
 
 			var _x = p.FnDecl()
 
-
 			localctx.(*DeclareContext).fn = _x
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IVarDeclContext is an interface to support dynamic dispatch.
 type IVarDeclContext interface {
 	antlr.ParserRuleContext
@@ -1397,14 +1323,12 @@ type IVarDeclContext interface {
 	// GetT returns the t rule contexts.
 	GetT() ITypeContext
 
-
 	// SetId sets the id rule contexts.
 	SetId(IQualIdContext)
 
 	// SetT sets the t rule contexts.
 	SetT(ITypeContext)
 
-
 	// Getter signatures
 	QualId() IQualIdContext
 	COLON() antlr.TerminalNode
@@ -1415,30 +1339,25 @@ type IVarDeclContext interface {
 }
 
 type VarDeclContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	id IQualIdContext 
-	t ITypeContext 
+	id     IQualIdContext
+	t      ITypeContext
 }
 
 func NewEmptyVarDeclContext() *VarDeclContext {
 	var p = new(VarDeclContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_varDecl
 	return p
 }
 
-func InitEmptyVarDeclContext(p *VarDeclContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_varDecl
-}
-
 func (*VarDeclContext) IsVarDeclContext() {}
 
 func NewVarDeclContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *VarDeclContext {
 	var p = new(VarDeclContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_varDecl
@@ -1452,17 +1371,15 @@ func (s *VarDeclContext) GetId() IQualId
 
 func (s *VarDeclContext) GetT() ITypeContext { return s.t }
 
-
 func (s *VarDeclContext) SetId(v IQualIdContext) { s.id = v }
 
 func (s *VarDeclContext) SetT(v ITypeContext) { s.t = v }
 
-
 func (s *VarDeclContext) QualId() IQualIdContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IQualIdContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1479,10 +1396,10 @@ func (s *VarDeclContext) COLON() antlr.T
 }
 
 func (s *VarDeclContext) Type_() ITypeContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1502,7 +1419,6 @@ func (s *VarDeclContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *VarDeclContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterVarDecl(s)
@@ -1525,67 +1441,60 @@ func (s *VarDeclContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) VarDecl() (localctx IVarDeclContext) {
+	this := p
+	_ = this
+
 	localctx = NewVarDeclContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 10, CommandsParserRULE_varDecl)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(99)
 
 		var _x = p.QualId()
 
-
 		localctx.(*VarDeclContext).id = _x
 	}
 	p.SetState(102)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserCOLON {
 		{
 			p.SetState(100)
 			p.Match(CommandsParserCOLON)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(101)
 
 			var _x = p.Type_()
 
-
 			localctx.(*VarDeclContext).t = _x
 		}
 
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IFnDeclContext is an interface to support dynamic dispatch.
 type IFnDeclContext interface {
 	antlr.ParserRuleContext
@@ -1602,7 +1511,6 @@ type IFnDeclContext interface {
 	// GetRType returns the rType rule contexts.
 	GetRType() ITypeContext
 
-
 	// SetId sets the id rule contexts.
 	SetId(IQualIdContext)
 
@@ -1612,14 +1520,11 @@ type IFnDeclContext interface {
 	// SetRType sets the rType rule contexts.
 	SetRType(ITypeContext)
 
-
 	// GetParams returns the params rule context list.
 	GetParams() []IParamContext
 
-
 	// SetParams sets the params rule context list.
-	SetParams([]IParamContext) 
-
+	SetParams([]IParamContext)
 
 	// Getter signatures
 	LPAREN() antlr.TerminalNode
@@ -1637,32 +1542,27 @@ type IFnDeclContext interface {
 }
 
 type FnDeclContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	id IQualIdContext 
-	_param IParamContext 
+	id     IQualIdContext
+	_param IParamContext
 	params []IParamContext
-	rType ITypeContext 
+	rType  ITypeContext
 }
 
 func NewEmptyFnDeclContext() *FnDeclContext {
 	var p = new(FnDeclContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_fnDecl
 	return p
 }
 
-func InitEmptyFnDeclContext(p *FnDeclContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_fnDecl
-}
-
 func (*FnDeclContext) IsFnDeclContext() {}
 
 func NewFnDeclContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FnDeclContext {
 	var p = new(FnDeclContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_fnDecl
@@ -1678,20 +1578,16 @@ func (s *FnDeclContext) Get_param() IPar
 
 func (s *FnDeclContext) GetRType() ITypeContext { return s.rType }
 
-
 func (s *FnDeclContext) SetId(v IQualIdContext) { s.id = v }
 
 func (s *FnDeclContext) Set_param(v IParamContext) { s._param = v }
 
 func (s *FnDeclContext) SetRType(v ITypeContext) { s.rType = v }
 
-
 func (s *FnDeclContext) GetParams() []IParamContext { return s.params }
 
-
 func (s *FnDeclContext) SetParams(v []IParamContext) { s.params = v }
 
-
 func (s *FnDeclContext) LPAREN() antlr.TerminalNode {
 	return s.GetToken(CommandsParserLPAREN, 0)
 }
@@ -1705,10 +1601,10 @@ func (s *FnDeclContext) COLON() antlr.Te
 }
 
 func (s *FnDeclContext) QualId() IQualIdContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IQualIdContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1721,10 +1617,10 @@ func (s *FnDeclContext) QualId() IQualId
 }
 
 func (s *FnDeclContext) Type_() ITypeContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -1758,12 +1654,12 @@ func (s *FnDeclContext) AllParam() []IPa
 }
 
 func (s *FnDeclContext) Param(i int) IParamContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IParamContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -1793,7 +1689,6 @@ func (s *FnDeclContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *FnDeclContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterFnDecl(s)
@@ -1816,82 +1711,75 @@ func (s *FnDeclContext) Accept(visitor a
 	}
 }
 
-
-
-
 func (p *CommandsParser) FnDecl() (localctx IFnDeclContext) {
+	this := p
+	_ = this
+
 	localctx = NewFnDeclContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 12, CommandsParserRULE_fnDecl)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(104)
 
 		var _x = p.QualId()
 
-
 		localctx.(*FnDeclContext).id = _x
 	}
 	{
 		p.SetState(105)
 		p.Match(CommandsParserLPAREN)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(114)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserIDENTIFIER {
 		{
 			p.SetState(106)
 
 			var _x = p.Param()
 
-
 			localctx.(*FnDeclContext)._param = _x
 		}
 		localctx.(*FnDeclContext).params = append(localctx.(*FnDeclContext).params, localctx.(*FnDeclContext)._param)
 		p.SetState(111)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		for _la == CommandsParserCOMMA {
 			{
 				p.SetState(107)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(108)
 
 				var _x = p.Param()
 
-
 				localctx.(*FnDeclContext)._param = _x
 			}
 			localctx.(*FnDeclContext).params = append(localctx.(*FnDeclContext).params, localctx.(*FnDeclContext)._param)
 
-
 			p.SetState(113)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-		    	goto errorExit
-		    }
 			_la = p.GetTokenStream().LA(1)
 		}
 
@@ -1899,44 +1787,22 @@ func (p *CommandsParser) FnDecl() (local
 	{
 		p.SetState(116)
 		p.Match(CommandsParserRPAREN)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(117)
 		p.Match(CommandsParserCOLON)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(118)
 
 		var _x = p.Type_()
 
-
 		localctx.(*FnDeclContext).rType = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IParamContext is an interface to support dynamic dispatch.
 type IParamContext interface {
 	antlr.ParserRuleContext
@@ -1945,21 +1811,17 @@ type IParamContext interface {
 	GetParser() antlr.Parser
 
 	// GetPid returns the pid token.
-	GetPid() antlr.Token 
-
+	GetPid() antlr.Token
 
 	// SetPid sets the pid token.
-	SetPid(antlr.Token) 
-
+	SetPid(antlr.Token)
 
 	// GetT returns the t rule contexts.
 	GetT() ITypeContext
 
-
 	// SetT sets the t rule contexts.
 	SetT(ITypeContext)
 
-
 	// Getter signatures
 	COLON() antlr.TerminalNode
 	IDENTIFIER() antlr.TerminalNode
@@ -1970,30 +1832,25 @@ type IParamContext interface {
 }
 
 type ParamContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	pid antlr.Token
-	t ITypeContext 
+	pid    antlr.Token
+	t      ITypeContext
 }
 
 func NewEmptyParamContext() *ParamContext {
 	var p = new(ParamContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_param
 	return p
 }
 
-func InitEmptyParamContext(p *ParamContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_param
-}
-
 func (*ParamContext) IsParamContext() {}
 
 func NewParamContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ParamContext {
 	var p = new(ParamContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_param
@@ -2005,16 +1862,12 @@ func (s *ParamContext) GetParser() antlr
 
 func (s *ParamContext) GetPid() antlr.Token { return s.pid }
 
-
 func (s *ParamContext) SetPid(v antlr.Token) { s.pid = v }
 
-
 func (s *ParamContext) GetT() ITypeContext { return s.t }
 
-
 func (s *ParamContext) SetT(v ITypeContext) { s.t = v }
 
-
 func (s *ParamContext) COLON() antlr.TerminalNode {
 	return s.GetToken(CommandsParserCOLON, 0)
 }
@@ -2024,10 +1877,10 @@ func (s *ParamContext) IDENTIFIER() antl
 }
 
 func (s *ParamContext) Type_() ITypeContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2047,7 +1900,6 @@ func (s *ParamContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ParamContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterParam(s)
@@ -2070,12 +1922,29 @@ func (s *ParamContext) Accept(visitor an
 	}
 }
 
-
-
-
 func (p *CommandsParser) Param() (localctx IParamContext) {
+	this := p
+	_ = this
+
 	localctx = NewParamContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 14, CommandsParserRULE_param)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(120)
@@ -2083,44 +1952,22 @@ func (p *CommandsParser) Param() (localc
 		var _m = p.Match(CommandsParserIDENTIFIER)
 
 		localctx.(*ParamContext).pid = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(121)
 		p.Match(CommandsParserCOLON)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(122)
 
 		var _x = p.Type_()
 
-
 		localctx.(*ParamContext).t = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IDeleteContext is an interface to support dynamic dispatch.
 type IDeleteContext interface {
 	antlr.ParserRuleContext
@@ -2134,14 +1981,12 @@ type IDeleteContext interface {
 	// GetFn returns the fn rule contexts.
 	GetFn() IFnDeclContext
 
-
 	// SetVar_ sets the var_ rule contexts.
 	SetVar_(IVarDeclContext)
 
 	// SetFn sets the fn rule contexts.
 	SetFn(IFnDeclContext)
 
-
 	// Getter signatures
 	VarDecl() IVarDeclContext
 	FnDecl() IFnDeclContext
@@ -2151,30 +1996,25 @@ type IDeleteContext interface {
 }
 
 type DeleteContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	var_ IVarDeclContext 
-	fn IFnDeclContext 
+	var_   IVarDeclContext
+	fn     IFnDeclContext
 }
 
 func NewEmptyDeleteContext() *DeleteContext {
 	var p = new(DeleteContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_delete
 	return p
 }
 
-func InitEmptyDeleteContext(p *DeleteContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_delete
-}
-
 func (*DeleteContext) IsDeleteContext() {}
 
 func NewDeleteContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DeleteContext {
 	var p = new(DeleteContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_delete
@@ -2188,17 +2028,15 @@ func (s *DeleteContext) GetVar_() IVarDe
 
 func (s *DeleteContext) GetFn() IFnDeclContext { return s.fn }
 
-
 func (s *DeleteContext) SetVar_(v IVarDeclContext) { s.var_ = v }
 
 func (s *DeleteContext) SetFn(v IFnDeclContext) { s.fn = v }
 
-
 func (s *DeleteContext) VarDecl() IVarDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IVarDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2211,10 +2049,10 @@ func (s *DeleteContext) VarDecl() IVarDe
 }
 
 func (s *DeleteContext) FnDecl() IFnDeclContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IFnDeclContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2234,7 +2072,6 @@ func (s *DeleteContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *DeleteContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterDelete(s)
@@ -2257,69 +2094,60 @@ func (s *DeleteContext) Accept(visitor a
 	}
 }
 
-
-
-
 func (p *CommandsParser) Delete_() (localctx IDeleteContext) {
+	this := p
+	_ = this
+
 	localctx = NewDeleteContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 16, CommandsParserRULE_delete)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(124)
 		p.Match(CommandsParserT__4)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(127)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 6, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 6, p.GetParserRuleContext()) {
 	case 1:
 		{
 			p.SetState(125)
 
 			var _x = p.VarDecl()
 
-
 			localctx.(*DeleteContext).var_ = _x
 		}
 
-
 	case 2:
 		{
 			p.SetState(126)
 
 			var _x = p.FnDecl()
 
-
 			localctx.(*DeleteContext).fn = _x
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ISimpleContext is an interface to support dynamic dispatch.
 type ISimpleContext interface {
 	antlr.ParserRuleContext
@@ -2328,33 +2156,29 @@ type ISimpleContext interface {
 	GetParser() antlr.Parser
 
 	// GetCmd returns the cmd token.
-	GetCmd() antlr.Token 
+	GetCmd() antlr.Token
 
 	// Get_FLAG returns the _FLAG token.
-	Get_FLAG() antlr.Token 
+	Get_FLAG() antlr.Token
 
 	// Get_STRING returns the _STRING token.
-	Get_STRING() antlr.Token 
-
+	Get_STRING() antlr.Token
 
 	// SetCmd sets the cmd token.
-	SetCmd(antlr.Token) 
+	SetCmd(antlr.Token)
 
 	// Set_FLAG sets the _FLAG token.
-	Set_FLAG(antlr.Token) 
+	Set_FLAG(antlr.Token)
 
 	// Set_STRING sets the _STRING token.
-	Set_STRING(antlr.Token) 
-
+	Set_STRING(antlr.Token)
 
 	// GetArgs returns the args token list.
 	GetArgs() []antlr.Token
 
-
 	// SetArgs sets the args token list.
 	SetArgs([]antlr.Token)
 
-
 	// Getter signatures
 	COMMAND() antlr.TerminalNode
 	AllFLAG() []antlr.TerminalNode
@@ -2367,32 +2191,27 @@ type ISimpleContext interface {
 }
 
 type SimpleContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	cmd antlr.Token
-	_FLAG antlr.Token
-	args []antlr.Token
+	*antlr.BaseParserRuleContext
+	parser  antlr.Parser
+	cmd     antlr.Token
+	_FLAG   antlr.Token
+	args    []antlr.Token
 	_STRING antlr.Token
 }
 
 func NewEmptySimpleContext() *SimpleContext {
 	var p = new(SimpleContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_simple
 	return p
 }
 
-func InitEmptySimpleContext(p *SimpleContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_simple
-}
-
 func (*SimpleContext) IsSimpleContext() {}
 
 func NewSimpleContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SimpleContext {
 	var p = new(SimpleContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_simple
@@ -2408,20 +2227,16 @@ func (s *SimpleContext) Get_FLAG() antlr
 
 func (s *SimpleContext) Get_STRING() antlr.Token { return s._STRING }
 
-
 func (s *SimpleContext) SetCmd(v antlr.Token) { s.cmd = v }
 
 func (s *SimpleContext) Set_FLAG(v antlr.Token) { s._FLAG = v }
 
 func (s *SimpleContext) Set_STRING(v antlr.Token) { s._STRING = v }
 
-
 func (s *SimpleContext) GetArgs() []antlr.Token { return s.args }
 
-
 func (s *SimpleContext) SetArgs(v []antlr.Token) { s.args = v }
 
-
 func (s *SimpleContext) COMMAND() antlr.TerminalNode {
 	return s.GetToken(CommandsParserCOMMAND, 0)
 }
@@ -2450,7 +2265,6 @@ func (s *SimpleContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *SimpleContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterSimple(s)
@@ -2473,14 +2287,30 @@ func (s *SimpleContext) Accept(visitor a
 	}
 }
 
-
-
-
 func (p *CommandsParser) Simple() (localctx ISimpleContext) {
+	this := p
+	_ = this
+
 	localctx = NewSimpleContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 18, CommandsParserRULE_simple)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(129)
@@ -2488,25 +2318,14 @@ func (p *CommandsParser) Simple() (local
 		var _m = p.Match(CommandsParserCOMMAND)
 
 		localctx.(*SimpleContext).cmd = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(134)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserFLAG || _la == CommandsParserSTRING {
 		p.SetState(132)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 
 		switch p.GetTokenStream().LA(1) {
 		case CommandsParserFLAG:
@@ -2516,14 +2335,9 @@ func (p *CommandsParser) Simple() (local
 				var _m = p.Match(CommandsParserFLAG)
 
 				localctx.(*SimpleContext)._FLAG = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*SimpleContext).args = append(localctx.(*SimpleContext).args, localctx.(*SimpleContext)._FLAG)
 
-
 		case CommandsParserSTRING:
 			{
 				p.SetState(131)
@@ -2531,44 +2345,21 @@ func (p *CommandsParser) Simple() (local
 				var _m = p.Match(CommandsParserSTRING)
 
 				localctx.(*SimpleContext)._STRING = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*SimpleContext).args = append(localctx.(*SimpleContext).args, localctx.(*SimpleContext)._STRING)
 
-
-
 		default:
-			p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
-			goto errorExit
+			panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
 		}
 
 		p.SetState(136)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IEmptyContext is an interface to support dynamic dispatch.
 type IEmptyContext interface {
 	antlr.ParserRuleContext
@@ -2580,28 +2371,23 @@ type IEmptyContext interface {
 }
 
 type EmptyContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyEmptyContext() *EmptyContext {
 	var p = new(EmptyContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_empty
 	return p
 }
 
-func InitEmptyEmptyContext(p *EmptyContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_empty
-}
-
 func (*EmptyContext) IsEmptyContext() {}
 
 func NewEmptyContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EmptyContext {
 	var p = new(EmptyContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_empty
@@ -2618,7 +2404,6 @@ func (s *EmptyContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *EmptyContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterEmpty(s)
@@ -2641,30 +2426,34 @@ func (s *EmptyContext) Accept(visitor an
 	}
 }
 
-
-
-
 func (p *CommandsParser) Empty() (localctx IEmptyContext) {
+	this := p
+	_ = this
+
 	localctx = NewEmptyContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 20, CommandsParserRULE_empty)
-	p.EnterOuterAlt(localctx, 1)
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
 
+	p.EnterOuterAlt(localctx, 1)
 
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ICompileContext is an interface to support dynamic dispatch.
 type ICompileContext interface {
 	antlr.ParserRuleContext
@@ -2675,11 +2464,9 @@ type ICompileContext interface {
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	Expr() IExprContext
 
@@ -2688,29 +2475,24 @@ type ICompileContext interface {
 }
 
 type CompileContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IExprContext 
+	e      IExprContext
 }
 
 func NewEmptyCompileContext() *CompileContext {
 	var p = new(CompileContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_compile
 	return p
 }
 
-func InitEmptyCompileContext(p *CompileContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_compile
-}
-
 func (*CompileContext) IsCompileContext() {}
 
 func NewCompileContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CompileContext {
 	var p = new(CompileContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_compile
@@ -2722,15 +2504,13 @@ func (s *CompileContext) GetParser() ant
 
 func (s *CompileContext) GetE() IExprContext { return s.e }
 
-
 func (s *CompileContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *CompileContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2750,7 +2530,6 @@ func (s *CompileContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *CompileContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCompile(s)
@@ -2773,46 +2552,45 @@ func (s *CompileContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) Compile() (localctx ICompileContext) {
+	this := p
+	_ = this
+
 	localctx = NewCompileContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 22, CommandsParserRULE_compile)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(139)
 		p.Match(CommandsParserT__5)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(140)
 
 		var _x = p.Expr()
 
-
 		localctx.(*CompileContext).e = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IExprCmdContext is an interface to support dynamic dispatch.
 type IExprCmdContext interface {
 	antlr.ParserRuleContext
@@ -2823,11 +2601,9 @@ type IExprCmdContext interface {
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	Expr() IExprContext
 
@@ -2836,29 +2612,24 @@ type IExprCmdContext interface {
 }
 
 type ExprCmdContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IExprContext 
+	e      IExprContext
 }
 
 func NewEmptyExprCmdContext() *ExprCmdContext {
 	var p = new(ExprCmdContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_exprCmd
 	return p
 }
 
-func InitEmptyExprCmdContext(p *ExprCmdContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_exprCmd
-}
-
 func (*ExprCmdContext) IsExprCmdContext() {}
 
 func NewExprCmdContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprCmdContext {
 	var p = new(ExprCmdContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_exprCmd
@@ -2870,15 +2641,13 @@ func (s *ExprCmdContext) GetParser() ant
 
 func (s *ExprCmdContext) GetE() IExprContext { return s.e }
 
-
 func (s *ExprCmdContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *ExprCmdContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -2898,7 +2667,6 @@ func (s *ExprCmdContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ExprCmdContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterExprCmd(s)
@@ -2921,31 +2689,39 @@ func (s *ExprCmdContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) ExprCmd() (localctx IExprCmdContext) {
+	this := p
+	_ = this
+
 	localctx = NewExprCmdContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 24, CommandsParserRULE_exprCmd)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(143)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserT__6 {
 		{
 			p.SetState(142)
 			p.Match(CommandsParserT__6)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
@@ -2954,26 +2730,12 @@ func (p *CommandsParser) ExprCmd() (loca
 
 		var _x = p.Expr()
 
-
 		localctx.(*ExprCmdContext).e = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IQualIdContext is an interface to support dynamic dispatch.
 type IQualIdContext interface {
 	antlr.ParserRuleContext
@@ -2982,33 +2744,29 @@ type IQualIdContext interface {
 	GetParser() antlr.Parser
 
 	// GetLeadingDot returns the leadingDot token.
-	GetLeadingDot() antlr.Token 
+	GetLeadingDot() antlr.Token
 
 	// GetRid returns the rid token.
-	GetRid() antlr.Token 
+	GetRid() antlr.Token
 
 	// Get_IDENTIFIER returns the _IDENTIFIER token.
-	Get_IDENTIFIER() antlr.Token 
-
+	Get_IDENTIFIER() antlr.Token
 
 	// SetLeadingDot sets the leadingDot token.
-	SetLeadingDot(antlr.Token) 
+	SetLeadingDot(antlr.Token)
 
 	// SetRid sets the rid token.
-	SetRid(antlr.Token) 
+	SetRid(antlr.Token)
 
 	// Set_IDENTIFIER sets the _IDENTIFIER token.
-	Set_IDENTIFIER(antlr.Token) 
-
+	Set_IDENTIFIER(antlr.Token)
 
 	// GetQualifiers returns the qualifiers token list.
 	GetQualifiers() []antlr.Token
 
-
 	// SetQualifiers sets the qualifiers token list.
 	SetQualifiers([]antlr.Token)
 
-
 	// Getter signatures
 	AllIDENTIFIER() []antlr.TerminalNode
 	IDENTIFIER(i int) antlr.TerminalNode
@@ -3020,32 +2778,27 @@ type IQualIdContext interface {
 }
 
 type QualIdContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	leadingDot antlr.Token
-	rid antlr.Token
+	*antlr.BaseParserRuleContext
+	parser      antlr.Parser
+	leadingDot  antlr.Token
+	rid         antlr.Token
 	_IDENTIFIER antlr.Token
-	qualifiers []antlr.Token
+	qualifiers  []antlr.Token
 }
 
 func NewEmptyQualIdContext() *QualIdContext {
 	var p = new(QualIdContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_qualId
 	return p
 }
 
-func InitEmptyQualIdContext(p *QualIdContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_qualId
-}
-
 func (*QualIdContext) IsQualIdContext() {}
 
 func NewQualIdContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QualIdContext {
 	var p = new(QualIdContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_qualId
@@ -3061,20 +2814,16 @@ func (s *QualIdContext) GetRid() antlr.T
 
 func (s *QualIdContext) Get_IDENTIFIER() antlr.Token { return s._IDENTIFIER }
 
-
 func (s *QualIdContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *QualIdContext) SetRid(v antlr.Token) { s.rid = v }
 
 func (s *QualIdContext) Set_IDENTIFIER(v antlr.Token) { s._IDENTIFIER = v }
 
-
 func (s *QualIdContext) GetQualifiers() []antlr.Token { return s.qualifiers }
 
-
 func (s *QualIdContext) SetQualifiers(v []antlr.Token) { s.qualifiers = v }
 
-
 func (s *QualIdContext) AllIDENTIFIER() []antlr.TerminalNode {
 	return s.GetTokens(CommandsParserIDENTIFIER)
 }
@@ -3099,7 +2848,6 @@ func (s *QualIdContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *QualIdContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterQualId(s)
@@ -3122,23 +2870,35 @@ func (s *QualIdContext) Accept(visitor a
 	}
 }
 
-
-
-
 func (p *CommandsParser) QualId() (localctx IQualIdContext) {
+	this := p
+	_ = this
+
 	localctx = NewQualIdContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 26, CommandsParserRULE_qualId)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(148)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserDOT {
 		{
 			p.SetState(147)
@@ -3146,10 +2906,6 @@ func (p *CommandsParser) QualId() (local
 			var _m = p.Match(CommandsParserDOT)
 
 			localctx.(*QualIdContext).leadingDot = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
@@ -3159,27 +2915,15 @@ func (p *CommandsParser) QualId() (local
 		var _m = p.Match(CommandsParserIDENTIFIER)
 
 		localctx.(*QualIdContext).rid = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	p.SetState(155)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserDOT {
 		{
 			p.SetState(151)
 			p.Match(CommandsParserDOT)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(152)
@@ -3187,38 +2931,17 @@ func (p *CommandsParser) QualId() (local
 			var _m = p.Match(CommandsParserIDENTIFIER)
 
 			localctx.(*QualIdContext)._IDENTIFIER = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*QualIdContext).qualifiers = append(localctx.(*QualIdContext).qualifiers, localctx.(*QualIdContext)._IDENTIFIER)
 
-
 		p.SetState(157)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IStartTypeContext is an interface to support dynamic dispatch.
 type IStartTypeContext interface {
 	antlr.ParserRuleContext
@@ -3229,11 +2952,9 @@ type IStartTypeContext interface {
 	// GetT returns the t rule contexts.
 	GetT() ITypeContext
 
-
 	// SetT sets the t rule contexts.
 	SetT(ITypeContext)
 
-
 	// Getter signatures
 	EOF() antlr.TerminalNode
 	Type_() ITypeContext
@@ -3243,29 +2964,24 @@ type IStartTypeContext interface {
 }
 
 type StartTypeContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	t ITypeContext 
+	t      ITypeContext
 }
 
 func NewEmptyStartTypeContext() *StartTypeContext {
 	var p = new(StartTypeContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_startType
 	return p
 }
 
-func InitEmptyStartTypeContext(p *StartTypeContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_startType
-}
-
 func (*StartTypeContext) IsStartTypeContext() {}
 
 func NewStartTypeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StartTypeContext {
 	var p = new(StartTypeContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_startType
@@ -3277,19 +2993,17 @@ func (s *StartTypeContext) GetParser() a
 
 func (s *StartTypeContext) GetT() ITypeContext { return s.t }
 
-
 func (s *StartTypeContext) SetT(v ITypeContext) { s.t = v }
 
-
 func (s *StartTypeContext) EOF() antlr.TerminalNode {
 	return s.GetToken(CommandsParserEOF, 0)
 }
 
 func (s *StartTypeContext) Type_() ITypeContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3309,7 +3023,6 @@ func (s *StartTypeContext) ToStringTree(
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *StartTypeContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterStartType(s)
@@ -3332,46 +3045,45 @@ func (s *StartTypeContext) Accept(visito
 	}
 }
 
-
-
-
 func (p *CommandsParser) StartType() (localctx IStartTypeContext) {
+	this := p
+	_ = this
+
 	localctx = NewStartTypeContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 28, CommandsParserRULE_startType)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(158)
 
 		var _x = p.Type_()
 
-
 		localctx.(*StartTypeContext).t = _x
 	}
 	{
 		p.SetState(159)
 		p.Match(CommandsParserEOF)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ITypeContext is an interface to support dynamic dispatch.
 type ITypeContext interface {
 	antlr.ParserRuleContext
@@ -3385,14 +3097,12 @@ type ITypeContext interface {
 	// GetParams returns the params rule contexts.
 	GetParams() ITypeParamListContext
 
-
 	// SetId sets the id rule contexts.
 	SetId(ITypeIdContext)
 
 	// SetParams sets the params rule contexts.
 	SetParams(ITypeParamListContext)
 
-
 	// Getter signatures
 	TypeId() ITypeIdContext
 	TypeParamList() ITypeParamListContext
@@ -3402,30 +3112,25 @@ type ITypeContext interface {
 }
 
 type TypeContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	id ITypeIdContext 
-	params ITypeParamListContext 
+	id     ITypeIdContext
+	params ITypeParamListContext
 }
 
 func NewEmptyTypeContext() *TypeContext {
 	var p = new(TypeContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_type
 	return p
 }
 
-func InitEmptyTypeContext(p *TypeContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_type
-}
-
 func (*TypeContext) IsTypeContext() {}
 
 func NewTypeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeContext {
 	var p = new(TypeContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_type
@@ -3439,17 +3144,15 @@ func (s *TypeContext) GetId() ITypeIdCon
 
 func (s *TypeContext) GetParams() ITypeParamListContext { return s.params }
 
-
 func (s *TypeContext) SetId(v ITypeIdContext) { s.id = v }
 
 func (s *TypeContext) SetParams(v ITypeParamListContext) { s.params = v }
 
-
 func (s *TypeContext) TypeId() ITypeIdContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeIdContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3462,10 +3165,10 @@ func (s *TypeContext) TypeId() ITypeIdCo
 }
 
 func (s *TypeContext) TypeParamList() ITypeParamListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeParamListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -3485,7 +3188,6 @@ func (s *TypeContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *TypeContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterType(s)
@@ -3508,59 +3210,56 @@ func (s *TypeContext) Accept(visitor ant
 	}
 }
 
-
-
-
 func (p *CommandsParser) Type_() (localctx ITypeContext) {
+	this := p
+	_ = this
+
 	localctx = NewTypeContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 30, CommandsParserRULE_type)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(161)
 
 		var _x = p.TypeId()
 
-
 		localctx.(*TypeContext).id = _x
 	}
 	p.SetState(163)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserLPAREN {
 		{
 			p.SetState(162)
 
 			var _x = p.TypeParamList()
 
-
 			localctx.(*TypeContext).params = _x
 		}
 
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ITypeIdContext is an interface to support dynamic dispatch.
 type ITypeIdContext interface {
 	antlr.ParserRuleContext
@@ -3569,33 +3268,29 @@ type ITypeIdContext interface {
 	GetParser() antlr.Parser
 
 	// GetLeadingDot returns the leadingDot token.
-	GetLeadingDot() antlr.Token 
+	GetLeadingDot() antlr.Token
 
 	// GetId returns the id token.
-	GetId() antlr.Token 
+	GetId() antlr.Token
 
 	// Get_IDENTIFIER returns the _IDENTIFIER token.
-	Get_IDENTIFIER() antlr.Token 
-
+	Get_IDENTIFIER() antlr.Token
 
 	// SetLeadingDot sets the leadingDot token.
-	SetLeadingDot(antlr.Token) 
+	SetLeadingDot(antlr.Token)
 
 	// SetId sets the id token.
-	SetId(antlr.Token) 
+	SetId(antlr.Token)
 
 	// Set_IDENTIFIER sets the _IDENTIFIER token.
-	Set_IDENTIFIER(antlr.Token) 
-
+	Set_IDENTIFIER(antlr.Token)
 
 	// GetQualifiers returns the qualifiers token list.
 	GetQualifiers() []antlr.Token
 
-
 	// SetQualifiers sets the qualifiers token list.
 	SetQualifiers([]antlr.Token)
 
-
 	// Getter signatures
 	AllIDENTIFIER() []antlr.TerminalNode
 	IDENTIFIER(i int) antlr.TerminalNode
@@ -3608,32 +3303,27 @@ type ITypeIdContext interface {
 }
 
 type TypeIdContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	leadingDot antlr.Token
-	id antlr.Token
+	*antlr.BaseParserRuleContext
+	parser      antlr.Parser
+	leadingDot  antlr.Token
+	id          antlr.Token
 	_IDENTIFIER antlr.Token
-	qualifiers []antlr.Token
+	qualifiers  []antlr.Token
 }
 
 func NewEmptyTypeIdContext() *TypeIdContext {
 	var p = new(TypeIdContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_typeId
 	return p
 }
 
-func InitEmptyTypeIdContext(p *TypeIdContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_typeId
-}
-
 func (*TypeIdContext) IsTypeIdContext() {}
 
 func NewTypeIdContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeIdContext {
 	var p = new(TypeIdContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_typeId
@@ -3649,20 +3339,16 @@ func (s *TypeIdContext) GetId() antlr.To
 
 func (s *TypeIdContext) Get_IDENTIFIER() antlr.Token { return s._IDENTIFIER }
 
-
 func (s *TypeIdContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *TypeIdContext) SetId(v antlr.Token) { s.id = v }
 
 func (s *TypeIdContext) Set_IDENTIFIER(v antlr.Token) { s._IDENTIFIER = v }
 
-
 func (s *TypeIdContext) GetQualifiers() []antlr.Token { return s.qualifiers }
 
-
 func (s *TypeIdContext) SetQualifiers(v []antlr.Token) { s.qualifiers = v }
 
-
 func (s *TypeIdContext) AllIDENTIFIER() []antlr.TerminalNode {
 	return s.GetTokens(CommandsParserIDENTIFIER)
 }
@@ -3691,7 +3377,6 @@ func (s *TypeIdContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *TypeIdContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterTypeId(s)
@@ -3714,23 +3399,35 @@ func (s *TypeIdContext) Accept(visitor a
 	}
 }
 
-
-
-
 func (p *CommandsParser) TypeId() (localctx ITypeIdContext) {
+	this := p
+	_ = this
+
 	localctx = NewTypeIdContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 32, CommandsParserRULE_typeId)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(166)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserDOT {
 		{
 			p.SetState(165)
@@ -3738,10 +3435,6 @@ func (p *CommandsParser) TypeId() (local
 			var _m = p.Match(CommandsParserDOT)
 
 			localctx.(*TypeIdContext).leadingDot = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
@@ -3765,20 +3458,12 @@ func (p *CommandsParser) TypeId() (local
 	}
 	p.SetState(173)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserDOT {
 		{
 			p.SetState(169)
 			p.Match(CommandsParserDOT)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(170)
@@ -3786,38 +3471,17 @@ func (p *CommandsParser) TypeId() (local
 			var _m = p.Match(CommandsParserIDENTIFIER)
 
 			localctx.(*TypeIdContext)._IDENTIFIER = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*TypeIdContext).qualifiers = append(localctx.(*TypeIdContext).qualifiers, localctx.(*TypeIdContext)._IDENTIFIER)
 
-
 		p.SetState(175)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ITypeParamListContext is an interface to support dynamic dispatch.
 type ITypeParamListContext interface {
 	antlr.ParserRuleContext
@@ -3828,18 +3492,14 @@ type ITypeParamListContext interface {
 	// Get_type returns the _type rule contexts.
 	Get_type() ITypeContext
 
-
 	// Set_type sets the _type rule contexts.
 	Set_type(ITypeContext)
 
-
 	// GetTypes returns the types rule context list.
 	GetTypes() []ITypeContext
 
-
 	// SetTypes sets the types rule context list.
-	SetTypes([]ITypeContext) 
-
+	SetTypes([]ITypeContext)
 
 	// Getter signatures
 	LPAREN() antlr.TerminalNode
@@ -3854,30 +3514,25 @@ type ITypeParamListContext interface {
 }
 
 type TypeParamListContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	_type ITypeContext 
-	types []ITypeContext
+	_type  ITypeContext
+	types  []ITypeContext
 }
 
 func NewEmptyTypeParamListContext() *TypeParamListContext {
 	var p = new(TypeParamListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_typeParamList
 	return p
 }
 
-func InitEmptyTypeParamListContext(p *TypeParamListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_typeParamList
-}
-
 func (*TypeParamListContext) IsTypeParamListContext() {}
 
 func NewTypeParamListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeParamListContext {
 	var p = new(TypeParamListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_typeParamList
@@ -3889,16 +3544,12 @@ func (s *TypeParamListContext) GetParser
 
 func (s *TypeParamListContext) Get_type() ITypeContext { return s._type }
 
-
 func (s *TypeParamListContext) Set_type(v ITypeContext) { s._type = v }
 
-
 func (s *TypeParamListContext) GetTypes() []ITypeContext { return s.types }
 
-
 func (s *TypeParamListContext) SetTypes(v []ITypeContext) { s.types = v }
 
-
 func (s *TypeParamListContext) LPAREN() antlr.TerminalNode {
 	return s.GetToken(CommandsParserLPAREN, 0)
 }
@@ -3929,12 +3580,12 @@ func (s *TypeParamListContext) AllType_(
 }
 
 func (s *TypeParamListContext) Type_(i int) ITypeContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ITypeContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -3964,7 +3615,6 @@ func (s *TypeParamListContext) ToStringT
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *TypeParamListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterTypeParamList(s)
@@ -3987,92 +3637,73 @@ func (s *TypeParamListContext) Accept(vi
 	}
 }
 
-
-
-
 func (p *CommandsParser) TypeParamList() (localctx ITypeParamListContext) {
+	this := p
+	_ = this
+
 	localctx = NewTypeParamListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 34, CommandsParserRULE_typeParamList)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(176)
 		p.Match(CommandsParserLPAREN)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	{
 		p.SetState(177)
 
 		var _x = p.Type_()
 
-
 		localctx.(*TypeParamListContext)._type = _x
 	}
 	localctx.(*TypeParamListContext).types = append(localctx.(*TypeParamListContext).types, localctx.(*TypeParamListContext)._type)
 	p.SetState(182)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserCOMMA {
 		{
 			p.SetState(178)
 			p.Match(CommandsParserCOMMA)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(179)
 
 			var _x = p.Type_()
 
-
 			localctx.(*TypeParamListContext)._type = _x
 		}
 		localctx.(*TypeParamListContext).types = append(localctx.(*TypeParamListContext).types, localctx.(*TypeParamListContext)._type)
 
-
 		p.SetState(184)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 	{
 		p.SetState(185)
 		p.Match(CommandsParserRPAREN)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IStartContext is an interface to support dynamic dispatch.
 type IStartContext interface {
 	antlr.ParserRuleContext
@@ -4083,11 +3714,9 @@ type IStartContext interface {
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	EOF() antlr.TerminalNode
 	Expr() IExprContext
@@ -4097,29 +3726,24 @@ type IStartContext interface {
 }
 
 type StartContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IExprContext 
+	e      IExprContext
 }
 
 func NewEmptyStartContext() *StartContext {
 	var p = new(StartContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_start
 	return p
 }
 
-func InitEmptyStartContext(p *StartContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_start
-}
-
 func (*StartContext) IsStartContext() {}
 
 func NewStartContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StartContext {
 	var p = new(StartContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_start
@@ -4131,19 +3755,17 @@ func (s *StartContext) GetParser() antlr
 
 func (s *StartContext) GetE() IExprContext { return s.e }
 
-
 func (s *StartContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *StartContext) EOF() antlr.TerminalNode {
 	return s.GetToken(CommandsParserEOF, 0)
 }
 
 func (s *StartContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -4163,7 +3785,6 @@ func (s *StartContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *StartContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterStart(s)
@@ -4186,46 +3807,45 @@ func (s *StartContext) Accept(visitor an
 	}
 }
 
+func (p *CommandsParser) Start() (localctx IStartContext) {
+	this := p
+	_ = this
 
-
-
-func (p *CommandsParser) Start_() (localctx IStartContext) {
 	localctx = NewStartContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 36, CommandsParserRULE_start)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(187)
 
 		var _x = p.Expr()
 
-
 		localctx.(*StartContext).e = _x
 	}
 	{
 		p.SetState(188)
 		p.Match(CommandsParserEOF)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IExprContext is an interface to support dynamic dispatch.
 type IExprContext interface {
 	antlr.ParserRuleContext
@@ -4234,12 +3854,10 @@ type IExprContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// GetE returns the e rule contexts.
 	GetE() IConditionalOrContext
@@ -4250,7 +3868,6 @@ type IExprContext interface {
 	// GetE2 returns the e2 rule contexts.
 	GetE2() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IConditionalOrContext)
 
@@ -4260,7 +3877,6 @@ type IExprContext interface {
 	// SetE2 sets the e2 rule contexts.
 	SetE2(IExprContext)
 
-
 	// Getter signatures
 	AllConditionalOr() []IConditionalOrContext
 	ConditionalOr(i int) IConditionalOrContext
@@ -4273,32 +3889,27 @@ type IExprContext interface {
 }
 
 type ExprContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	e IConditionalOrContext 
-	op antlr.Token
-	e1 IConditionalOrContext 
-	e2 IExprContext 
+	e      IConditionalOrContext
+	op     antlr.Token
+	e1     IConditionalOrContext
+	e2     IExprContext
 }
 
 func NewEmptyExprContext() *ExprContext {
 	var p = new(ExprContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_expr
 	return p
 }
 
-func InitEmptyExprContext(p *ExprContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_expr
-}
-
 func (*ExprContext) IsExprContext() {}
 
 func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext {
 	var p = new(ExprContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_expr
@@ -4310,24 +3921,20 @@ func (s *ExprContext) GetParser() antlr.
 
 func (s *ExprContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *ExprContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *ExprContext) GetE() IConditionalOrContext { return s.e }
 
 func (s *ExprContext) GetE1() IConditionalOrContext { return s.e1 }
 
 func (s *ExprContext) GetE2() IExprContext { return s.e2 }
 
-
 func (s *ExprContext) SetE(v IConditionalOrContext) { s.e = v }
 
 func (s *ExprContext) SetE1(v IConditionalOrContext) { s.e1 = v }
 
 func (s *ExprContext) SetE2(v IExprContext) { s.e2 = v }
 
-
 func (s *ExprContext) AllConditionalOr() []IConditionalOrContext {
 	children := s.GetChildren()
 	len := 0
@@ -4350,12 +3957,12 @@ func (s *ExprContext) AllConditionalOr()
 }
 
 func (s *ExprContext) ConditionalOr(i int) IConditionalOrContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IConditionalOrContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4378,10 +3985,10 @@ func (s *ExprContext) QUESTIONMARK() ant
 }
 
 func (s *ExprContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -4401,7 +4008,6 @@ func (s *ExprContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterExpr(s)
@@ -4424,31 +4030,42 @@ func (s *ExprContext) Accept(visitor ant
 	}
 }
 
-
-
-
 func (p *CommandsParser) Expr() (localctx IExprContext) {
+	this := p
+	_ = this
+
 	localctx = NewExprContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 38, CommandsParserRULE_expr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(190)
 
 		var _x = p.ConditionalOr()
 
-
 		localctx.(*ExprContext).e = _x
 	}
 	p.SetState(196)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserQUESTIONMARK {
 		{
 			p.SetState(191)
@@ -4456,54 +4073,31 @@ func (p *CommandsParser) Expr() (localct
 			var _m = p.Match(CommandsParserQUESTIONMARK)
 
 			localctx.(*ExprContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(192)
 
 			var _x = p.ConditionalOr()
 
-
 			localctx.(*ExprContext).e1 = _x
 		}
 		{
 			p.SetState(193)
 			p.Match(CommandsParserCOLON)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(194)
 
 			var _x = p.Expr()
 
-
 			localctx.(*ExprContext).e2 = _x
 		}
 
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IConditionalOrContext is an interface to support dynamic dispatch.
 type IConditionalOrContext interface {
 	antlr.ParserRuleContext
@@ -4512,42 +4106,34 @@ type IConditionalOrContext interface {
 	GetParser() antlr.Parser
 
 	// GetS20 returns the s20 token.
-	GetS20() antlr.Token 
-
+	GetS20() antlr.Token
 
 	// SetS20 sets the s20 token.
-	SetS20(antlr.Token) 
-
+	SetS20(antlr.Token)
 
 	// GetOps returns the ops token list.
 	GetOps() []antlr.Token
 
-
 	// SetOps sets the ops token list.
 	SetOps([]antlr.Token)
 
-
 	// GetE returns the e rule contexts.
 	GetE() IConditionalAndContext
 
 	// Get_conditionalAnd returns the _conditionalAnd rule contexts.
 	Get_conditionalAnd() IConditionalAndContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IConditionalAndContext)
 
 	// Set_conditionalAnd sets the _conditionalAnd rule contexts.
 	Set_conditionalAnd(IConditionalAndContext)
 
-
 	// GetE1 returns the e1 rule context list.
 	GetE1() []IConditionalAndContext
 
-
 	// SetE1 sets the e1 rule context list.
-	SetE1([]IConditionalAndContext) 
-
+	SetE1([]IConditionalAndContext)
 
 	// Getter signatures
 	AllConditionalAnd() []IConditionalAndContext
@@ -4560,33 +4146,28 @@ type IConditionalOrContext interface {
 }
 
 type ConditionalOrContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	e IConditionalAndContext 
-	s20 antlr.Token
-	ops []antlr.Token
-	_conditionalAnd IConditionalAndContext 
-	e1 []IConditionalAndContext
+	*antlr.BaseParserRuleContext
+	parser          antlr.Parser
+	e               IConditionalAndContext
+	s20             antlr.Token
+	ops             []antlr.Token
+	_conditionalAnd IConditionalAndContext
+	e1              []IConditionalAndContext
 }
 
 func NewEmptyConditionalOrContext() *ConditionalOrContext {
 	var p = new(ConditionalOrContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_conditionalOr
 	return p
 }
 
-func InitEmptyConditionalOrContext(p *ConditionalOrContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_conditionalOr
-}
-
 func (*ConditionalOrContext) IsConditionalOrContext() {}
 
 func NewConditionalOrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ConditionalOrContext {
 	var p = new(ConditionalOrContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_conditionalOr
@@ -4598,32 +4179,24 @@ func (s *ConditionalOrContext) GetParser
 
 func (s *ConditionalOrContext) GetS20() antlr.Token { return s.s20 }
 
-
 func (s *ConditionalOrContext) SetS20(v antlr.Token) { s.s20 = v }
 
-
 func (s *ConditionalOrContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *ConditionalOrContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *ConditionalOrContext) GetE() IConditionalAndContext { return s.e }
 
 func (s *ConditionalOrContext) Get_conditionalAnd() IConditionalAndContext { return s._conditionalAnd }
 
-
 func (s *ConditionalOrContext) SetE(v IConditionalAndContext) { s.e = v }
 
 func (s *ConditionalOrContext) Set_conditionalAnd(v IConditionalAndContext) { s._conditionalAnd = v }
 
-
 func (s *ConditionalOrContext) GetE1() []IConditionalAndContext { return s.e1 }
 
-
 func (s *ConditionalOrContext) SetE1(v []IConditionalAndContext) { s.e1 = v }
 
-
 func (s *ConditionalOrContext) AllConditionalAnd() []IConditionalAndContext {
 	children := s.GetChildren()
 	len := 0
@@ -4646,12 +4219,12 @@ func (s *ConditionalOrContext) AllCondit
 }
 
 func (s *ConditionalOrContext) ConditionalAnd(i int) IConditionalAndContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IConditionalAndContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4681,7 +4254,6 @@ func (s *ConditionalOrContext) ToStringT
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ConditionalOrContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterConditionalOr(s)
@@ -4704,31 +4276,42 @@ func (s *ConditionalOrContext) Accept(vi
 	}
 }
 
-
-
-
 func (p *CommandsParser) ConditionalOr() (localctx IConditionalOrContext) {
+	this := p
+	_ = this
+
 	localctx = NewConditionalOrContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 40, CommandsParserRULE_conditionalOr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(198)
 
 		var _x = p.ConditionalAnd()
 
-
 		localctx.(*ConditionalOrContext).e = _x
 	}
 	p.SetState(203)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserLOGICAL_OR {
 		{
 			p.SetState(199)
@@ -4736,10 +4319,6 @@ func (p *CommandsParser) ConditionalOr()
 			var _m = p.Match(CommandsParserLOGICAL_OR)
 
 			localctx.(*ConditionalOrContext).s20 = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*ConditionalOrContext).ops = append(localctx.(*ConditionalOrContext).ops, localctx.(*ConditionalOrContext).s20)
 		{
@@ -4747,36 +4326,18 @@ func (p *CommandsParser) ConditionalOr()
 
 			var _x = p.ConditionalAnd()
 
-
 			localctx.(*ConditionalOrContext)._conditionalAnd = _x
 		}
 		localctx.(*ConditionalOrContext).e1 = append(localctx.(*ConditionalOrContext).e1, localctx.(*ConditionalOrContext)._conditionalAnd)
 
-
 		p.SetState(205)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IConditionalAndContext is an interface to support dynamic dispatch.
 type IConditionalAndContext interface {
 	antlr.ParserRuleContext
@@ -4785,42 +4346,34 @@ type IConditionalAndContext interface {
 	GetParser() antlr.Parser
 
 	// GetS19 returns the s19 token.
-	GetS19() antlr.Token 
-
+	GetS19() antlr.Token
 
 	// SetS19 sets the s19 token.
-	SetS19(antlr.Token) 
-
+	SetS19(antlr.Token)
 
 	// GetOps returns the ops token list.
 	GetOps() []antlr.Token
 
-
 	// SetOps sets the ops token list.
 	SetOps([]antlr.Token)
 
-
 	// GetE returns the e rule contexts.
 	GetE() IRelationContext
 
 	// Get_relation returns the _relation rule contexts.
 	Get_relation() IRelationContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IRelationContext)
 
 	// Set_relation sets the _relation rule contexts.
 	Set_relation(IRelationContext)
 
-
 	// GetE1 returns the e1 rule context list.
 	GetE1() []IRelationContext
 
-
 	// SetE1 sets the e1 rule context list.
-	SetE1([]IRelationContext) 
-
+	SetE1([]IRelationContext)
 
 	// Getter signatures
 	AllRelation() []IRelationContext
@@ -4833,33 +4386,28 @@ type IConditionalAndContext interface {
 }
 
 type ConditionalAndContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	e IRelationContext 
-	s19 antlr.Token
-	ops []antlr.Token
-	_relation IRelationContext 
-	e1 []IRelationContext
+	*antlr.BaseParserRuleContext
+	parser    antlr.Parser
+	e         IRelationContext
+	s19       antlr.Token
+	ops       []antlr.Token
+	_relation IRelationContext
+	e1        []IRelationContext
 }
 
 func NewEmptyConditionalAndContext() *ConditionalAndContext {
 	var p = new(ConditionalAndContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_conditionalAnd
 	return p
 }
 
-func InitEmptyConditionalAndContext(p *ConditionalAndContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_conditionalAnd
-}
-
 func (*ConditionalAndContext) IsConditionalAndContext() {}
 
 func NewConditionalAndContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ConditionalAndContext {
 	var p = new(ConditionalAndContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_conditionalAnd
@@ -4871,32 +4419,24 @@ func (s *ConditionalAndContext) GetParse
 
 func (s *ConditionalAndContext) GetS19() antlr.Token { return s.s19 }
 
-
 func (s *ConditionalAndContext) SetS19(v antlr.Token) { s.s19 = v }
 
-
 func (s *ConditionalAndContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *ConditionalAndContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *ConditionalAndContext) GetE() IRelationContext { return s.e }
 
 func (s *ConditionalAndContext) Get_relation() IRelationContext { return s._relation }
 
-
 func (s *ConditionalAndContext) SetE(v IRelationContext) { s.e = v }
 
 func (s *ConditionalAndContext) Set_relation(v IRelationContext) { s._relation = v }
 
-
 func (s *ConditionalAndContext) GetE1() []IRelationContext { return s.e1 }
 
-
 func (s *ConditionalAndContext) SetE1(v []IRelationContext) { s.e1 = v }
 
-
 func (s *ConditionalAndContext) AllRelation() []IRelationContext {
 	children := s.GetChildren()
 	len := 0
@@ -4919,12 +4459,12 @@ func (s *ConditionalAndContext) AllRelat
 }
 
 func (s *ConditionalAndContext) Relation(i int) IRelationContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IRelationContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -4954,7 +4494,6 @@ func (s *ConditionalAndContext) ToString
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ConditionalAndContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterConditionalAnd(s)
@@ -4977,14 +4516,30 @@ func (s *ConditionalAndContext) Accept(v
 	}
 }
 
-
-
-
 func (p *CommandsParser) ConditionalAnd() (localctx IConditionalAndContext) {
+	this := p
+	_ = this
+
 	localctx = NewConditionalAndContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 42, CommandsParserRULE_conditionalAnd)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(206)
@@ -4995,12 +4550,8 @@ func (p *CommandsParser) ConditionalAnd(
 	}
 	p.SetState(211)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserLOGICAL_AND {
 		{
 			p.SetState(207)
@@ -5008,10 +4559,6 @@ func (p *CommandsParser) ConditionalAnd(
 			var _m = p.Match(CommandsParserLOGICAL_AND)
 
 			localctx.(*ConditionalAndContext).s19 = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*ConditionalAndContext).ops = append(localctx.(*ConditionalAndContext).ops, localctx.(*ConditionalAndContext).s19)
 		{
@@ -5023,31 +4570,14 @@ func (p *CommandsParser) ConditionalAnd(
 		}
 		localctx.(*ConditionalAndContext).e1 = append(localctx.(*ConditionalAndContext).e1, localctx.(*ConditionalAndContext)._relation)
 
-
 		p.SetState(213)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IRelationContext is an interface to support dynamic dispatch.
 type IRelationContext interface {
 	antlr.ParserRuleContext
@@ -5056,12 +4586,10 @@ type IRelationContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// Getter signatures
 	Calc() ICalcContext
@@ -5080,29 +4608,24 @@ type IRelationContext interface {
 }
 
 type RelationContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	op antlr.Token
+	op     antlr.Token
 }
 
 func NewEmptyRelationContext() *RelationContext {
 	var p = new(RelationContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_relation
 	return p
 }
 
-func InitEmptyRelationContext(p *RelationContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_relation
-}
-
 func (*RelationContext) IsRelationContext() {}
 
 func NewRelationContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *RelationContext {
 	var p = new(RelationContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_relation
@@ -5114,15 +4637,13 @@ func (s *RelationContext) GetParser() an
 
 func (s *RelationContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *RelationContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *RelationContext) Calc() ICalcContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICalcContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5156,12 +4677,12 @@ func (s *RelationContext) AllRelation()
 }
 
 func (s *RelationContext) Relation(i int) IRelationContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IRelationContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -5211,7 +4732,6 @@ func (s *RelationContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *RelationContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterRelation(s)
@@ -5234,17 +4754,15 @@ func (s *RelationContext) Accept(visitor
 	}
 }
 
-
-
-
-
 func (p *CommandsParser) Relation() (localctx IRelationContext) {
 	return p.relation(0)
 }
 
 func (p *CommandsParser) relation(_p int) (localctx IRelationContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewRelationContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx IRelationContext = localctx
@@ -5253,6 +4771,22 @@ func (p *CommandsParser) relation(_p int
 	p.EnterRecursionRule(localctx, 44, CommandsParserRULE_relation, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -5264,13 +4798,8 @@ func (p *CommandsParser) relation(_p int
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(222)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 19, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 19, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -5282,8 +4811,7 @@ func (p *CommandsParser) relation(_p int
 			p.SetState(217)
 
 			if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-				p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-				goto errorExit
+				panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 			}
 			{
 				p.SetState(218)
@@ -5294,7 +4822,7 @@ func (p *CommandsParser) relation(_p int
 
 				_la = p.GetTokenStream().LA(1)
 
-				if !(((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 520192) != 0)) {
+				if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&520192) != 0) {
 					var _ri = p.GetErrorHandler().RecoverInline(p)
 
 					localctx.(*RelationContext).op = _ri
@@ -5308,35 +4836,15 @@ func (p *CommandsParser) relation(_p int
 				p.relation(2)
 			}
 
-
 		}
 		p.SetState(224)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 19, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 19, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ICalcContext is an interface to support dynamic dispatch.
 type ICalcContext interface {
 	antlr.ParserRuleContext
@@ -5345,12 +4853,10 @@ type ICalcContext interface {
 	GetParser() antlr.Parser
 
 	// GetOp returns the op token.
-	GetOp() antlr.Token 
-
+	GetOp() antlr.Token
 
 	// SetOp sets the op token.
-	SetOp(antlr.Token) 
-
+	SetOp(antlr.Token)
 
 	// Getter signatures
 	Unary() IUnaryContext
@@ -5367,29 +4873,24 @@ type ICalcContext interface {
 }
 
 type CalcContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	op antlr.Token
+	op     antlr.Token
 }
 
 func NewEmptyCalcContext() *CalcContext {
 	var p = new(CalcContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_calc
 	return p
 }
 
-func InitEmptyCalcContext(p *CalcContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_calc
-}
-
 func (*CalcContext) IsCalcContext() {}
 
 func NewCalcContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CalcContext {
 	var p = new(CalcContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_calc
@@ -5401,15 +4902,13 @@ func (s *CalcContext) GetParser() antlr.
 
 func (s *CalcContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CalcContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CalcContext) Unary() IUnaryContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IUnaryContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5443,12 +4942,12 @@ func (s *CalcContext) AllCalc() []ICalcC
 }
 
 func (s *CalcContext) Calc(i int) ICalcContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ICalcContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -5490,7 +4989,6 @@ func (s *CalcContext) ToStringTree(ruleN
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *CalcContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCalc(s)
@@ -5513,17 +5011,15 @@ func (s *CalcContext) Accept(visitor ant
 	}
 }
 
-
-
-
-
 func (p *CommandsParser) Calc() (localctx ICalcContext) {
 	return p.calc(0)
 }
 
 func (p *CommandsParser) calc(_p int) (localctx ICalcContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewCalcContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx ICalcContext = localctx
@@ -5532,6 +5028,22 @@ func (p *CommandsParser) calc(_p int) (l
 	p.EnterRecursionRule(localctx, 46, CommandsParserRULE_calc, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -5543,13 +5055,8 @@ func (p *CommandsParser) calc(_p int) (l
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(236)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 21, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 21, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -5558,19 +5065,14 @@ func (p *CommandsParser) calc(_p int) (l
 			_prevctx = localctx
 			p.SetState(234)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
-
-			switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 20, p.GetParserRuleContext()) {
+			switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 20, p.GetParserRuleContext()) {
 			case 1:
 				localctx = NewCalcContext(p, _parentctx, _parentState)
 				p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_calc)
 				p.SetState(228)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 2)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
 				}
 				{
 					p.SetState(229)
@@ -5581,7 +5083,7 @@ func (p *CommandsParser) calc(_p int) (l
 
 					_la = p.GetTokenStream().LA(1)
 
-					if !(((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 120259084288) != 0)) {
+					if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&120259084288) != 0) {
 						var _ri = p.GetErrorHandler().RecoverInline(p)
 
 						localctx.(*CalcContext).op = _ri
@@ -5595,15 +5097,13 @@ func (p *CommandsParser) calc(_p int) (l
 					p.calc(3)
 				}
 
-
 			case 2:
 				localctx = NewCalcContext(p, _parentctx, _parentState)
 				p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_calc)
 				p.SetState(231)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 				}
 				{
 					p.SetState(232)
@@ -5628,38 +5128,17 @@ func (p *CommandsParser) calc(_p int) (l
 					p.calc(2)
 				}
 
-			case antlr.ATNInvalidAltNumber:
-				goto errorExit
 			}
 
 		}
 		p.SetState(238)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 21, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 21, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IUnaryContext is an interface to support dynamic dispatch.
 type IUnaryContext interface {
 	antlr.ParserRuleContext
@@ -5671,28 +5150,23 @@ type IUnaryContext interface {
 }
 
 type UnaryContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyUnaryContext() *UnaryContext {
 	var p = new(UnaryContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_unary
 	return p
 }
 
-func InitEmptyUnaryContext(p *UnaryContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_unary
-}
-
 func (*UnaryContext) IsUnaryContext() {}
 
 func NewUnaryContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *UnaryContext {
 	var p = new(UnaryContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_unary
@@ -5702,8 +5176,8 @@ func NewUnaryContext(parser antlr.Parser
 
 func (s *UnaryContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *UnaryContext) CopyAll(ctx *UnaryContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *UnaryContext) CopyFrom(ctx *UnaryContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *UnaryContext) GetRuleContext() antlr.RuleContext {
@@ -5714,11 +5188,8 @@ func (s *UnaryContext) ToStringTree(rule
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type LogicalNotContext struct {
-	UnaryContext
+	*UnaryContext
 	s30 antlr.Token
 	ops []antlr.Token
 }
@@ -5726,23 +5197,19 @@ type LogicalNotContext struct {
 func NewLogicalNotContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *LogicalNotContext {
 	var p = new(LogicalNotContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
 
-
 func (s *LogicalNotContext) GetS30() antlr.Token { return s.s30 }
 
-
 func (s *LogicalNotContext) SetS30(v antlr.Token) { s.s30 = v }
 
-
 func (s *LogicalNotContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *LogicalNotContext) SetOps(v []antlr.Token) { s.ops = v }
 
 func (s *LogicalNotContext) GetRuleContext() antlr.RuleContext {
@@ -5750,10 +5217,10 @@ func (s *LogicalNotContext) GetRuleConte
 }
 
 func (s *LogicalNotContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5773,7 +5240,6 @@ func (s *LogicalNotContext) EXCLAM(i int
 	return s.GetToken(CommandsParserEXCLAM, i)
 }
 
-
 func (s *LogicalNotContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterLogicalNot(s)
@@ -5796,17 +5262,16 @@ func (s *LogicalNotContext) Accept(visit
 	}
 }
 
-
 type MemberExprContext struct {
-	UnaryContext
+	*UnaryContext
 }
 
 func NewMemberExprContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberExprContext {
 	var p = new(MemberExprContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
@@ -5816,10 +5281,10 @@ func (s *MemberExprContext) GetRuleConte
 }
 
 func (s *MemberExprContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5831,7 +5296,6 @@ func (s *MemberExprContext) Member() IMe
 	return t.(IMemberContext)
 }
 
-
 func (s *MemberExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterMemberExpr(s)
@@ -5854,9 +5318,8 @@ func (s *MemberExprContext) Accept(visit
 	}
 }
 
-
 type NegateContext struct {
-	UnaryContext
+	*UnaryContext
 	s29 antlr.Token
 	ops []antlr.Token
 }
@@ -5864,23 +5327,19 @@ type NegateContext struct {
 func NewNegateContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NegateContext {
 	var p = new(NegateContext)
 
-	InitEmptyUnaryContext(&p.UnaryContext)
+	p.UnaryContext = NewEmptyUnaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*UnaryContext))
+	p.CopyFrom(ctx.(*UnaryContext))
 
 	return p
 }
 
-
 func (s *NegateContext) GetS29() antlr.Token { return s.s29 }
 
-
 func (s *NegateContext) SetS29(v antlr.Token) { s.s29 = v }
 
-
 func (s *NegateContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *NegateContext) SetOps(v []antlr.Token) { s.ops = v }
 
 func (s *NegateContext) GetRuleContext() antlr.RuleContext {
@@ -5888,10 +5347,10 @@ func (s *NegateContext) GetRuleContext()
 }
 
 func (s *NegateContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -5911,7 +5370,6 @@ func (s *NegateContext) MINUS(i int) ant
 	return s.GetToken(CommandsParserMINUS, i)
 }
 
-
 func (s *NegateContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterNegate(s)
@@ -5934,22 +5392,35 @@ func (s *NegateContext) Accept(visitor a
 	}
 }
 
-
-
 func (p *CommandsParser) Unary() (localctx IUnaryContext) {
+	this := p
+	_ = this
+
 	localctx = NewUnaryContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 48, CommandsParserRULE_unary)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.SetState(252)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 24, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewMemberExprContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
@@ -5958,18 +5429,13 @@ func (p *CommandsParser) Unary() (localc
 			p.member(0)
 		}
 
-
 	case 2:
 		localctx = NewLogicalNotContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
 		p.SetState(241)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		for ok := true; ok; ok = _la == CommandsParserEXCLAM {
 			{
 				p.SetState(240)
@@ -5977,19 +5443,11 @@ func (p *CommandsParser) Unary() (localc
 				var _m = p.Match(CommandsParserEXCLAM)
 
 				localctx.(*LogicalNotContext).s30 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*LogicalNotContext).ops = append(localctx.(*LogicalNotContext).ops, localctx.(*LogicalNotContext).s30)
 
-
 			p.SetState(243)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-		    	goto errorExit
-		    }
 			_la = p.GetTokenStream().LA(1)
 		}
 		{
@@ -5997,71 +5455,42 @@ func (p *CommandsParser) Unary() (localc
 			p.member(0)
 		}
 
-
 	case 3:
 		localctx = NewNegateContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
 		p.SetState(247)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_alt = 1
 		for ok := true; ok; ok = _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 			switch _alt {
 			case 1:
-					{
-						p.SetState(246)
-
-						var _m = p.Match(CommandsParserMINUS)
-
-						localctx.(*NegateContext).s29 = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
-					}
-					localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s29)
-
+				{
+					p.SetState(246)
 
+					var _m = p.Match(CommandsParserMINUS)
 
+					localctx.(*NegateContext).s29 = _m
+				}
+				localctx.(*NegateContext).ops = append(localctx.(*NegateContext).ops, localctx.(*NegateContext).s29)
 
 			default:
-				p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
-				goto errorExit
+				panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
 			}
 
 			p.SetState(249)
 			p.GetErrorHandler().Sync(p)
-			_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 23, p.GetParserRuleContext())
-			if p.HasError() {
-				goto errorExit
-			}
+			_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 23, p.GetParserRuleContext())
 		}
 		{
 			p.SetState(251)
 			p.member(0)
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IMemberContext is an interface to support dynamic dispatch.
 type IMemberContext interface {
 	antlr.ParserRuleContext
@@ -6073,28 +5502,23 @@ type IMemberContext interface {
 }
 
 type MemberContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyMemberContext() *MemberContext {
 	var p = new(MemberContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_member
 	return p
 }
 
-func InitEmptyMemberContext(p *MemberContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_member
-}
-
 func (*MemberContext) IsMemberContext() {}
 
 func NewMemberContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MemberContext {
 	var p = new(MemberContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_member
@@ -6104,8 +5528,8 @@ func NewMemberContext(parser antlr.Parse
 
 func (s *MemberContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *MemberContext) CopyAll(ctx *MemberContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *MemberContext) CopyFrom(ctx *MemberContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *MemberContext) GetRuleContext() antlr.RuleContext {
@@ -6116,46 +5540,38 @@ func (s *MemberContext) ToStringTree(rul
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
-
 type MemberCallContext struct {
-	MemberContext
-	op antlr.Token
-	id antlr.Token
+	*MemberContext
+	op   antlr.Token
+	id   antlr.Token
 	open antlr.Token
-	args IExprListContext 
+	args IExprListContext
 }
 
 func NewMemberCallContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *MemberCallContext {
 	var p = new(MemberCallContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *MemberCallContext) GetOp() antlr.Token { return s.op }
 
 func (s *MemberCallContext) GetId() antlr.Token { return s.id }
 
 func (s *MemberCallContext) GetOpen() antlr.Token { return s.open }
 
-
 func (s *MemberCallContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *MemberCallContext) SetId(v antlr.Token) { s.id = v }
 
 func (s *MemberCallContext) SetOpen(v antlr.Token) { s.open = v }
 
-
 func (s *MemberCallContext) GetArgs() IExprListContext { return s.args }
 
-
 func (s *MemberCallContext) SetArgs(v IExprListContext) { s.args = v }
 
 func (s *MemberCallContext) GetRuleContext() antlr.RuleContext {
@@ -6163,10 +5579,10 @@ func (s *MemberCallContext) GetRuleConte
 }
 
 func (s *MemberCallContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6195,10 +5611,10 @@ func (s *MemberCallContext) LPAREN() ant
 }
 
 func (s *MemberCallContext) ExprList() IExprListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6210,7 +5626,6 @@ func (s *MemberCallContext) ExprList() I
 	return t.(IExprListContext)
 }
 
-
 func (s *MemberCallContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterMemberCall(s)
@@ -6233,32 +5648,29 @@ func (s *MemberCallContext) Accept(visit
 	}
 }
 
-
 type SelectContext struct {
-	MemberContext
-	op antlr.Token
+	*MemberContext
+	op  antlr.Token
 	opt antlr.Token
-	id antlr.Token
+	id  antlr.Token
 }
 
 func NewSelectContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *SelectContext {
 	var p = new(SelectContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *SelectContext) GetOp() antlr.Token { return s.op }
 
 func (s *SelectContext) GetOpt() antlr.Token { return s.opt }
 
 func (s *SelectContext) GetId() antlr.Token { return s.id }
 
-
 func (s *SelectContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *SelectContext) SetOpt(v antlr.Token) { s.opt = v }
@@ -6270,10 +5682,10 @@ func (s *SelectContext) GetRuleContext()
 }
 
 func (s *SelectContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6297,7 +5709,6 @@ func (s *SelectContext) QUESTIONMARK() a
 	return s.GetToken(CommandsParserQUESTIONMARK, 0)
 }
 
-
 func (s *SelectContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterSelect(s)
@@ -6320,17 +5731,16 @@ func (s *SelectContext) Accept(visitor a
 	}
 }
 
-
 type PrimaryExprContext struct {
-	MemberContext
+	*MemberContext
 }
 
 func NewPrimaryExprContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *PrimaryExprContext {
 	var p = new(PrimaryExprContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
@@ -6340,10 +5750,10 @@ func (s *PrimaryExprContext) GetRuleCont
 }
 
 func (s *PrimaryExprContext) Primary() IPrimaryContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IPrimaryContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6355,7 +5765,6 @@ func (s *PrimaryExprContext) Primary() I
 	return t.(IPrimaryContext)
 }
 
-
 func (s *PrimaryExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterPrimaryExpr(s)
@@ -6378,38 +5787,33 @@ func (s *PrimaryExprContext) Accept(visi
 	}
 }
 
-
 type IndexContext struct {
-	MemberContext
-	op antlr.Token
-	opt antlr.Token
-	index IExprContext 
+	*MemberContext
+	op    antlr.Token
+	opt   antlr.Token
+	index IExprContext
 }
 
 func NewIndexContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IndexContext {
 	var p = new(IndexContext)
 
-	InitEmptyMemberContext(&p.MemberContext)
+	p.MemberContext = NewEmptyMemberContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*MemberContext))
+	p.CopyFrom(ctx.(*MemberContext))
 
 	return p
 }
 
-
 func (s *IndexContext) GetOp() antlr.Token { return s.op }
 
 func (s *IndexContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *IndexContext) SetOp(v antlr.Token) { s.op = v }
 
 func (s *IndexContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *IndexContext) GetIndex() IExprContext { return s.index }
 
-
 func (s *IndexContext) SetIndex(v IExprContext) { s.index = v }
 
 func (s *IndexContext) GetRuleContext() antlr.RuleContext {
@@ -6417,10 +5821,10 @@ func (s *IndexContext) GetRuleContext()
 }
 
 func (s *IndexContext) Member() IMemberContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMemberContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6441,10 +5845,10 @@ func (s *IndexContext) LBRACKET() antlr.
 }
 
 func (s *IndexContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6460,7 +5864,6 @@ func (s *IndexContext) QUESTIONMARK() an
 	return s.GetToken(CommandsParserQUESTIONMARK, 0)
 }
 
-
 func (s *IndexContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterIndex(s)
@@ -6483,15 +5886,15 @@ func (s *IndexContext) Accept(visitor an
 	}
 }
 
-
-
 func (p *CommandsParser) Member() (localctx IMemberContext) {
 	return p.member(0)
 }
 
 func (p *CommandsParser) member(_p int) (localctx IMemberContext) {
-	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
+	this := p
+	_ = this
 
+	var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
 	_parentState := p.GetState()
 	localctx = NewMemberContext(p, p.GetParserRuleContext(), _parentState)
 	var _prevctx IMemberContext = localctx
@@ -6500,6 +5903,22 @@ func (p *CommandsParser) member(_p int)
 	p.EnterRecursionRule(localctx, 50, CommandsParserRULE_member, _p)
 	var _la int
 
+	defer func() {
+		p.UnrollRecursionContexts(_parentctx)
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -6515,13 +5934,8 @@ func (p *CommandsParser) member(_p int)
 	p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
 	p.SetState(281)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 29, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			if p.GetParseListeners() != nil {
@@ -6530,19 +5944,14 @@ func (p *CommandsParser) member(_p int)
 			_prevctx = localctx
 			p.SetState(279)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
-
-			switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 28, p.GetParserRuleContext()) {
+			switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 28, p.GetParserRuleContext()) {
 			case 1:
 				localctx = NewSelectContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member)
 				p.SetState(257)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 3)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
 				}
 				{
 					p.SetState(258)
@@ -6550,19 +5959,11 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserDOT)
 
 					localctx.(*SelectContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(260)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
 				if _la == CommandsParserQUESTIONMARK {
 					{
 						p.SetState(259)
@@ -6570,10 +5971,6 @@ func (p *CommandsParser) member(_p int)
 						var _m = p.Match(CommandsParserQUESTIONMARK)
 
 						localctx.(*SelectContext).opt = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
 					}
 
 				}
@@ -6583,21 +5980,15 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserIDENTIFIER)
 
 					localctx.(*SelectContext).id = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-
 			case 2:
 				localctx = NewMemberCallContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member)
 				p.SetState(263)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 2)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
 				}
 				{
 					p.SetState(264)
@@ -6605,10 +5996,6 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserDOT)
 
 					localctx.(*MemberCallContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				{
 					p.SetState(265)
@@ -6616,10 +6003,6 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserIDENTIFIER)
 
 					localctx.(*MemberCallContext).id = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				{
 					p.SetState(266)
@@ -6627,26 +6010,17 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserLPAREN)
 
 					localctx.(*MemberCallContext).open = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(268)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
-				if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 278040791744512) != 0) {
+				if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&278040791744512) != 0 {
 					{
 						p.SetState(267)
 
 						var _x = p.ExprList()
 
-
 						localctx.(*MemberCallContext).args = _x
 					}
 
@@ -6654,21 +6028,15 @@ func (p *CommandsParser) member(_p int)
 				{
 					p.SetState(270)
 					p.Match(CommandsParserRPAREN)
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-
 			case 3:
 				localctx = NewIndexContext(p, NewMemberContext(p, _parentctx, _parentState))
 				p.PushNewRecursionContext(localctx, _startState, CommandsParserRULE_member)
 				p.SetState(271)
 
 				if !(p.Precpred(p.GetParserRuleContext(), 1)) {
-					p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
-					goto errorExit
+					panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 1)", ""))
 				}
 				{
 					p.SetState(272)
@@ -6676,19 +6044,11 @@ func (p *CommandsParser) member(_p int)
 					var _m = p.Match(CommandsParserLBRACKET)
 
 					localctx.(*IndexContext).op = _m
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 				p.SetState(274)
 				p.GetErrorHandler().Sync(p)
-				if p.HasError() {
-					goto errorExit
-				}
 				_la = p.GetTokenStream().LA(1)
 
-
 				if _la == CommandsParserQUESTIONMARK {
 					{
 						p.SetState(273)
@@ -6696,10 +6056,6 @@ func (p *CommandsParser) member(_p int)
 						var _m = p.Match(CommandsParserQUESTIONMARK)
 
 						localctx.(*IndexContext).opt = _m
-						if p.HasError() {
-								// Recognition error - abort rule
-								goto errorExit
-						}
 					}
 
 				}
@@ -6708,50 +6064,24 @@ func (p *CommandsParser) member(_p int)
 
 					var _x = p.Expr()
 
-
 					localctx.(*IndexContext).index = _x
 				}
 				{
 					p.SetState(277)
 					p.Match(CommandsParserRPRACKET)
-					if p.HasError() {
-							// Recognition error - abort rule
-							goto errorExit
-					}
 				}
 
-			case antlr.ATNInvalidAltNumber:
-				goto errorExit
 			}
 
 		}
 		p.SetState(283)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 29, p.GetParserRuleContext())
 	}
 
-
-
-	errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.UnrollRecursionContexts(_parentctx)
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IPrimaryContext is an interface to support dynamic dispatch.
 type IPrimaryContext interface {
 	antlr.ParserRuleContext
@@ -6763,28 +6093,23 @@ type IPrimaryContext interface {
 }
 
 type PrimaryContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyPrimaryContext() *PrimaryContext {
 	var p = new(PrimaryContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_primary
 	return p
 }
 
-func InitEmptyPrimaryContext(p *PrimaryContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_primary
-}
-
 func (*PrimaryContext) IsPrimaryContext() {}
 
 func NewPrimaryContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PrimaryContext {
 	var p = new(PrimaryContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_primary
@@ -6794,8 +6119,8 @@ func NewPrimaryContext(parser antlr.Pars
 
 func (s *PrimaryContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *PrimaryContext) CopyAll(ctx *PrimaryContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *PrimaryContext) CopyFrom(ctx *PrimaryContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *PrimaryContext) GetRuleContext() antlr.RuleContext {
@@ -6806,35 +6131,28 @@ func (s *PrimaryContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type CreateListContext struct {
-	PrimaryContext
-	op antlr.Token
-	elems IListInitContext 
+	*PrimaryContext
+	op    antlr.Token
+	elems IListInitContext
 }
 
 func NewCreateListContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateListContext {
 	var p = new(CreateListContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateListContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateListContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateListContext) GetElems() IListInitContext { return s.elems }
 
-
 func (s *CreateListContext) SetElems(v IListInitContext) { s.elems = v }
 
 func (s *CreateListContext) GetRuleContext() antlr.RuleContext {
@@ -6854,10 +6172,10 @@ func (s *CreateListContext) COMMA() antl
 }
 
 func (s *CreateListContext) ListInit() IListInitContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IListInitContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6869,7 +6187,6 @@ func (s *CreateListContext) ListInit() I
 	return t.(IListInitContext)
 }
 
-
 func (s *CreateListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCreateList(s)
@@ -6892,33 +6209,28 @@ func (s *CreateListContext) Accept(visit
 	}
 }
 
-
 type CreateStructContext struct {
-	PrimaryContext
-	op antlr.Token
-	entries IMapInitializerListContext 
+	*PrimaryContext
+	op      antlr.Token
+	entries IMapInitializerListContext
 }
 
 func NewCreateStructContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateStructContext {
 	var p = new(CreateStructContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateStructContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateStructContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateStructContext) GetEntries() IMapInitializerListContext { return s.entries }
 
-
 func (s *CreateStructContext) SetEntries(v IMapInitializerListContext) { s.entries = v }
 
 func (s *CreateStructContext) GetRuleContext() antlr.RuleContext {
@@ -6938,10 +6250,10 @@ func (s *CreateStructContext) COMMA() an
 }
 
 func (s *CreateStructContext) MapInitializerList() IMapInitializerListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IMapInitializerListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -6953,7 +6265,6 @@ func (s *CreateStructContext) MapInitial
 	return t.(IMapInitializerListContext)
 }
 
-
 func (s *CreateStructContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCreateStruct(s)
@@ -6976,17 +6287,16 @@ func (s *CreateStructContext) Accept(vis
 	}
 }
 
-
 type ConstantLiteralContext struct {
-	PrimaryContext
+	*PrimaryContext
 }
 
 func NewConstantLiteralContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *ConstantLiteralContext {
 	var p = new(ConstantLiteralContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
@@ -6996,10 +6306,10 @@ func (s *ConstantLiteralContext) GetRule
 }
 
 func (s *ConstantLiteralContext) Literal() ILiteralContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(ILiteralContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -7011,7 +6321,6 @@ func (s *ConstantLiteralContext) Literal
 	return t.(ILiteralContext)
 }
 
-
 func (s *ConstantLiteralContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterConstantLiteral(s)
@@ -7034,26 +6343,23 @@ func (s *ConstantLiteralContext) Accept(
 	}
 }
 
-
 type NestedContext struct {
-	PrimaryContext
-	e IExprContext 
+	*PrimaryContext
+	e IExprContext
 }
 
 func NewNestedContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NestedContext {
 	var p = new(NestedContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *NestedContext) GetE() IExprContext { return s.e }
 
-
 func (s *NestedContext) SetE(v IExprContext) { s.e = v }
 
 func (s *NestedContext) GetRuleContext() antlr.RuleContext {
@@ -7069,10 +6375,10 @@ func (s *NestedContext) RPAREN() antlr.T
 }
 
 func (s *NestedContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -7084,7 +6390,6 @@ func (s *NestedContext) Expr() IExprCont
 	return t.(IExprContext)
 }
 
-
 func (s *NestedContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterNested(s)
@@ -7107,29 +6412,27 @@ func (s *NestedContext) Accept(visitor a
 	}
 }
 
-
 type CreateMessageContext struct {
-	PrimaryContext
-	leadingDot antlr.Token
+	*PrimaryContext
+	leadingDot  antlr.Token
 	_IDENTIFIER antlr.Token
-	ids []antlr.Token
-	s27 antlr.Token
-	ops []antlr.Token
-	op antlr.Token
-	entries IFieldInitializerListContext 
+	ids         []antlr.Token
+	s27         antlr.Token
+	ops         []antlr.Token
+	op          antlr.Token
+	entries     IFieldInitializerListContext
 }
 
 func NewCreateMessageContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *CreateMessageContext {
 	var p = new(CreateMessageContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *CreateMessageContext) GetLeadingDot() antlr.Token { return s.leadingDot }
 
 func (s *CreateMessageContext) Get_IDENTIFIER() antlr.Token { return s._IDENTIFIER }
@@ -7138,7 +6441,6 @@ func (s *CreateMessageContext) GetS27()
 
 func (s *CreateMessageContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *CreateMessageContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *CreateMessageContext) Set_IDENTIFIER(v antlr.Token) { s._IDENTIFIER = v }
@@ -7147,20 +6449,16 @@ func (s *CreateMessageContext) SetS27(v
 
 func (s *CreateMessageContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *CreateMessageContext) GetIds() []antlr.Token { return s.ids }
 
 func (s *CreateMessageContext) GetOps() []antlr.Token { return s.ops }
 
-
 func (s *CreateMessageContext) SetIds(v []antlr.Token) { s.ids = v }
 
 func (s *CreateMessageContext) SetOps(v []antlr.Token) { s.ops = v }
 
-
 func (s *CreateMessageContext) GetEntries() IFieldInitializerListContext { return s.entries }
 
-
 func (s *CreateMessageContext) SetEntries(v IFieldInitializerListContext) { s.entries = v }
 
 func (s *CreateMessageContext) GetRuleContext() antlr.RuleContext {
@@ -7196,10 +6494,10 @@ func (s *CreateMessageContext) DOT(i int
 }
 
 func (s *CreateMessageContext) FieldInitializerList() IFieldInitializerListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IFieldInitializerListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -7211,7 +6509,6 @@ func (s *CreateMessageContext) FieldInit
 	return t.(IFieldInitializerListContext)
 }
 
-
 func (s *CreateMessageContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterCreateMessage(s)
@@ -7234,43 +6531,38 @@ func (s *CreateMessageContext) Accept(vi
 	}
 }
 
-
 type IdentOrGlobalCallContext struct {
-	PrimaryContext
+	*PrimaryContext
 	leadingDot antlr.Token
-	id antlr.Token
-	op antlr.Token
-	args IExprListContext 
+	id         antlr.Token
+	op         antlr.Token
+	args       IExprListContext
 }
 
 func NewIdentOrGlobalCallContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IdentOrGlobalCallContext {
 	var p = new(IdentOrGlobalCallContext)
 
-	InitEmptyPrimaryContext(&p.PrimaryContext)
+	p.PrimaryContext = NewEmptyPrimaryContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*PrimaryContext))
+	p.CopyFrom(ctx.(*PrimaryContext))
 
 	return p
 }
 
-
 func (s *IdentOrGlobalCallContext) GetLeadingDot() antlr.Token { return s.leadingDot }
 
 func (s *IdentOrGlobalCallContext) GetId() antlr.Token { return s.id }
 
 func (s *IdentOrGlobalCallContext) GetOp() antlr.Token { return s.op }
 
-
 func (s *IdentOrGlobalCallContext) SetLeadingDot(v antlr.Token) { s.leadingDot = v }
 
 func (s *IdentOrGlobalCallContext) SetId(v antlr.Token) { s.id = v }
 
 func (s *IdentOrGlobalCallContext) SetOp(v antlr.Token) { s.op = v }
 
-
 func (s *IdentOrGlobalCallContext) GetArgs() IExprListContext { return s.args }
 
-
 func (s *IdentOrGlobalCallContext) SetArgs(v IExprListContext) { s.args = v }
 
 func (s *IdentOrGlobalCallContext) GetRuleContext() antlr.RuleContext {
@@ -7294,10 +6586,10 @@ func (s *IdentOrGlobalCallContext) LPARE
 }
 
 func (s *IdentOrGlobalCallContext) ExprList() IExprListContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprListContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -7309,7 +6601,6 @@ func (s *IdentOrGlobalCallContext) ExprL
 	return t.(IExprListContext)
 }
 
-
 func (s *IdentOrGlobalCallContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterIdentOrGlobalCall(s)
@@ -7332,31 +6623,40 @@ func (s *IdentOrGlobalCallContext) Accep
 	}
 }
 
-
-
 func (p *CommandsParser) Primary() (localctx IPrimaryContext) {
+	this := p
+	_ = this
+
 	localctx = NewPrimaryContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 52, CommandsParserRULE_primary)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.SetState(335)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 41, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 41, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewIdentOrGlobalCallContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
 		p.SetState(285)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserDOT {
 			{
 				p.SetState(284)
@@ -7364,10 +6664,6 @@ func (p *CommandsParser) Primary() (loca
 				var _m = p.Match(CommandsParserDOT)
 
 				localctx.(*IdentOrGlobalCallContext).leadingDot = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -7377,42 +6673,28 @@ func (p *CommandsParser) Primary() (loca
 			var _m = p.Match(CommandsParserIDENTIFIER)
 
 			localctx.(*IdentOrGlobalCallContext).id = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(293)
 		p.GetErrorHandler().Sync(p)
 
-
-		if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 32, p.GetParserRuleContext()) == 1 {
+		if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 32, p.GetParserRuleContext()) == 1 {
 			{
 				p.SetState(288)
 
 				var _m = p.Match(CommandsParserLPAREN)
 
 				localctx.(*IdentOrGlobalCallContext).op = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			p.SetState(290)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-				goto errorExit
-			}
 			_la = p.GetTokenStream().LA(1)
 
-
-			if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 278040791744512) != 0) {
+			if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&278040791744512) != 0 {
 				{
 					p.SetState(289)
 
 					var _x = p.ExprList()
 
-
 					localctx.(*IdentOrGlobalCallContext).args = _x
 				}
 
@@ -7420,46 +6702,29 @@ func (p *CommandsParser) Primary() (loca
 			{
 				p.SetState(292)
 				p.Match(CommandsParserRPAREN)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
-			} else if p.HasError() { // JIM
-				goto errorExit
 		}
 
-
 	case 2:
 		localctx = NewNestedContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
 		{
 			p.SetState(295)
 			p.Match(CommandsParserLPAREN)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(296)
 
 			var _x = p.Expr()
 
-
 			localctx.(*NestedContext).e = _x
 		}
 		{
 			p.SetState(297)
 			p.Match(CommandsParserRPAREN)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 3:
 		localctx = NewCreateListContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
@@ -7469,59 +6734,37 @@ func (p *CommandsParser) Primary() (loca
 			var _m = p.Match(CommandsParserLBRACKET)
 
 			localctx.(*CreateListContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(301)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
-		if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 278042939228160) != 0) {
+		if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&278042939228160) != 0 {
 			{
 				p.SetState(300)
 
 				var _x = p.ListInit()
 
-
 				localctx.(*CreateListContext).elems = _x
 			}
 
 		}
 		p.SetState(304)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserCOMMA {
 			{
 				p.SetState(303)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(306)
 			p.Match(CommandsParserRPRACKET)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 4:
 		localctx = NewCreateStructContext(p, localctx)
 		p.EnterOuterAlt(localctx, 4)
@@ -7531,70 +6774,44 @@ func (p *CommandsParser) Primary() (loca
 			var _m = p.Match(CommandsParserLBRACE)
 
 			localctx.(*CreateStructContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(309)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
-		if ((int64(_la) & ^0x3f) == 0 && ((int64(1) << _la) & 278042939228160) != 0) {
+		if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&278042939228160) != 0 {
 			{
 				p.SetState(308)
 
 				var _x = p.MapInitializerList()
 
-
 				localctx.(*CreateStructContext).entries = _x
 			}
 
 		}
 		p.SetState(312)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserCOMMA {
 			{
 				p.SetState(311)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(314)
 			p.Match(CommandsParserRBRACE)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 5:
 		localctx = NewCreateMessageContext(p, localctx)
 		p.EnterOuterAlt(localctx, 5)
 		p.SetState(316)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserDOT {
 			{
 				p.SetState(315)
@@ -7602,10 +6819,6 @@ func (p *CommandsParser) Primary() (loca
 				var _m = p.Match(CommandsParserDOT)
 
 				localctx.(*CreateMessageContext).leadingDot = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -7615,20 +6828,12 @@ func (p *CommandsParser) Primary() (loca
 			var _m = p.Match(CommandsParserIDENTIFIER)
 
 			localctx.(*CreateMessageContext)._IDENTIFIER = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER)
 		p.SetState(323)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		for _la == CommandsParserDOT {
 			{
 				p.SetState(319)
@@ -7636,10 +6841,6 @@ func (p *CommandsParser) Primary() (loca
 				var _m = p.Match(CommandsParserDOT)
 
 				localctx.(*CreateMessageContext).s27 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*CreateMessageContext).ops = append(localctx.(*CreateMessageContext).ops, localctx.(*CreateMessageContext).s27)
 			{
@@ -7648,19 +6849,11 @@ func (p *CommandsParser) Primary() (loca
 				var _m = p.Match(CommandsParserIDENTIFIER)
 
 				localctx.(*CreateMessageContext)._IDENTIFIER = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*CreateMessageContext).ids = append(localctx.(*CreateMessageContext).ids, localctx.(*CreateMessageContext)._IDENTIFIER)
 
-
 			p.SetState(325)
 			p.GetErrorHandler().Sync(p)
-			if p.HasError() {
-		    	goto errorExit
-		    }
 			_la = p.GetTokenStream().LA(1)
 		}
 		{
@@ -7669,59 +6862,37 @@ func (p *CommandsParser) Primary() (loca
 			var _m = p.Match(CommandsParserLBRACE)
 
 			localctx.(*CreateMessageContext).op = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		p.SetState(328)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserQUESTIONMARK || _la == CommandsParserIDENTIFIER {
 			{
 				p.SetState(327)
 
 				var _x = p.FieldInitializerList()
 
-
 				localctx.(*CreateMessageContext).entries = _x
 			}
 
 		}
 		p.SetState(331)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserCOMMA {
 			{
 				p.SetState(330)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
 		{
 			p.SetState(333)
 			p.Match(CommandsParserRBRACE)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 6:
 		localctx = NewConstantLiteralContext(p, localctx)
 		p.EnterOuterAlt(localctx, 6)
@@ -7730,25 +6901,11 @@ func (p *CommandsParser) Primary() (loca
 			p.Literal()
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IExprListContext is an interface to support dynamic dispatch.
 type IExprListContext interface {
 	antlr.ParserRuleContext
@@ -7759,18 +6916,14 @@ type IExprListContext interface {
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetE returns the e rule context list.
 	GetE() []IExprContext
 
-
 	// SetE sets the e rule context list.
-	SetE([]IExprContext) 
-
+	SetE([]IExprContext)
 
 	// Getter signatures
 	AllExpr() []IExprContext
@@ -7783,30 +6936,25 @@ type IExprListContext interface {
 }
 
 type ExprListContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	_expr IExprContext 
-	e []IExprContext
+	_expr  IExprContext
+	e      []IExprContext
 }
 
 func NewEmptyExprListContext() *ExprListContext {
 	var p = new(ExprListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_exprList
 	return p
 }
 
-func InitEmptyExprListContext(p *ExprListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_exprList
-}
-
 func (*ExprListContext) IsExprListContext() {}
 
 func NewExprListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprListContext {
 	var p = new(ExprListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_exprList
@@ -7818,16 +6966,12 @@ func (s *ExprListContext) GetParser() an
 
 func (s *ExprListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *ExprListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *ExprListContext) GetE() []IExprContext { return s.e }
 
-
 func (s *ExprListContext) SetE(v []IExprContext) { s.e = v }
 
-
 func (s *ExprListContext) AllExpr() []IExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -7850,12 +6994,12 @@ func (s *ExprListContext) AllExpr() []IE
 }
 
 func (s *ExprListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -7885,7 +7029,6 @@ func (s *ExprListContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ExprListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterExprList(s)
@@ -7908,76 +7051,65 @@ func (s *ExprListContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) ExprList() (localctx IExprListContext) {
+	this := p
+	_ = this
+
 	localctx = NewExprListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 54, CommandsParserRULE_exprList)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	{
 		p.SetState(337)
 
 		var _x = p.Expr()
 
-
 		localctx.(*ExprListContext)._expr = _x
 	}
 	localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr)
 	p.SetState(342)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	for _la == CommandsParserCOMMA {
 		{
 			p.SetState(338)
 			p.Match(CommandsParserCOMMA)
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 		{
 			p.SetState(339)
 
 			var _x = p.Expr()
 
-
 			localctx.(*ExprListContext)._expr = _x
 		}
 		localctx.(*ExprListContext).e = append(localctx.(*ExprListContext).e, localctx.(*ExprListContext)._expr)
 
-
 		p.SetState(344)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
 		_la = p.GetTokenStream().LA(1)
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IListInitContext is an interface to support dynamic dispatch.
 type IListInitContext interface {
 	antlr.ParserRuleContext
@@ -7988,18 +7120,14 @@ type IListInitContext interface {
 	// Get_optExpr returns the _optExpr rule contexts.
 	Get_optExpr() IOptExprContext
 
-
 	// Set_optExpr sets the _optExpr rule contexts.
 	Set_optExpr(IOptExprContext)
 
-
 	// GetElems returns the elems rule context list.
 	GetElems() []IOptExprContext
 
-
 	// SetElems sets the elems rule context list.
-	SetElems([]IOptExprContext) 
-
+	SetElems([]IOptExprContext)
 
 	// Getter signatures
 	AllOptExpr() []IOptExprContext
@@ -8012,30 +7140,25 @@ type IListInitContext interface {
 }
 
 type ListInitContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optExpr IOptExprContext 
-	elems []IOptExprContext
+	*antlr.BaseParserRuleContext
+	parser   antlr.Parser
+	_optExpr IOptExprContext
+	elems    []IOptExprContext
 }
 
 func NewEmptyListInitContext() *ListInitContext {
 	var p = new(ListInitContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_listInit
 	return p
 }
 
-func InitEmptyListInitContext(p *ListInitContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_listInit
-}
-
 func (*ListInitContext) IsListInitContext() {}
 
 func NewListInitContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ListInitContext {
 	var p = new(ListInitContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_listInit
@@ -8047,16 +7170,12 @@ func (s *ListInitContext) GetParser() an
 
 func (s *ListInitContext) Get_optExpr() IOptExprContext { return s._optExpr }
 
-
 func (s *ListInitContext) Set_optExpr(v IOptExprContext) { s._optExpr = v }
 
-
 func (s *ListInitContext) GetElems() []IOptExprContext { return s.elems }
 
-
 func (s *ListInitContext) SetElems(v []IOptExprContext) { s.elems = v }
 
-
 func (s *ListInitContext) AllOptExpr() []IOptExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -8079,12 +7198,12 @@ func (s *ListInitContext) AllOptExpr() [
 }
 
 func (s *ListInitContext) OptExpr(i int) IOptExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -8114,7 +7233,6 @@ func (s *ListInitContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *ListInitContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterListInit(s)
@@ -8137,12 +7255,29 @@ func (s *ListInitContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) ListInit() (localctx IListInitContext) {
+	this := p
+	_ = this
+
 	localctx = NewListInitContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 56, CommandsParserRULE_listInit)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -8151,68 +7286,37 @@ func (p *CommandsParser) ListInit() (loc
 
 		var _x = p.OptExpr()
 
-
 		localctx.(*ListInitContext)._optExpr = _x
 	}
 	localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr)
 	p.SetState(350)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 43, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 43, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(346)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(347)
 
 				var _x = p.OptExpr()
 
-
 				localctx.(*ListInitContext)._optExpr = _x
 			}
 			localctx.(*ListInitContext).elems = append(localctx.(*ListInitContext).elems, localctx.(*ListInitContext)._optExpr)
 
-
 		}
 		p.SetState(352)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 43, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 43, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IFieldInitializerListContext is an interface to support dynamic dispatch.
 type IFieldInitializerListContext interface {
 	antlr.ParserRuleContext
@@ -8221,48 +7325,40 @@ type IFieldInitializerListContext interf
 	GetParser() antlr.Parser
 
 	// GetS32 returns the s32 token.
-	GetS32() antlr.Token 
-
+	GetS32() antlr.Token
 
 	// SetS32 sets the s32 token.
-	SetS32(antlr.Token) 
-
+	SetS32(antlr.Token)
 
 	// GetCols returns the cols token list.
 	GetCols() []antlr.Token
 
-
 	// SetCols sets the cols token list.
 	SetCols([]antlr.Token)
 
-
 	// Get_optField returns the _optField rule contexts.
 	Get_optField() IOptFieldContext
 
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_optField sets the _optField rule contexts.
 	Set_optField(IOptFieldContext)
 
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetFields returns the fields rule context list.
 	GetFields() []IOptFieldContext
 
 	// GetValues returns the values rule context list.
 	GetValues() []IExprContext
 
-
 	// SetFields sets the fields rule context list.
-	SetFields([]IOptFieldContext) 
+	SetFields([]IOptFieldContext)
 
 	// SetValues sets the values rule context list.
-	SetValues([]IExprContext) 
-
+	SetValues([]IExprContext)
 
 	// Getter signatures
 	AllOptField() []IOptFieldContext
@@ -8279,34 +7375,29 @@ type IFieldInitializerListContext interf
 }
 
 type FieldInitializerListContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optField IOptFieldContext 
-	fields []IOptFieldContext
-	s32 antlr.Token
-	cols []antlr.Token
-	_expr IExprContext 
-	values []IExprContext
+	*antlr.BaseParserRuleContext
+	parser    antlr.Parser
+	_optField IOptFieldContext
+	fields    []IOptFieldContext
+	s32       antlr.Token
+	cols      []antlr.Token
+	_expr     IExprContext
+	values    []IExprContext
 }
 
 func NewEmptyFieldInitializerListContext() *FieldInitializerListContext {
 	var p = new(FieldInitializerListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_fieldInitializerList
 	return p
 }
 
-func InitEmptyFieldInitializerListContext(p *FieldInitializerListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_fieldInitializerList
-}
-
 func (*FieldInitializerListContext) IsFieldInitializerListContext() {}
 
 func NewFieldInitializerListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FieldInitializerListContext {
 	var p = new(FieldInitializerListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_fieldInitializerList
@@ -8318,36 +7409,28 @@ func (s *FieldInitializerListContext) Ge
 
 func (s *FieldInitializerListContext) GetS32() antlr.Token { return s.s32 }
 
-
 func (s *FieldInitializerListContext) SetS32(v antlr.Token) { s.s32 = v }
 
-
 func (s *FieldInitializerListContext) GetCols() []antlr.Token { return s.cols }
 
-
 func (s *FieldInitializerListContext) SetCols(v []antlr.Token) { s.cols = v }
 
-
 func (s *FieldInitializerListContext) Get_optField() IOptFieldContext { return s._optField }
 
 func (s *FieldInitializerListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *FieldInitializerListContext) Set_optField(v IOptFieldContext) { s._optField = v }
 
 func (s *FieldInitializerListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *FieldInitializerListContext) GetFields() []IOptFieldContext { return s.fields }
 
 func (s *FieldInitializerListContext) GetValues() []IExprContext { return s.values }
 
-
 func (s *FieldInitializerListContext) SetFields(v []IOptFieldContext) { s.fields = v }
 
 func (s *FieldInitializerListContext) SetValues(v []IExprContext) { s.values = v }
 
-
 func (s *FieldInitializerListContext) AllOptField() []IOptFieldContext {
 	children := s.GetChildren()
 	len := 0
@@ -8370,12 +7453,12 @@ func (s *FieldInitializerListContext) Al
 }
 
 func (s *FieldInitializerListContext) OptField(i int) IOptFieldContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptFieldContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -8419,12 +7502,12 @@ func (s *FieldInitializerListContext) Al
 }
 
 func (s *FieldInitializerListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -8454,7 +7537,6 @@ func (s *FieldInitializerListContext) To
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *FieldInitializerListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterFieldInitializerList(s)
@@ -8477,12 +7559,29 @@ func (s *FieldInitializerListContext) Ac
 	}
 }
 
-
-
-
 func (p *CommandsParser) FieldInitializerList() (localctx IFieldInitializerListContext) {
+	this := p
+	_ = this
+
 	localctx = NewFieldInitializerListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 58, CommandsParserRULE_fieldInitializerList)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -8491,7 +7590,6 @@ func (p *CommandsParser) FieldInitialize
 
 		var _x = p.OptField()
 
-
 		localctx.(*FieldInitializerListContext)._optField = _x
 	}
 	localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField)
@@ -8501,10 +7599,6 @@ func (p *CommandsParser) FieldInitialize
 		var _m = p.Match(CommandsParserCOLON)
 
 		localctx.(*FieldInitializerListContext).s32 = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s32)
 	{
@@ -8512,35 +7606,24 @@ func (p *CommandsParser) FieldInitialize
 
 		var _x = p.Expr()
 
-
 		localctx.(*FieldInitializerListContext)._expr = _x
 	}
 	localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr)
 	p.SetState(363)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 44, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 44, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(356)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(357)
 
 				var _x = p.OptField()
 
-
 				localctx.(*FieldInitializerListContext)._optField = _x
 			}
 			localctx.(*FieldInitializerListContext).fields = append(localctx.(*FieldInitializerListContext).fields, localctx.(*FieldInitializerListContext)._optField)
@@ -8550,10 +7633,6 @@ func (p *CommandsParser) FieldInitialize
 				var _m = p.Match(CommandsParserCOLON)
 
 				localctx.(*FieldInitializerListContext).s32 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*FieldInitializerListContext).cols = append(localctx.(*FieldInitializerListContext).cols, localctx.(*FieldInitializerListContext).s32)
 			{
@@ -8561,40 +7640,19 @@ func (p *CommandsParser) FieldInitialize
 
 				var _x = p.Expr()
 
-
 				localctx.(*FieldInitializerListContext)._expr = _x
 			}
 			localctx.(*FieldInitializerListContext).values = append(localctx.(*FieldInitializerListContext).values, localctx.(*FieldInitializerListContext)._expr)
 
-
 		}
 		p.SetState(365)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 44, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 44, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IOptFieldContext is an interface to support dynamic dispatch.
 type IOptFieldContext interface {
 	antlr.ParserRuleContext
@@ -8603,12 +7661,10 @@ type IOptFieldContext interface {
 	GetParser() antlr.Parser
 
 	// GetOpt returns the opt token.
-	GetOpt() antlr.Token 
-
+	GetOpt() antlr.Token
 
 	// SetOpt sets the opt token.
-	SetOpt(antlr.Token) 
-
+	SetOpt(antlr.Token)
 
 	// Getter signatures
 	IDENTIFIER() antlr.TerminalNode
@@ -8619,29 +7675,24 @@ type IOptFieldContext interface {
 }
 
 type OptFieldContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	opt antlr.Token
+	opt    antlr.Token
 }
 
 func NewEmptyOptFieldContext() *OptFieldContext {
 	var p = new(OptFieldContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_optField
 	return p
 }
 
-func InitEmptyOptFieldContext(p *OptFieldContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_optField
-}
-
 func (*OptFieldContext) IsOptFieldContext() {}
 
 func NewOptFieldContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OptFieldContext {
 	var p = new(OptFieldContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_optField
@@ -8653,10 +7704,8 @@ func (s *OptFieldContext) GetParser() an
 
 func (s *OptFieldContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *OptFieldContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *OptFieldContext) IDENTIFIER() antlr.TerminalNode {
 	return s.GetToken(CommandsParserIDENTIFIER, 0)
 }
@@ -8673,7 +7722,6 @@ func (s *OptFieldContext) ToStringTree(r
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *OptFieldContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterOptField(s)
@@ -8696,23 +7744,35 @@ func (s *OptFieldContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) OptField() (localctx IOptFieldContext) {
+	this := p
+	_ = this
+
 	localctx = NewOptFieldContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 60, CommandsParserRULE_optField)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(367)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserQUESTIONMARK {
 		{
 			p.SetState(366)
@@ -8720,38 +7780,17 @@ func (p *CommandsParser) OptField() (loc
 			var _m = p.Match(CommandsParserQUESTIONMARK)
 
 			localctx.(*OptFieldContext).opt = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
 	{
 		p.SetState(369)
 		p.Match(CommandsParserIDENTIFIER)
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IMapInitializerListContext is an interface to support dynamic dispatch.
 type IMapInitializerListContext interface {
 	antlr.ParserRuleContext
@@ -8760,48 +7799,40 @@ type IMapInitializerListContext interfac
 	GetParser() antlr.Parser
 
 	// GetS32 returns the s32 token.
-	GetS32() antlr.Token 
-
+	GetS32() antlr.Token
 
 	// SetS32 sets the s32 token.
-	SetS32(antlr.Token) 
-
+	SetS32(antlr.Token)
 
 	// GetCols returns the cols token list.
 	GetCols() []antlr.Token
 
-
 	// SetCols sets the cols token list.
 	SetCols([]antlr.Token)
 
-
 	// Get_optExpr returns the _optExpr rule contexts.
 	Get_optExpr() IOptExprContext
 
 	// Get_expr returns the _expr rule contexts.
 	Get_expr() IExprContext
 
-
 	// Set_optExpr sets the _optExpr rule contexts.
 	Set_optExpr(IOptExprContext)
 
 	// Set_expr sets the _expr rule contexts.
 	Set_expr(IExprContext)
 
-
 	// GetKeys returns the keys rule context list.
 	GetKeys() []IOptExprContext
 
 	// GetValues returns the values rule context list.
 	GetValues() []IExprContext
 
-
 	// SetKeys sets the keys rule context list.
-	SetKeys([]IOptExprContext) 
+	SetKeys([]IOptExprContext)
 
 	// SetValues sets the values rule context list.
-	SetValues([]IExprContext) 
-
+	SetValues([]IExprContext)
 
 	// Getter signatures
 	AllOptExpr() []IOptExprContext
@@ -8818,34 +7849,29 @@ type IMapInitializerListContext interfac
 }
 
 type MapInitializerListContext struct {
-	antlr.BaseParserRuleContext
-	parser antlr.Parser
-	_optExpr IOptExprContext 
-	keys []IOptExprContext
-	s32 antlr.Token
-	cols []antlr.Token
-	_expr IExprContext 
-	values []IExprContext
+	*antlr.BaseParserRuleContext
+	parser   antlr.Parser
+	_optExpr IOptExprContext
+	keys     []IOptExprContext
+	s32      antlr.Token
+	cols     []antlr.Token
+	_expr    IExprContext
+	values   []IExprContext
 }
 
 func NewEmptyMapInitializerListContext() *MapInitializerListContext {
 	var p = new(MapInitializerListContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_mapInitializerList
 	return p
 }
 
-func InitEmptyMapInitializerListContext(p *MapInitializerListContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_mapInitializerList
-}
-
 func (*MapInitializerListContext) IsMapInitializerListContext() {}
 
 func NewMapInitializerListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MapInitializerListContext {
 	var p = new(MapInitializerListContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_mapInitializerList
@@ -8857,36 +7883,28 @@ func (s *MapInitializerListContext) GetP
 
 func (s *MapInitializerListContext) GetS32() antlr.Token { return s.s32 }
 
-
 func (s *MapInitializerListContext) SetS32(v antlr.Token) { s.s32 = v }
 
-
 func (s *MapInitializerListContext) GetCols() []antlr.Token { return s.cols }
 
-
 func (s *MapInitializerListContext) SetCols(v []antlr.Token) { s.cols = v }
 
-
 func (s *MapInitializerListContext) Get_optExpr() IOptExprContext { return s._optExpr }
 
 func (s *MapInitializerListContext) Get_expr() IExprContext { return s._expr }
 
-
 func (s *MapInitializerListContext) Set_optExpr(v IOptExprContext) { s._optExpr = v }
 
 func (s *MapInitializerListContext) Set_expr(v IExprContext) { s._expr = v }
 
-
 func (s *MapInitializerListContext) GetKeys() []IOptExprContext { return s.keys }
 
 func (s *MapInitializerListContext) GetValues() []IExprContext { return s.values }
 
-
 func (s *MapInitializerListContext) SetKeys(v []IOptExprContext) { s.keys = v }
 
 func (s *MapInitializerListContext) SetValues(v []IExprContext) { s.values = v }
 
-
 func (s *MapInitializerListContext) AllOptExpr() []IOptExprContext {
 	children := s.GetChildren()
 	len := 0
@@ -8909,12 +7927,12 @@ func (s *MapInitializerListContext) AllO
 }
 
 func (s *MapInitializerListContext) OptExpr(i int) IOptExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IOptExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -8958,12 +7976,12 @@ func (s *MapInitializerListContext) AllE
 }
 
 func (s *MapInitializerListContext) Expr(i int) IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	j := 0
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
 			if j == i {
-				t = ctx.(antlr.RuleContext);
+				t = ctx.(antlr.RuleContext)
 				break
 			}
 			j++
@@ -8993,7 +8011,6 @@ func (s *MapInitializerListContext) ToSt
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *MapInitializerListContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterMapInitializerList(s)
@@ -9016,12 +8033,29 @@ func (s *MapInitializerListContext) Acce
 	}
 }
 
-
-
-
 func (p *CommandsParser) MapInitializerList() (localctx IMapInitializerListContext) {
+	this := p
+	_ = this
+
 	localctx = NewMapInitializerListContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 62, CommandsParserRULE_mapInitializerList)
+
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	var _alt int
 
 	p.EnterOuterAlt(localctx, 1)
@@ -9030,7 +8064,6 @@ func (p *CommandsParser) MapInitializerL
 
 		var _x = p.OptExpr()
 
-
 		localctx.(*MapInitializerListContext)._optExpr = _x
 	}
 	localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr)
@@ -9040,10 +8073,6 @@ func (p *CommandsParser) MapInitializerL
 		var _m = p.Match(CommandsParserCOLON)
 
 		localctx.(*MapInitializerListContext).s32 = _m
-		if p.HasError() {
-				// Recognition error - abort rule
-				goto errorExit
-		}
 	}
 	localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s32)
 	{
@@ -9051,35 +8080,24 @@ func (p *CommandsParser) MapInitializerL
 
 		var _x = p.Expr()
 
-
 		localctx.(*MapInitializerListContext)._expr = _x
 	}
 	localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr)
 	p.SetState(381)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-	_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 46, p.GetParserRuleContext())
-	if p.HasError() {
-		goto errorExit
-	}
+	_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 46, p.GetParserRuleContext())
+
 	for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
 		if _alt == 1 {
 			{
 				p.SetState(374)
 				p.Match(CommandsParserCOMMA)
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			{
 				p.SetState(375)
 
 				var _x = p.OptExpr()
 
-
 				localctx.(*MapInitializerListContext)._optExpr = _x
 			}
 			localctx.(*MapInitializerListContext).keys = append(localctx.(*MapInitializerListContext).keys, localctx.(*MapInitializerListContext)._optExpr)
@@ -9089,10 +8107,6 @@ func (p *CommandsParser) MapInitializerL
 				var _m = p.Match(CommandsParserCOLON)
 
 				localctx.(*MapInitializerListContext).s32 = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 			localctx.(*MapInitializerListContext).cols = append(localctx.(*MapInitializerListContext).cols, localctx.(*MapInitializerListContext).s32)
 			{
@@ -9100,40 +8114,19 @@ func (p *CommandsParser) MapInitializerL
 
 				var _x = p.Expr()
 
-
 				localctx.(*MapInitializerListContext)._expr = _x
 			}
 			localctx.(*MapInitializerListContext).values = append(localctx.(*MapInitializerListContext).values, localctx.(*MapInitializerListContext)._expr)
 
-
 		}
 		p.SetState(383)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-	    	goto errorExit
-	    }
-		_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 46, p.GetParserRuleContext())
-		if p.HasError() {
-			goto errorExit
-		}
+		_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 46, p.GetParserRuleContext())
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // IOptExprContext is an interface to support dynamic dispatch.
 type IOptExprContext interface {
 	antlr.ParserRuleContext
@@ -9142,21 +8135,17 @@ type IOptExprContext interface {
 	GetParser() antlr.Parser
 
 	// GetOpt returns the opt token.
-	GetOpt() antlr.Token 
-
+	GetOpt() antlr.Token
 
 	// SetOpt sets the opt token.
-	SetOpt(antlr.Token) 
-
+	SetOpt(antlr.Token)
 
 	// GetE returns the e rule contexts.
 	GetE() IExprContext
 
-
 	// SetE sets the e rule contexts.
 	SetE(IExprContext)
 
-
 	// Getter signatures
 	Expr() IExprContext
 	QUESTIONMARK() antlr.TerminalNode
@@ -9166,30 +8155,25 @@ type IOptExprContext interface {
 }
 
 type OptExprContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
-	opt antlr.Token
-	e IExprContext 
+	opt    antlr.Token
+	e      IExprContext
 }
 
 func NewEmptyOptExprContext() *OptExprContext {
 	var p = new(OptExprContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_optExpr
 	return p
 }
 
-func InitEmptyOptExprContext(p *OptExprContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_optExpr
-}
-
 func (*OptExprContext) IsOptExprContext() {}
 
 func NewOptExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OptExprContext {
 	var p = new(OptExprContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_optExpr
@@ -9201,21 +8185,17 @@ func (s *OptExprContext) GetParser() ant
 
 func (s *OptExprContext) GetOpt() antlr.Token { return s.opt }
 
-
 func (s *OptExprContext) SetOpt(v antlr.Token) { s.opt = v }
 
-
 func (s *OptExprContext) GetE() IExprContext { return s.e }
 
-
 func (s *OptExprContext) SetE(v IExprContext) { s.e = v }
 
-
 func (s *OptExprContext) Expr() IExprContext {
-	var t antlr.RuleContext;
+	var t antlr.RuleContext
 	for _, ctx := range s.GetChildren() {
 		if _, ok := ctx.(IExprContext); ok {
-			t = ctx.(antlr.RuleContext);
+			t = ctx.(antlr.RuleContext)
 			break
 		}
 	}
@@ -9239,7 +8219,6 @@ func (s *OptExprContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
 func (s *OptExprContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterOptExpr(s)
@@ -9262,23 +8241,35 @@ func (s *OptExprContext) Accept(visitor
 	}
 }
 
-
-
-
 func (p *CommandsParser) OptExpr() (localctx IOptExprContext) {
+	this := p
+	_ = this
+
 	localctx = NewOptExprContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 64, CommandsParserRULE_optExpr)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.EnterOuterAlt(localctx, 1)
 	p.SetState(385)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
 	_la = p.GetTokenStream().LA(1)
 
-
 	if _la == CommandsParserQUESTIONMARK {
 		{
 			p.SetState(384)
@@ -9286,10 +8277,6 @@ func (p *CommandsParser) OptExpr() (loca
 			var _m = p.Match(CommandsParserQUESTIONMARK)
 
 			localctx.(*OptExprContext).opt = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
 	}
@@ -9298,26 +8285,12 @@ func (p *CommandsParser) OptExpr() (loca
 
 		var _x = p.Expr()
 
-
 		localctx.(*OptExprContext).e = _x
 	}
 
-
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 // ILiteralContext is an interface to support dynamic dispatch.
 type ILiteralContext interface {
 	antlr.ParserRuleContext
@@ -9329,28 +8302,23 @@ type ILiteralContext interface {
 }
 
 type LiteralContext struct {
-	antlr.BaseParserRuleContext
+	*antlr.BaseParserRuleContext
 	parser antlr.Parser
 }
 
 func NewEmptyLiteralContext() *LiteralContext {
 	var p = new(LiteralContext)
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
 	p.RuleIndex = CommandsParserRULE_literal
 	return p
 }
 
-func InitEmptyLiteralContext(p *LiteralContext)  {
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
-	p.RuleIndex = CommandsParserRULE_literal
-}
-
 func (*LiteralContext) IsLiteralContext() {}
 
 func NewLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LiteralContext {
 	var p = new(LiteralContext)
 
-	antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
+	p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
 
 	p.parser = parser
 	p.RuleIndex = CommandsParserRULE_literal
@@ -9360,8 +8328,8 @@ func NewLiteralContext(parser antlr.Pars
 
 func (s *LiteralContext) GetParser() antlr.Parser { return s.parser }
 
-func (s *LiteralContext) CopyAll(ctx *LiteralContext) {
-	s.CopyFrom(&ctx.BaseParserRuleContext)
+func (s *LiteralContext) CopyFrom(ctx *LiteralContext) {
+	s.BaseParserRuleContext.CopyFrom(ctx.BaseParserRuleContext)
 }
 
 func (s *LiteralContext) GetRuleContext() antlr.RuleContext {
@@ -9372,28 +8340,23 @@ func (s *LiteralContext) ToStringTree(ru
 	return antlr.TreesStringTree(s, ruleNames, recog)
 }
 
-
-
-
 type BytesContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBytesContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BytesContext {
 	var p = new(BytesContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BytesContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BytesContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BytesContext) GetRuleContext() antlr.RuleContext {
@@ -9404,7 +8367,6 @@ func (s *BytesContext) BYTES() antlr.Ter
 	return s.GetToken(CommandsParserBYTES, 0)
 }
 
-
 func (s *BytesContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterBytes(s)
@@ -9427,26 +8389,23 @@ func (s *BytesContext) Accept(visitor an
 	}
 }
 
-
 type UintContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewUintContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *UintContext {
 	var p = new(UintContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *UintContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *UintContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *UintContext) GetRuleContext() antlr.RuleContext {
@@ -9457,7 +8416,6 @@ func (s *UintContext) NUM_UINT() antlr.T
 	return s.GetToken(CommandsParserNUM_UINT, 0)
 }
 
-
 func (s *UintContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterUint(s)
@@ -9480,26 +8438,23 @@ func (s *UintContext) Accept(visitor ant
 	}
 }
 
-
 type NullContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewNullContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *NullContext {
 	var p = new(NullContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *NullContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *NullContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *NullContext) GetRuleContext() antlr.RuleContext {
@@ -9510,7 +8465,6 @@ func (s *NullContext) NUL() antlr.Termin
 	return s.GetToken(CommandsParserNUL, 0)
 }
 
-
 func (s *NullContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterNull(s)
@@ -9533,26 +8487,23 @@ func (s *NullContext) Accept(visitor ant
 	}
 }
 
-
 type BoolFalseContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBoolFalseContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BoolFalseContext {
 	var p = new(BoolFalseContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BoolFalseContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BoolFalseContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BoolFalseContext) GetRuleContext() antlr.RuleContext {
@@ -9563,7 +8514,6 @@ func (s *BoolFalseContext) CEL_FALSE() a
 	return s.GetToken(CommandsParserCEL_FALSE, 0)
 }
 
-
 func (s *BoolFalseContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterBoolFalse(s)
@@ -9586,26 +8536,23 @@ func (s *BoolFalseContext) Accept(visito
 	}
 }
 
-
 type StringContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewStringContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *StringContext {
 	var p = new(StringContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *StringContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *StringContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *StringContext) GetRuleContext() antlr.RuleContext {
@@ -9616,7 +8563,6 @@ func (s *StringContext) STRING() antlr.T
 	return s.GetToken(CommandsParserSTRING, 0)
 }
 
-
 func (s *StringContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterString(s)
@@ -9639,29 +8585,26 @@ func (s *StringContext) Accept(visitor a
 	}
 }
 
-
 type DoubleContext struct {
-	LiteralContext
+	*LiteralContext
 	sign antlr.Token
-	tok antlr.Token
+	tok  antlr.Token
 }
 
 func NewDoubleContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *DoubleContext {
 	var p = new(DoubleContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *DoubleContext) GetSign() antlr.Token { return s.sign }
 
 func (s *DoubleContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *DoubleContext) SetSign(v antlr.Token) { s.sign = v }
 
 func (s *DoubleContext) SetTok(v antlr.Token) { s.tok = v }
@@ -9678,7 +8621,6 @@ func (s *DoubleContext) MINUS() antlr.Te
 	return s.GetToken(CommandsParserMINUS, 0)
 }
 
-
 func (s *DoubleContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterDouble(s)
@@ -9701,26 +8643,23 @@ func (s *DoubleContext) Accept(visitor a
 	}
 }
 
-
 type BoolTrueContext struct {
-	LiteralContext
+	*LiteralContext
 	tok antlr.Token
 }
 
 func NewBoolTrueContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *BoolTrueContext {
 	var p = new(BoolTrueContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *BoolTrueContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *BoolTrueContext) SetTok(v antlr.Token) { s.tok = v }
 
 func (s *BoolTrueContext) GetRuleContext() antlr.RuleContext {
@@ -9731,7 +8670,6 @@ func (s *BoolTrueContext) CEL_TRUE() ant
 	return s.GetToken(CommandsParserCEL_TRUE, 0)
 }
 
-
 func (s *BoolTrueContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterBoolTrue(s)
@@ -9754,29 +8692,26 @@ func (s *BoolTrueContext) Accept(visitor
 	}
 }
 
-
 type IntContext struct {
-	LiteralContext
+	*LiteralContext
 	sign antlr.Token
-	tok antlr.Token
+	tok  antlr.Token
 }
 
 func NewIntContext(parser antlr.Parser, ctx antlr.ParserRuleContext) *IntContext {
 	var p = new(IntContext)
 
-	InitEmptyLiteralContext(&p.LiteralContext)
+	p.LiteralContext = NewEmptyLiteralContext()
 	p.parser = parser
-	p.CopyAll(ctx.(*LiteralContext))
+	p.CopyFrom(ctx.(*LiteralContext))
 
 	return p
 }
 
-
 func (s *IntContext) GetSign() antlr.Token { return s.sign }
 
 func (s *IntContext) GetTok() antlr.Token { return s.tok }
 
-
 func (s *IntContext) SetSign(v antlr.Token) { s.sign = v }
 
 func (s *IntContext) SetTok(v antlr.Token) { s.tok = v }
@@ -9793,7 +8728,6 @@ func (s *IntContext) MINUS() antlr.Termi
 	return s.GetToken(CommandsParserMINUS, 0)
 }
 
-
 func (s *IntContext) EnterRule(listener antlr.ParseTreeListener) {
 	if listenerT, ok := listener.(CommandsListener); ok {
 		listenerT.EnterInt(s)
@@ -9816,31 +8750,40 @@ func (s *IntContext) Accept(visitor antl
 	}
 }
 
-
-
 func (p *CommandsParser) Literal() (localctx ILiteralContext) {
+	this := p
+	_ = this
+
 	localctx = NewLiteralContext(p, p.GetParserRuleContext(), p.GetState())
 	p.EnterRule(localctx, 66, CommandsParserRULE_literal)
 	var _la int
 
+	defer func() {
+		p.ExitRule()
+	}()
+
+	defer func() {
+		if err := recover(); err != nil {
+			if v, ok := err.(antlr.RecognitionException); ok {
+				localctx.SetException(v)
+				p.GetErrorHandler().ReportError(p, v)
+				p.GetErrorHandler().Recover(p, v)
+			} else {
+				panic(err)
+			}
+		}
+	}()
+
 	p.SetState(403)
 	p.GetErrorHandler().Sync(p)
-	if p.HasError() {
-		goto errorExit
-	}
-
-	switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 50, p.GetParserRuleContext()) {
+	switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 50, p.GetParserRuleContext()) {
 	case 1:
 		localctx = NewIntContext(p, localctx)
 		p.EnterOuterAlt(localctx, 1)
 		p.SetState(390)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserMINUS {
 			{
 				p.SetState(389)
@@ -9848,10 +8791,6 @@ func (p *CommandsParser) Literal() (loca
 				var _m = p.Match(CommandsParserMINUS)
 
 				localctx.(*IntContext).sign = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -9861,13 +8800,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserNUM_INT)
 
 			localctx.(*IntContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 2:
 		localctx = NewUintContext(p, localctx)
 		p.EnterOuterAlt(localctx, 2)
@@ -9877,24 +8811,15 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserNUM_UINT)
 
 			localctx.(*UintContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 3:
 		localctx = NewDoubleContext(p, localctx)
 		p.EnterOuterAlt(localctx, 3)
 		p.SetState(395)
 		p.GetErrorHandler().Sync(p)
-		if p.HasError() {
-			goto errorExit
-		}
 		_la = p.GetTokenStream().LA(1)
 
-
 		if _la == CommandsParserMINUS {
 			{
 				p.SetState(394)
@@ -9902,10 +8827,6 @@ func (p *CommandsParser) Literal() (loca
 				var _m = p.Match(CommandsParserMINUS)
 
 				localctx.(*DoubleContext).sign = _m
-				if p.HasError() {
-						// Recognition error - abort rule
-						goto errorExit
-				}
 			}
 
 		}
@@ -9915,13 +8836,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserNUM_FLOAT)
 
 			localctx.(*DoubleContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 4:
 		localctx = NewStringContext(p, localctx)
 		p.EnterOuterAlt(localctx, 4)
@@ -9931,13 +8847,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserSTRING)
 
 			localctx.(*StringContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 5:
 		localctx = NewBytesContext(p, localctx)
 		p.EnterOuterAlt(localctx, 5)
@@ -9947,13 +8858,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserBYTES)
 
 			localctx.(*BytesContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 6:
 		localctx = NewBoolTrueContext(p, localctx)
 		p.EnterOuterAlt(localctx, 6)
@@ -9963,13 +8869,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserCEL_TRUE)
 
 			localctx.(*BoolTrueContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 7:
 		localctx = NewBoolFalseContext(p, localctx)
 		p.EnterOuterAlt(localctx, 7)
@@ -9979,13 +8880,8 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserCEL_FALSE)
 
 			localctx.(*BoolFalseContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-
 	case 8:
 		localctx = NewNullContext(p, localctx)
 		p.EnterOuterAlt(localctx, 8)
@@ -9995,48 +8891,35 @@ func (p *CommandsParser) Literal() (loca
 			var _m = p.Match(CommandsParserNUL)
 
 			localctx.(*NullContext).tok = _m
-			if p.HasError() {
-					// Recognition error - abort rule
-					goto errorExit
-			}
 		}
 
-	case antlr.ATNInvalidAltNumber:
-		goto errorExit
 	}
 
-
-errorExit:
-	if p.HasError() {
-		v := p.GetError()
-		localctx.SetException(v)
-		p.GetErrorHandler().ReportError(p, v)
-		p.GetErrorHandler().Recover(p, v)
-		p.SetError(nil)
-	}
-	p.ExitRule()
 	return localctx
-	goto errorExit // Trick to prevent compiler error if the label is not used
 }
 
-
 func (p *CommandsParser) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex int) bool {
 	switch ruleIndex {
 	case 22:
-			var t *RelationContext = nil
-			if localctx != nil { t = localctx.(*RelationContext) }
-			return p.Relation_Sempred(t, predIndex)
+		var t *RelationContext = nil
+		if localctx != nil {
+			t = localctx.(*RelationContext)
+		}
+		return p.Relation_Sempred(t, predIndex)
 
 	case 23:
-			var t *CalcContext = nil
-			if localctx != nil { t = localctx.(*CalcContext) }
-			return p.Calc_Sempred(t, predIndex)
+		var t *CalcContext = nil
+		if localctx != nil {
+			t = localctx.(*CalcContext)
+		}
+		return p.Calc_Sempred(t, predIndex)
 
 	case 25:
-			var t *MemberContext = nil
-			if localctx != nil { t = localctx.(*MemberContext) }
-			return p.Member_Sempred(t, predIndex)
-
+		var t *MemberContext = nil
+		if localctx != nil {
+			t = localctx.(*MemberContext)
+		}
+		return p.Member_Sempred(t, predIndex)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(ruleIndex))
@@ -10044,9 +8927,12 @@ func (p *CommandsParser) Sempred(localct
 }
 
 func (p *CommandsParser) Relation_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 0:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
@@ -10054,12 +8940,15 @@ func (p *CommandsParser) Relation_Sempre
 }
 
 func (p *CommandsParser) Calc_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 1:
-			return p.Precpred(p.GetParserRuleContext(), 2)
+		return p.Precpred(p.GetParserRuleContext(), 2)
 
 	case 2:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
@@ -10067,18 +8956,20 @@ func (p *CommandsParser) Calc_Sempred(lo
 }
 
 func (p *CommandsParser) Member_Sempred(localctx antlr.RuleContext, predIndex int) bool {
+	this := p
+	_ = this
+
 	switch predIndex {
 	case 3:
-			return p.Precpred(p.GetParserRuleContext(), 3)
+		return p.Precpred(p.GetParserRuleContext(), 3)
 
 	case 4:
-			return p.Precpred(p.GetParserRuleContext(), 2)
+		return p.Precpred(p.GetParserRuleContext(), 2)
 
 	case 5:
-			return p.Precpred(p.GetParserRuleContext(), 1)
+		return p.Precpred(p.GetParserRuleContext(), 1)
 
 	default:
 		panic("No predicate with index: " + fmt.Sprint(predIndex))
 	}
 }
-
Index: golang-github-google-cel-go/repl/parser/commands_test.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_test.go
+++ golang-github-google-cel-go/repl/parser/commands_test.go
@@ -18,7 +18,7 @@ import (
 	"fmt"
 	"testing"
 
-	antlr "github.com/antlr4-go/antlr/v4"
+	antlr "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 )
 
 type errListener struct {
Index: golang-github-google-cel-go/repl/parser/commands_visitor.go
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/commands_visitor.go
+++ golang-github-google-cel-go/repl/parser/commands_visitor.go
@@ -1,8 +1,7 @@
-// Code generated from ./Commands.g4 by ANTLR 4.13.1. DO NOT EDIT.
+// Code generated from ./Commands.g4 by ANTLR 4.12.0. DO NOT EDIT.
 
 package parser // Commands
-import "github.com/antlr4-go/antlr/v4"
-
+import "github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 // A complete Visitor for a parse tree produced by CommandsParser.
 type CommandsVisitor interface {
@@ -160,5 +159,4 @@ type CommandsVisitor interface {
 
 	// Visit a parse tree produced by CommandsParser#Null.
 	VisitNull(ctx *NullContext) interface{}
-
-}
\ No newline at end of file
+}
Index: golang-github-google-cel-go/repl/parser/regen.sh
===================================================================
--- golang-github-google-cel-go.orig/repl/parser/regen.sh
+++ golang-github-google-cel-go/repl/parser/regen.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-ANTLR_JAR="antlr-4.13.1-complete.jar"
+ANTLR_JAR="antlr-4.12.0-complete.jar"
 export CLASSPATH=".:$ANTLR_JAR:$CLASSPATH"
 antlr4="java -Xmx500M -cp \"$ANTLR_JAR:$CLASSPATH\" org.antlr.v4.Tool"
 
Index: golang-github-google-cel-go/repl/typefmt.go
===================================================================
--- golang-github-google-cel-go.orig/repl/typefmt.go
+++ golang-github-google-cel-go/repl/typefmt.go
@@ -18,7 +18,7 @@ import (
 	"fmt"
 	"strings"
 
-	antlr "github.com/antlr4-go/antlr/v4"
+	"github.com/antlr/antlr4/runtime/Go/antlr/v4"
 
 	"github.com/google/cel-go/repl/parser"
 
