// Code generated from Tdat.g4 by ANTLR 4.10.1. DO NOT EDIT.

package parser

import (
	"fmt"
	"sync"
	"unicode"

	"github.com/antlr/antlr4/runtime/Go/antlr"
)

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

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

var tdatlexerLexerStaticData 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 tdatlexerLexerInit() {
	staticData := &tdatlexerLexerStaticData
	staticData.channelNames = []string{
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	}
	staticData.modeNames = []string{
		"DEFAULT_MODE",
	}
	staticData.literalNames = []string{
		"", "':'", "'{'", "'}'", "'=>'", "';'", "'Each'", "'None'", "'Any'",
		"'|'", "','", "'('", "')'", "'+'", "'-'", "'*'", "'/'", "'%'", "'roundUp'",
		"'roundDown'", "'abs'", "'or'", "'and'", "'<'", "'>'", "'<='", "'>='",
		"'=='", "'!='",
	}
	staticData.symbolicNames = []string{
		"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "", "", "", "", "", "ID", "METRIC", "INT",
		"FLOAT", "STRING", "CHAR", "LINE_COMMENT", "COMMENT", "WS",
	}
	staticData.ruleNames = []string{
		"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
		"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
		"T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
		"T__25", "T__26", "T__27", "ID", "METRIC", "INT", "FLOAT", "STRING",
		"ID_LETTER", "ESC", "DIGIT", "CHAR", "LINE_COMMENT", "COMMENT", "WS",
	}
	staticData.predictionContextCache = antlr.NewPredictionContextCache()
	staticData.serializedATN = []int32{
		4, 0, 37, 264, 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, 1, 0, 1, 0, 1, 1, 1, 1,
		1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5,
		1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 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, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17,
		1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1,
		18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21,
		1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 25, 1,
		25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28,
		5, 28, 173, 8, 28, 10, 28, 12, 28, 176, 9, 28, 1, 29, 1, 29, 1, 29, 1,
		30, 4, 30, 182, 8, 30, 11, 30, 12, 30, 183, 1, 31, 4, 31, 187, 8, 31, 11,
		31, 12, 31, 188, 1, 31, 1, 31, 5, 31, 193, 8, 31, 10, 31, 12, 31, 196,
		9, 31, 1, 31, 1, 31, 4, 31, 200, 8, 31, 11, 31, 12, 31, 201, 3, 31, 204,
		8, 31, 1, 32, 1, 32, 1, 32, 5, 32, 209, 8, 32, 10, 32, 12, 32, 212, 9,
		32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 222,
		8, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 232,
		8, 37, 10, 37, 12, 37, 235, 9, 37, 1, 37, 3, 37, 238, 8, 37, 1, 37, 1,
		37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 248, 8, 38, 10, 38,
		12, 38, 251, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 4, 39, 259,
		8, 39, 11, 39, 12, 39, 260, 1, 39, 1, 39, 3, 210, 233, 249, 0, 40, 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, 0, 69, 0, 71, 0, 73, 34, 75, 35, 77, 36,
		79, 37, 1, 0, 4, 3, 0, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 65,
		90, 97, 122, 124, 124, 3, 0, 9, 10, 13, 13, 32, 32, 274, 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, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1,
		0, 0, 0, 0, 79, 1, 0, 0, 0, 1, 81, 1, 0, 0, 0, 3, 83, 1, 0, 0, 0, 5, 85,
		1, 0, 0, 0, 7, 87, 1, 0, 0, 0, 9, 90, 1, 0, 0, 0, 11, 92, 1, 0, 0, 0, 13,
		97, 1, 0, 0, 0, 15, 102, 1, 0, 0, 0, 17, 106, 1, 0, 0, 0, 19, 108, 1, 0,
		0, 0, 21, 110, 1, 0, 0, 0, 23, 112, 1, 0, 0, 0, 25, 114, 1, 0, 0, 0, 27,
		116, 1, 0, 0, 0, 29, 118, 1, 0, 0, 0, 31, 120, 1, 0, 0, 0, 33, 122, 1,
		0, 0, 0, 35, 124, 1, 0, 0, 0, 37, 132, 1, 0, 0, 0, 39, 142, 1, 0, 0, 0,
		41, 146, 1, 0, 0, 0, 43, 149, 1, 0, 0, 0, 45, 153, 1, 0, 0, 0, 47, 155,
		1, 0, 0, 0, 49, 157, 1, 0, 0, 0, 51, 160, 1, 0, 0, 0, 53, 163, 1, 0, 0,
		0, 55, 166, 1, 0, 0, 0, 57, 169, 1, 0, 0, 0, 59, 177, 1, 0, 0, 0, 61, 181,
		1, 0, 0, 0, 63, 203, 1, 0, 0, 0, 65, 205, 1, 0, 0, 0, 67, 215, 1, 0, 0,
		0, 69, 221, 1, 0, 0, 0, 71, 223, 1, 0, 0, 0, 73, 225, 1, 0, 0, 0, 75, 227,
		1, 0, 0, 0, 77, 243, 1, 0, 0, 0, 79, 258, 1, 0, 0, 0, 81, 82, 5, 58, 0,
		0, 82, 2, 1, 0, 0, 0, 83, 84, 5, 123, 0, 0, 84, 4, 1, 0, 0, 0, 85, 86,
		5, 125, 0, 0, 86, 6, 1, 0, 0, 0, 87, 88, 5, 61, 0, 0, 88, 89, 5, 62, 0,
		0, 89, 8, 1, 0, 0, 0, 90, 91, 5, 59, 0, 0, 91, 10, 1, 0, 0, 0, 92, 93,
		5, 69, 0, 0, 93, 94, 5, 97, 0, 0, 94, 95, 5, 99, 0, 0, 95, 96, 5, 104,
		0, 0, 96, 12, 1, 0, 0, 0, 97, 98, 5, 78, 0, 0, 98, 99, 5, 111, 0, 0, 99,
		100, 5, 110, 0, 0, 100, 101, 5, 101, 0, 0, 101, 14, 1, 0, 0, 0, 102, 103,
		5, 65, 0, 0, 103, 104, 5, 110, 0, 0, 104, 105, 5, 121, 0, 0, 105, 16, 1,
		0, 0, 0, 106, 107, 5, 124, 0, 0, 107, 18, 1, 0, 0, 0, 108, 109, 5, 44,
		0, 0, 109, 20, 1, 0, 0, 0, 110, 111, 5, 40, 0, 0, 111, 22, 1, 0, 0, 0,
		112, 113, 5, 41, 0, 0, 113, 24, 1, 0, 0, 0, 114, 115, 5, 43, 0, 0, 115,
		26, 1, 0, 0, 0, 116, 117, 5, 45, 0, 0, 117, 28, 1, 0, 0, 0, 118, 119, 5,
		42, 0, 0, 119, 30, 1, 0, 0, 0, 120, 121, 5, 47, 0, 0, 121, 32, 1, 0, 0,
		0, 122, 123, 5, 37, 0, 0, 123, 34, 1, 0, 0, 0, 124, 125, 5, 114, 0, 0,
		125, 126, 5, 111, 0, 0, 126, 127, 5, 117, 0, 0, 127, 128, 5, 110, 0, 0,
		128, 129, 5, 100, 0, 0, 129, 130, 5, 85, 0, 0, 130, 131, 5, 112, 0, 0,
		131, 36, 1, 0, 0, 0, 132, 133, 5, 114, 0, 0, 133, 134, 5, 111, 0, 0, 134,
		135, 5, 117, 0, 0, 135, 136, 5, 110, 0, 0, 136, 137, 5, 100, 0, 0, 137,
		138, 5, 68, 0, 0, 138, 139, 5, 111, 0, 0, 139, 140, 5, 119, 0, 0, 140,
		141, 5, 110, 0, 0, 141, 38, 1, 0, 0, 0, 142, 143, 5, 97, 0, 0, 143, 144,
		5, 98, 0, 0, 144, 145, 5, 115, 0, 0, 145, 40, 1, 0, 0, 0, 146, 147, 5,
		111, 0, 0, 147, 148, 5, 114, 0, 0, 148, 42, 1, 0, 0, 0, 149, 150, 5, 97,
		0, 0, 150, 151, 5, 110, 0, 0, 151, 152, 5, 100, 0, 0, 152, 44, 1, 0, 0,
		0, 153, 154, 5, 60, 0, 0, 154, 46, 1, 0, 0, 0, 155, 156, 5, 62, 0, 0, 156,
		48, 1, 0, 0, 0, 157, 158, 5, 60, 0, 0, 158, 159, 5, 61, 0, 0, 159, 50,
		1, 0, 0, 0, 160, 161, 5, 62, 0, 0, 161, 162, 5, 61, 0, 0, 162, 52, 1, 0,
		0, 0, 163, 164, 5, 61, 0, 0, 164, 165, 5, 61, 0, 0, 165, 54, 1, 0, 0, 0,
		166, 167, 5, 33, 0, 0, 167, 168, 5, 61, 0, 0, 168, 56, 1, 0, 0, 0, 169,
		174, 3, 67, 33, 0, 170, 173, 3, 67, 33, 0, 171, 173, 3, 71, 35, 0, 172,
		170, 1, 0, 0, 0, 172, 171, 1, 0, 0, 0, 173, 176, 1, 0, 0, 0, 174, 172,
		1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 58, 1, 0, 0, 0, 176, 174, 1, 0,
		0, 0, 177, 178, 5, 36, 0, 0, 178, 179, 3, 57, 28, 0, 179, 60, 1, 0, 0,
		0, 180, 182, 3, 71, 35, 0, 181, 180, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0,
		183, 181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 62, 1, 0, 0, 0, 185, 187,
		3, 71, 35, 0, 186, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 186, 1,
		0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 194, 5, 46, 0,
		0, 191, 193, 3, 71, 35, 0, 192, 191, 1, 0, 0, 0, 193, 196, 1, 0, 0, 0,
		194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 204, 1, 0, 0, 0, 196,
		194, 1, 0, 0, 0, 197, 199, 5, 46, 0, 0, 198, 200, 3, 71, 35, 0, 199, 198,
		1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 201, 202, 1, 0,
		0, 0, 202, 204, 1, 0, 0, 0, 203, 186, 1, 0, 0, 0, 203, 197, 1, 0, 0, 0,
		204, 64, 1, 0, 0, 0, 205, 210, 5, 34, 0, 0, 206, 209, 3, 69, 34, 0, 207,
		209, 9, 0, 0, 0, 208, 206, 1, 0, 0, 0, 208, 207, 1, 0, 0, 0, 209, 212,
		1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 210, 208, 1, 0, 0, 0, 211, 213, 1, 0,
		0, 0, 212, 210, 1, 0, 0, 0, 213, 214, 5, 34, 0, 0, 214, 66, 1, 0, 0, 0,
		215, 216, 7, 0, 0, 0, 216, 68, 1, 0, 0, 0, 217, 218, 5, 92, 0, 0, 218,
		222, 5, 34, 0, 0, 219, 220, 5, 92, 0, 0, 220, 222, 5, 92, 0, 0, 221, 217,
		1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 222, 70, 1, 0, 0, 0, 223, 224, 7, 1,
		0, 0, 224, 72, 1, 0, 0, 0, 225, 226, 7, 2, 0, 0, 226, 74, 1, 0, 0, 0, 227,
		228, 5, 47, 0, 0, 228, 229, 5, 47, 0, 0, 229, 233, 1, 0, 0, 0, 230, 232,
		9, 0, 0, 0, 231, 230, 1, 0, 0, 0, 232, 235, 1, 0, 0, 0, 233, 234, 1, 0,
		0, 0, 233, 231, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0,
		236, 238, 5, 13, 0, 0, 237, 236, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238,
		239, 1, 0, 0, 0, 239, 240, 5, 10, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242,
		6, 37, 0, 0, 242, 76, 1, 0, 0, 0, 243, 244, 5, 47, 0, 0, 244, 245, 5, 42,
		0, 0, 245, 249, 1, 0, 0, 0, 246, 248, 9, 0, 0, 0, 247, 246, 1, 0, 0, 0,
		248, 251, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250,
		252, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 252, 253, 5, 42, 0, 0, 253, 254,
		5, 47, 0, 0, 254, 255, 1, 0, 0, 0, 255, 256, 6, 38, 0, 0, 256, 78, 1, 0,
		0, 0, 257, 259, 7, 3, 0, 0, 258, 257, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0,
		260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262,
		263, 6, 39, 0, 0, 263, 80, 1, 0, 0, 0, 15, 0, 172, 174, 183, 188, 194,
		201, 203, 208, 210, 221, 233, 237, 249, 260, 1, 6, 0, 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)
	}
}

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

// NewTdatLexer produces a new lexer instance for the optional input antlr.CharStream.
func NewTdatLexer(input antlr.CharStream) *TdatLexer {
	TdatLexerInit()
	l := new(TdatLexer)
	l.BaseLexer = antlr.NewBaseLexer(input)
	staticData := &tdatlexerLexerStaticData
	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 = "Tdat.g4"
	// TODO: l.EOF = antlr.TokenEOF

	return l
}

// TdatLexer tokens.
const (
	TdatLexerT__0         = 1
	TdatLexerT__1         = 2
	TdatLexerT__2         = 3
	TdatLexerT__3         = 4
	TdatLexerT__4         = 5
	TdatLexerT__5         = 6
	TdatLexerT__6         = 7
	TdatLexerT__7         = 8
	TdatLexerT__8         = 9
	TdatLexerT__9         = 10
	TdatLexerT__10        = 11
	TdatLexerT__11        = 12
	TdatLexerT__12        = 13
	TdatLexerT__13        = 14
	TdatLexerT__14        = 15
	TdatLexerT__15        = 16
	TdatLexerT__16        = 17
	TdatLexerT__17        = 18
	TdatLexerT__18        = 19
	TdatLexerT__19        = 20
	TdatLexerT__20        = 21
	TdatLexerT__21        = 22
	TdatLexerT__22        = 23
	TdatLexerT__23        = 24
	TdatLexerT__24        = 25
	TdatLexerT__25        = 26
	TdatLexerT__26        = 27
	TdatLexerT__27        = 28
	TdatLexerID           = 29
	TdatLexerMETRIC       = 30
	TdatLexerINT          = 31
	TdatLexerFLOAT        = 32
	TdatLexerSTRING       = 33
	TdatLexerCHAR         = 34
	TdatLexerLINE_COMMENT = 35
	TdatLexerCOMMENT      = 36
	TdatLexerWS           = 37
)
