// Code generated from Expression.g4 by ANTLR 4.13.2. DO NOT EDIT.

package expression

import (
	"fmt"
	"github.com/antlr4-go/antlr/v4"
	"sync"
	"unicode"
)

// Suppress unused import error
var _ = fmt.Printf
var _ = sync.Once{}
var _ = unicode.IsLetter

type ExpressionLexer struct {
	*antlr.BaseLexer
	channelNames []string
	modeNames    []string
	// TODO: EOF string
}

var ExpressionLexerLexerStaticData 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 expressionlexerLexerInit() {
	staticData := &ExpressionLexerLexerStaticData
	staticData.ChannelNames = []string{
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	}
	staticData.ModeNames = []string{
		"DEFAULT_MODE",
	}
	staticData.LiteralNames = []string{
		"", "'!'", "'in'", "'&&'", "'||'", "'b'", "','", "'.'", "'['", "']'",
		"'('", "')'", "'+'", "'-'", "'*'", "'/'", "'=='", "'!='",
	}
	staticData.SymbolicNames = []string{
		"", "", "", "", "", "", "", "DOT", "LBRACK", "RBRACK", "LPAREN", "RPAREN",
		"PLUS", "MINUS", "MULTIPLY", "DIVIDE", "EQUAL", "NOTEQUAL", "WhiteSpaces",
		"BooleanLiteral", "Identifier", "IntegerLiteral", "FloatingPointLiteral",
		"StringLiteral", "Whitespace",
	}
	staticData.RuleNames = []string{
		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "DOT", "LBRACK", "RBRACK",
		"LPAREN", "RPAREN", "PLUS", "MINUS", "MULTIPLY", "DIVIDE", "EQUAL",
		"NOTEQUAL", "WhiteSpaces", "BooleanLiteral", "Identifier", "IntegerLiteral",
		"FloatingPointLiteral", "StringLiteral", "Whitespace", "DoubleStringCharacter",
		"SingleStringCharacter", "EscapeSequence", "CharacterEscapeSequence",
		"HexEscapeSequence", "UnicodeEscapeSequence", "ExtendedUnicodeEscapeSequence",
		"SingleEscapeCharacter", "NonEscapeCharacter", "HexEscape", "DecimalIntegerLiteral",
		"HexIntegerLiteral", "OctalIntegerLiteral", "BinaryIntegerLiteral",
		"IntegerTypeSuffix", "DecimalNumeral", "Digits", "Digit", "NonZeroDigit",
		"DigitsAndUnderscores", "DigitOrUnderscore", "Underscores", "HexNumeral",
		"HexDigits", "HexDigit", "HexDigitsAndUnderscores", "HexDigitOrUnderscore",
		"OctalNumeral", "OctalDigits", "OctalDigit", "OctalDigitsAndUnderscores",
		"OctalDigitOrUnderscore", "BinaryNumeral", "BinaryDigits", "BinaryDigit",
		"BinaryDigitsAndUnderscores", "BinaryDigitOrUnderscore", "DecimalFloatingPointLiteral",
		"ExponentPart", "ExponentIndicator", "SignedInteger", "Sign", "FloatTypeSuffix",
		"HexadecimalFloatingPointLiteral", "HexSignificand", "BinaryExponent",
		"BinaryExponentIndicator",
	}
	staticData.PredictionContextCache = antlr.NewPredictionContextCache()
	staticData.serializedATN = []int32{
		4, 0, 24, 499, 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, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7,
		62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67,
		2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1,
		1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6,
		1, 7, 1, 7, 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, 15, 1, 16, 1, 16, 1,
		16, 1, 17, 4, 17, 184, 8, 17, 11, 17, 12, 17, 185, 1, 17, 1, 17, 1, 18,
		1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 199, 8,
		18, 1, 19, 4, 19, 202, 8, 19, 11, 19, 12, 19, 203, 1, 19, 5, 19, 207, 8,
		19, 10, 19, 12, 19, 210, 9, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 216,
		8, 20, 1, 21, 1, 21, 1, 22, 1, 22, 5, 22, 222, 8, 22, 10, 22, 12, 22, 225,
		9, 22, 1, 22, 1, 22, 1, 22, 5, 22, 230, 8, 22, 10, 22, 12, 22, 233, 9,
		22, 1, 22, 3, 22, 236, 8, 22, 1, 23, 4, 23, 239, 8, 23, 11, 23, 12, 23,
		240, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 3, 24, 248, 8, 24, 1, 25, 1, 25,
		1, 25, 3, 25, 253, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 259, 8, 26,
		1, 27, 1, 27, 3, 27, 263, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1,
		29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 279,
		8, 29, 11, 29, 12, 29, 280, 1, 29, 1, 29, 3, 29, 285, 8, 29, 1, 30, 1,
		30, 1, 30, 4, 30, 290, 8, 30, 11, 30, 12, 30, 291, 1, 30, 1, 30, 1, 31,
		1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 4, 33, 302, 8, 33, 11, 33, 12, 33, 303,
		1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 311, 8, 34, 1, 35, 1, 35, 3,
		35, 315, 8, 35, 1, 36, 1, 36, 3, 36, 319, 8, 36, 1, 37, 1, 37, 3, 37, 323,
		8, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 330, 8, 39, 1, 39, 1,
		39, 1, 39, 3, 39, 335, 8, 39, 3, 39, 337, 8, 39, 1, 40, 1, 40, 3, 40, 341,
		8, 40, 1, 40, 3, 40, 344, 8, 40, 1, 41, 1, 41, 3, 41, 348, 8, 41, 1, 42,
		1, 42, 1, 43, 4, 43, 353, 8, 43, 11, 43, 12, 43, 354, 1, 44, 1, 44, 3,
		44, 359, 8, 44, 1, 45, 4, 45, 362, 8, 45, 11, 45, 12, 45, 363, 1, 46, 1,
		46, 1, 46, 1, 46, 1, 47, 1, 47, 3, 47, 372, 8, 47, 1, 47, 3, 47, 375, 8,
		47, 1, 48, 1, 48, 1, 49, 4, 49, 380, 8, 49, 11, 49, 12, 49, 381, 1, 50,
		1, 50, 3, 50, 386, 8, 50, 1, 51, 1, 51, 3, 51, 390, 8, 51, 1, 51, 1, 51,
		1, 52, 1, 52, 3, 52, 396, 8, 52, 1, 52, 3, 52, 399, 8, 52, 1, 53, 1, 53,
		1, 54, 4, 54, 404, 8, 54, 11, 54, 12, 54, 405, 1, 55, 1, 55, 3, 55, 410,
		8, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 3, 57, 418, 8, 57, 1,
		57, 3, 57, 421, 8, 57, 1, 58, 1, 58, 1, 59, 4, 59, 426, 8, 59, 11, 59,
		12, 59, 427, 1, 60, 1, 60, 3, 60, 432, 8, 60, 1, 61, 1, 61, 1, 61, 3, 61,
		437, 8, 61, 1, 61, 3, 61, 440, 8, 61, 1, 61, 3, 61, 443, 8, 61, 1, 61,
		1, 61, 1, 61, 3, 61, 448, 8, 61, 1, 61, 3, 61, 451, 8, 61, 1, 61, 1, 61,
		1, 61, 3, 61, 456, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 461, 8, 61, 1, 62,
		1, 62, 1, 62, 1, 63, 1, 63, 1, 64, 3, 64, 469, 8, 64, 1, 64, 1, 64, 1,
		65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 3, 67, 480, 8, 67, 1, 68,
		1, 68, 3, 68, 484, 8, 68, 1, 68, 1, 68, 1, 68, 3, 68, 489, 8, 68, 1, 68,
		1, 68, 3, 68, 493, 8, 68, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 0, 0, 71,
		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, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59,
		0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0,
		81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101,
		0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119,
		0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137,
		0, 139, 0, 141, 0, 1, 0, 19, 4, 0, 9, 9, 11, 12, 32, 32, 160, 160, 4, 0,
		36, 36, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95,
		97, 122, 3, 0, 9, 10, 13, 13, 32, 32, 4, 0, 10, 10, 13, 13, 34, 34, 92,
		92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 9, 0, 34, 34, 39, 39, 92, 92,
		98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 118, 118, 12, 0, 10, 10,
		13, 13, 34, 34, 39, 39, 48, 57, 92, 92, 98, 98, 102, 102, 110, 110, 114,
		114, 116, 118, 120, 120, 2, 0, 76, 76, 108, 108, 1, 0, 49, 57, 2, 0, 88,
		88, 120, 120, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 55, 2, 0, 66, 66,
		98, 98, 1, 0, 48, 49, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 4,
		0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 80, 80, 112, 112, 512, 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, 1, 143, 1, 0, 0, 0, 3, 145, 1, 0, 0, 0, 5, 148, 1, 0, 0, 0,
		7, 151, 1, 0, 0, 0, 9, 154, 1, 0, 0, 0, 11, 156, 1, 0, 0, 0, 13, 158, 1,
		0, 0, 0, 15, 160, 1, 0, 0, 0, 17, 162, 1, 0, 0, 0, 19, 164, 1, 0, 0, 0,
		21, 166, 1, 0, 0, 0, 23, 168, 1, 0, 0, 0, 25, 170, 1, 0, 0, 0, 27, 172,
		1, 0, 0, 0, 29, 174, 1, 0, 0, 0, 31, 176, 1, 0, 0, 0, 33, 179, 1, 0, 0,
		0, 35, 183, 1, 0, 0, 0, 37, 198, 1, 0, 0, 0, 39, 201, 1, 0, 0, 0, 41, 215,
		1, 0, 0, 0, 43, 217, 1, 0, 0, 0, 45, 235, 1, 0, 0, 0, 47, 238, 1, 0, 0,
		0, 49, 247, 1, 0, 0, 0, 51, 252, 1, 0, 0, 0, 53, 258, 1, 0, 0, 0, 55, 262,
		1, 0, 0, 0, 57, 264, 1, 0, 0, 0, 59, 284, 1, 0, 0, 0, 61, 286, 1, 0, 0,
		0, 63, 295, 1, 0, 0, 0, 65, 297, 1, 0, 0, 0, 67, 299, 1, 0, 0, 0, 69, 308,
		1, 0, 0, 0, 71, 312, 1, 0, 0, 0, 73, 316, 1, 0, 0, 0, 75, 320, 1, 0, 0,
		0, 77, 324, 1, 0, 0, 0, 79, 336, 1, 0, 0, 0, 81, 338, 1, 0, 0, 0, 83, 347,
		1, 0, 0, 0, 85, 349, 1, 0, 0, 0, 87, 352, 1, 0, 0, 0, 89, 358, 1, 0, 0,
		0, 91, 361, 1, 0, 0, 0, 93, 365, 1, 0, 0, 0, 95, 369, 1, 0, 0, 0, 97, 376,
		1, 0, 0, 0, 99, 379, 1, 0, 0, 0, 101, 385, 1, 0, 0, 0, 103, 387, 1, 0,
		0, 0, 105, 393, 1, 0, 0, 0, 107, 400, 1, 0, 0, 0, 109, 403, 1, 0, 0, 0,
		111, 409, 1, 0, 0, 0, 113, 411, 1, 0, 0, 0, 115, 415, 1, 0, 0, 0, 117,
		422, 1, 0, 0, 0, 119, 425, 1, 0, 0, 0, 121, 431, 1, 0, 0, 0, 123, 460,
		1, 0, 0, 0, 125, 462, 1, 0, 0, 0, 127, 465, 1, 0, 0, 0, 129, 468, 1, 0,
		0, 0, 131, 472, 1, 0, 0, 0, 133, 474, 1, 0, 0, 0, 135, 476, 1, 0, 0, 0,
		137, 492, 1, 0, 0, 0, 139, 494, 1, 0, 0, 0, 141, 497, 1, 0, 0, 0, 143,
		144, 5, 33, 0, 0, 144, 2, 1, 0, 0, 0, 145, 146, 5, 105, 0, 0, 146, 147,
		5, 110, 0, 0, 147, 4, 1, 0, 0, 0, 148, 149, 5, 38, 0, 0, 149, 150, 5, 38,
		0, 0, 150, 6, 1, 0, 0, 0, 151, 152, 5, 124, 0, 0, 152, 153, 5, 124, 0,
		0, 153, 8, 1, 0, 0, 0, 154, 155, 5, 98, 0, 0, 155, 10, 1, 0, 0, 0, 156,
		157, 5, 44, 0, 0, 157, 12, 1, 0, 0, 0, 158, 159, 5, 46, 0, 0, 159, 14,
		1, 0, 0, 0, 160, 161, 5, 91, 0, 0, 161, 16, 1, 0, 0, 0, 162, 163, 5, 93,
		0, 0, 163, 18, 1, 0, 0, 0, 164, 165, 5, 40, 0, 0, 165, 20, 1, 0, 0, 0,
		166, 167, 5, 41, 0, 0, 167, 22, 1, 0, 0, 0, 168, 169, 5, 43, 0, 0, 169,
		24, 1, 0, 0, 0, 170, 171, 5, 45, 0, 0, 171, 26, 1, 0, 0, 0, 172, 173, 5,
		42, 0, 0, 173, 28, 1, 0, 0, 0, 174, 175, 5, 47, 0, 0, 175, 30, 1, 0, 0,
		0, 176, 177, 5, 61, 0, 0, 177, 178, 5, 61, 0, 0, 178, 32, 1, 0, 0, 0, 179,
		180, 5, 33, 0, 0, 180, 181, 5, 61, 0, 0, 181, 34, 1, 0, 0, 0, 182, 184,
		7, 0, 0, 0, 183, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 183, 1, 0,
		0, 0, 185, 186, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 188, 6, 17, 0, 0,
		188, 36, 1, 0, 0, 0, 189, 190, 5, 116, 0, 0, 190, 191, 5, 114, 0, 0, 191,
		192, 5, 117, 0, 0, 192, 199, 5, 101, 0, 0, 193, 194, 5, 102, 0, 0, 194,
		195, 5, 97, 0, 0, 195, 196, 5, 108, 0, 0, 196, 197, 5, 115, 0, 0, 197,
		199, 5, 101, 0, 0, 198, 189, 1, 0, 0, 0, 198, 193, 1, 0, 0, 0, 199, 38,
		1, 0, 0, 0, 200, 202, 7, 1, 0, 0, 201, 200, 1, 0, 0, 0, 202, 203, 1, 0,
		0, 0, 203, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 208, 1, 0, 0, 0,
		205, 207, 7, 2, 0, 0, 206, 205, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 208,
		206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 40, 1, 0, 0, 0, 210, 208, 1,
		0, 0, 0, 211, 216, 3, 69, 34, 0, 212, 216, 3, 71, 35, 0, 213, 216, 3, 73,
		36, 0, 214, 216, 3, 75, 37, 0, 215, 211, 1, 0, 0, 0, 215, 212, 1, 0, 0,
		0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 42, 1, 0, 0, 0, 217,
		218, 3, 123, 61, 0, 218, 44, 1, 0, 0, 0, 219, 223, 5, 34, 0, 0, 220, 222,
		3, 49, 24, 0, 221, 220, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1,
		0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 226, 1, 0, 0, 0, 225, 223, 1, 0, 0,
		0, 226, 236, 5, 34, 0, 0, 227, 231, 5, 39, 0, 0, 228, 230, 3, 51, 25, 0,
		229, 228, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231, 229, 1, 0, 0, 0, 231,
		232, 1, 0, 0, 0, 232, 234, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 234, 236,
		5, 39, 0, 0, 235, 219, 1, 0, 0, 0, 235, 227, 1, 0, 0, 0, 236, 46, 1, 0,
		0, 0, 237, 239, 7, 3, 0, 0, 238, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0,
		240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242, 1, 0, 0, 0, 242,
		243, 6, 23, 0, 0, 243, 48, 1, 0, 0, 0, 244, 248, 8, 4, 0, 0, 245, 246,
		5, 92, 0, 0, 246, 248, 3, 53, 26, 0, 247, 244, 1, 0, 0, 0, 247, 245, 1,
		0, 0, 0, 248, 50, 1, 0, 0, 0, 249, 253, 8, 5, 0, 0, 250, 251, 5, 92, 0,
		0, 251, 253, 3, 53, 26, 0, 252, 249, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0,
		253, 52, 1, 0, 0, 0, 254, 259, 3, 55, 27, 0, 255, 259, 3, 57, 28, 0, 256,
		259, 3, 59, 29, 0, 257, 259, 3, 61, 30, 0, 258, 254, 1, 0, 0, 0, 258, 255,
		1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258, 257, 1, 0, 0, 0, 259, 54, 1, 0,
		0, 0, 260, 263, 3, 63, 31, 0, 261, 263, 3, 65, 32, 0, 262, 260, 1, 0, 0,
		0, 262, 261, 1, 0, 0, 0, 263, 56, 1, 0, 0, 0, 264, 265, 5, 120, 0, 0, 265,
		266, 3, 97, 48, 0, 266, 267, 3, 97, 48, 0, 267, 58, 1, 0, 0, 0, 268, 269,
		5, 117, 0, 0, 269, 270, 3, 97, 48, 0, 270, 271, 3, 97, 48, 0, 271, 272,
		3, 97, 48, 0, 272, 273, 3, 97, 48, 0, 273, 285, 1, 0, 0, 0, 274, 275, 5,
		117, 0, 0, 275, 276, 5, 123, 0, 0, 276, 278, 3, 97, 48, 0, 277, 279, 3,
		97, 48, 0, 278, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 278, 1, 0,
		0, 0, 280, 281, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 283, 5, 125, 0,
		0, 283, 285, 1, 0, 0, 0, 284, 268, 1, 0, 0, 0, 284, 274, 1, 0, 0, 0, 285,
		60, 1, 0, 0, 0, 286, 287, 5, 117, 0, 0, 287, 289, 5, 123, 0, 0, 288, 290,
		3, 97, 48, 0, 289, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 289, 1,
		0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293, 294, 5, 125,
		0, 0, 294, 62, 1, 0, 0, 0, 295, 296, 7, 6, 0, 0, 296, 64, 1, 0, 0, 0, 297,
		298, 8, 7, 0, 0, 298, 66, 1, 0, 0, 0, 299, 301, 5, 92, 0, 0, 300, 302,
		5, 120, 0, 0, 301, 300, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 301, 1,
		0, 0, 0, 303, 304, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 306, 3, 97, 48,
		0, 306, 307, 3, 97, 48, 0, 307, 68, 1, 0, 0, 0, 308, 310, 3, 79, 39, 0,
		309, 311, 3, 77, 38, 0, 310, 309, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311,
		70, 1, 0, 0, 0, 312, 314, 3, 93, 46, 0, 313, 315, 3, 77, 38, 0, 314, 313,
		1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 72, 1, 0, 0, 0, 316, 318, 3, 103,
		51, 0, 317, 319, 3, 77, 38, 0, 318, 317, 1, 0, 0, 0, 318, 319, 1, 0, 0,
		0, 319, 74, 1, 0, 0, 0, 320, 322, 3, 113, 56, 0, 321, 323, 3, 77, 38, 0,
		322, 321, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 76, 1, 0, 0, 0, 324, 325,
		7, 8, 0, 0, 325, 78, 1, 0, 0, 0, 326, 337, 5, 48, 0, 0, 327, 334, 3, 85,
		42, 0, 328, 330, 3, 81, 40, 0, 329, 328, 1, 0, 0, 0, 329, 330, 1, 0, 0,
		0, 330, 335, 1, 0, 0, 0, 331, 332, 3, 91, 45, 0, 332, 333, 3, 81, 40, 0,
		333, 335, 1, 0, 0, 0, 334, 329, 1, 0, 0, 0, 334, 331, 1, 0, 0, 0, 335,
		337, 1, 0, 0, 0, 336, 326, 1, 0, 0, 0, 336, 327, 1, 0, 0, 0, 337, 80, 1,
		0, 0, 0, 338, 343, 3, 83, 41, 0, 339, 341, 3, 87, 43, 0, 340, 339, 1, 0,
		0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 344, 3, 83, 41,
		0, 343, 340, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 82, 1, 0, 0, 0, 345,
		348, 5, 48, 0, 0, 346, 348, 3, 85, 42, 0, 347, 345, 1, 0, 0, 0, 347, 346,
		1, 0, 0, 0, 348, 84, 1, 0, 0, 0, 349, 350, 7, 9, 0, 0, 350, 86, 1, 0, 0,
		0, 351, 353, 3, 89, 44, 0, 352, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0,
		354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 88, 1, 0, 0, 0, 356, 359,
		3, 83, 41, 0, 357, 359, 5, 95, 0, 0, 358, 356, 1, 0, 0, 0, 358, 357, 1,
		0, 0, 0, 359, 90, 1, 0, 0, 0, 360, 362, 5, 95, 0, 0, 361, 360, 1, 0, 0,
		0, 362, 363, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364,
		92, 1, 0, 0, 0, 365, 366, 5, 48, 0, 0, 366, 367, 7, 10, 0, 0, 367, 368,
		3, 95, 47, 0, 368, 94, 1, 0, 0, 0, 369, 374, 3, 97, 48, 0, 370, 372, 3,
		99, 49, 0, 371, 370, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 373, 1, 0,
		0, 0, 373, 375, 3, 97, 48, 0, 374, 371, 1, 0, 0, 0, 374, 375, 1, 0, 0,
		0, 375, 96, 1, 0, 0, 0, 376, 377, 7, 11, 0, 0, 377, 98, 1, 0, 0, 0, 378,
		380, 3, 101, 50, 0, 379, 378, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 379,
		1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 100, 1, 0, 0, 0, 383, 386, 3, 97,
		48, 0, 384, 386, 5, 95, 0, 0, 385, 383, 1, 0, 0, 0, 385, 384, 1, 0, 0,
		0, 386, 102, 1, 0, 0, 0, 387, 389, 5, 48, 0, 0, 388, 390, 3, 91, 45, 0,
		389, 388, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391,
		392, 3, 105, 52, 0, 392, 104, 1, 0, 0, 0, 393, 398, 3, 107, 53, 0, 394,
		396, 3, 109, 54, 0, 395, 394, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396, 397,
		1, 0, 0, 0, 397, 399, 3, 107, 53, 0, 398, 395, 1, 0, 0, 0, 398, 399, 1,
		0, 0, 0, 399, 106, 1, 0, 0, 0, 400, 401, 7, 12, 0, 0, 401, 108, 1, 0, 0,
		0, 402, 404, 3, 111, 55, 0, 403, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0,
		405, 403, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 110, 1, 0, 0, 0, 407,
		410, 3, 107, 53, 0, 408, 410, 5, 95, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408,
		1, 0, 0, 0, 410, 112, 1, 0, 0, 0, 411, 412, 5, 48, 0, 0, 412, 413, 7, 13,
		0, 0, 413, 414, 3, 115, 57, 0, 414, 114, 1, 0, 0, 0, 415, 420, 3, 117,
		58, 0, 416, 418, 3, 119, 59, 0, 417, 416, 1, 0, 0, 0, 417, 418, 1, 0, 0,
		0, 418, 419, 1, 0, 0, 0, 419, 421, 3, 117, 58, 0, 420, 417, 1, 0, 0, 0,
		420, 421, 1, 0, 0, 0, 421, 116, 1, 0, 0, 0, 422, 423, 7, 14, 0, 0, 423,
		118, 1, 0, 0, 0, 424, 426, 3, 121, 60, 0, 425, 424, 1, 0, 0, 0, 426, 427,
		1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 120, 1, 0,
		0, 0, 429, 432, 3, 117, 58, 0, 430, 432, 5, 95, 0, 0, 431, 429, 1, 0, 0,
		0, 431, 430, 1, 0, 0, 0, 432, 122, 1, 0, 0, 0, 433, 434, 3, 81, 40, 0,
		434, 436, 5, 46, 0, 0, 435, 437, 3, 81, 40, 0, 436, 435, 1, 0, 0, 0, 436,
		437, 1, 0, 0, 0, 437, 439, 1, 0, 0, 0, 438, 440, 3, 125, 62, 0, 439, 438,
		1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 442, 1, 0, 0, 0, 441, 443, 3, 133,
		66, 0, 442, 441, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 461, 1, 0, 0, 0,
		444, 445, 5, 46, 0, 0, 445, 447, 3, 81, 40, 0, 446, 448, 3, 125, 62, 0,
		447, 446, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 450, 1, 0, 0, 0, 449,
		451, 3, 133, 66, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 461,
		1, 0, 0, 0, 452, 453, 3, 81, 40, 0, 453, 455, 3, 125, 62, 0, 454, 456,
		3, 133, 66, 0, 455, 454, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 461, 1,
		0, 0, 0, 457, 458, 3, 81, 40, 0, 458, 459, 3, 133, 66, 0, 459, 461, 1,
		0, 0, 0, 460, 433, 1, 0, 0, 0, 460, 444, 1, 0, 0, 0, 460, 452, 1, 0, 0,
		0, 460, 457, 1, 0, 0, 0, 461, 124, 1, 0, 0, 0, 462, 463, 3, 127, 63, 0,
		463, 464, 3, 129, 64, 0, 464, 126, 1, 0, 0, 0, 465, 466, 7, 15, 0, 0, 466,
		128, 1, 0, 0, 0, 467, 469, 3, 131, 65, 0, 468, 467, 1, 0, 0, 0, 468, 469,
		1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, 471, 3, 81, 40, 0, 471, 130, 1,
		0, 0, 0, 472, 473, 7, 16, 0, 0, 473, 132, 1, 0, 0, 0, 474, 475, 7, 17,
		0, 0, 475, 134, 1, 0, 0, 0, 476, 477, 3, 137, 68, 0, 477, 479, 3, 139,
		69, 0, 478, 480, 3, 133, 66, 0, 479, 478, 1, 0, 0, 0, 479, 480, 1, 0, 0,
		0, 480, 136, 1, 0, 0, 0, 481, 483, 3, 93, 46, 0, 482, 484, 5, 46, 0, 0,
		483, 482, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 493, 1, 0, 0, 0, 485,
		486, 5, 48, 0, 0, 486, 488, 7, 10, 0, 0, 487, 489, 3, 95, 47, 0, 488, 487,
		1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 491, 5, 46,
		0, 0, 491, 493, 3, 95, 47, 0, 492, 481, 1, 0, 0, 0, 492, 485, 1, 0, 0,
		0, 493, 138, 1, 0, 0, 0, 494, 495, 3, 141, 70, 0, 495, 496, 3, 129, 64,
		0, 496, 140, 1, 0, 0, 0, 497, 498, 7, 18, 0, 0, 498, 142, 1, 0, 0, 0, 56,
		0, 185, 198, 203, 208, 215, 223, 231, 235, 240, 247, 252, 258, 262, 280,
		284, 291, 303, 310, 314, 318, 322, 329, 334, 336, 340, 343, 347, 354, 358,
		363, 371, 374, 381, 385, 389, 395, 398, 405, 409, 417, 420, 427, 431, 436,
		439, 442, 447, 450, 455, 460, 468, 479, 483, 488, 492, 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)
	}
}

// ExpressionLexerInit initializes any static state used to implement ExpressionLexer. By default the
// static state used to implement the lexer is lazily initialized during the first call to
// NewExpressionLexer(). You can call this function if you wish to initialize the static state ahead
// of time.
func ExpressionLexerInit() {
	staticData := &ExpressionLexerLexerStaticData
	staticData.once.Do(expressionlexerLexerInit)
}

// NewExpressionLexer produces a new lexer instance for the optional input antlr.CharStream.
func NewExpressionLexer(input antlr.CharStream) *ExpressionLexer {
	ExpressionLexerInit()
	l := new(ExpressionLexer)
	l.BaseLexer = antlr.NewBaseLexer(input)
	staticData := &ExpressionLexerLexerStaticData
	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 = "Expression.g4"
	// TODO: l.EOF = antlr.TokenEOF

	return l
}

// ExpressionLexer tokens.
const (
	ExpressionLexerT__0                 = 1
	ExpressionLexerT__1                 = 2
	ExpressionLexerT__2                 = 3
	ExpressionLexerT__3                 = 4
	ExpressionLexerT__4                 = 5
	ExpressionLexerT__5                 = 6
	ExpressionLexerDOT                  = 7
	ExpressionLexerLBRACK               = 8
	ExpressionLexerRBRACK               = 9
	ExpressionLexerLPAREN               = 10
	ExpressionLexerRPAREN               = 11
	ExpressionLexerPLUS                 = 12
	ExpressionLexerMINUS                = 13
	ExpressionLexerMULTIPLY             = 14
	ExpressionLexerDIVIDE               = 15
	ExpressionLexerEQUAL                = 16
	ExpressionLexerNOTEQUAL             = 17
	ExpressionLexerWhiteSpaces          = 18
	ExpressionLexerBooleanLiteral       = 19
	ExpressionLexerIdentifier           = 20
	ExpressionLexerIntegerLiteral       = 21
	ExpressionLexerFloatingPointLiteral = 22
	ExpressionLexerStringLiteral        = 23
	ExpressionLexerWhitespace           = 24
)
