gt: 		for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
context: /*-
   * +======================================================================+
   * Sfera
   * ---
   * Copyright (C) 2015 - 2016 Sfera Labs S.r.l.
   * ---
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation, either version 3 of the
   * License, or (at your option) any later version.
   * 
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Lesser Public License for more details.
   * 
   * You should have received a copy of the GNU General Lesser Public
   * License along with this program.  If not, see
   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
   * -======================================================================-
   */
  
  // Generated from SferaScriptGrammar.g4 by ANTLR 4.5.1
  package cc.sferalabs.sfera.scripts.parser.antlr;
  
  import org.antlr.v4.runtime.Lexer;
  import org.antlr.v4.runtime.CharStream;
  import org.antlr.v4.runtime.Token;
  import org.antlr.v4.runtime.TokenStream;
  import org.antlr.v4.runtime.*;
  import org.antlr.v4.runtime.atn.*;
  import org.antlr.v4.runtime.dfa.DFA;
  import org.antlr.v4.runtime.misc.*;
  
  @SuppressWarnings({ "all", "warnings", "unchecked", "unused", "cast" })
  public class SferaScriptGrammarLexer extends Lexer {
  	static {
  		RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION);
  	}
  
  	protected static final DFA[] _decisionToDFA;
  	protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
  	public static final int T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7,
  			T__7 = 8, ImportLine = 9, Script = 10, BooleanLiteral = 11, Unknown = 12, NodeId = 13,
  			NumberLiteral = 14, StringLiteral = 15, ET = 16, NE = 17, GT = 18, LT = 19, GE = 20,
  			LE = 21, OR = 22, AND = 23, NOT = 24, WS = 25, COMMENT = 26, LINE_COMMENT = 27;
  	public static String[] modeNames = { "DEFAULT_MODE" };
  
  	public static final String[] ruleNames = { "T__0", "T__1", "T__2", "T__3", "T__4", "T__5",
  			"T__6", "T__7", "ImportLine", "Path", "Script", "BooleanLiteral", "Unknown", "NodeId",
  			"NodeFirstLetter", "LetterOrDigit", "NumberLiteral", "StringLiteral",
  			"DoubleQuotesStringCharacters", "SingleQuotesStringCharacters",
  			"DoubleQuotesStringCharacter", "SingleQuotesStringCharacter", "EscapeSequence",
  			"OctalEscape", "UnicodeEscape", "HexDigit", "OctalDigit", "ZeroToThree", "ET", "NE",
  			"GT", "LT", "GE", "LE", "OR", "AND", "NOT", "WS", "COMMENT", "LINE_COMMENT" };
  
  	private static final String[] _LITERAL_NAMES = { null, "'init'", "':'", "'('", "')'", "'.'",
  			"','", "'['", "']'", null, null, null, "'unknown'", null, null, null, "'=='", "'!='",
  			"'>'", "'<'", "'>='", "'<='", "'||'", "'&&'", "'!'" };
  	private static final String[] _SYMBOLIC_NAMES = { null, null, null, null, null, null, null,
  			null, null, "ImportLine", "Script", "BooleanLiteral", "Unknown", "NodeId",
  			"NumberLiteral", "StringLiteral", "ET", "NE", "GT", "LT", "GE", "LE", "OR", "AND",
  			"NOT", "WS", "COMMENT", "LINE_COMMENT" };
  	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
  
  	/**
  	 * @deprecated Use {@link #VOCABULARY} instead.
  	 */
  	@Deprecated
  	public static final String[] tokenNames;
  
  	static {
  		tokenNames = new String[_SYMBOLIC_NAMES.length];
  		for (int i = 0; i < tokenNames.length; i++) {
  			tokenNames[i] = VOCABULARY.getLiteralName(i);
  			if (tokenNames[i] == null) {
  				tokenNames[i] = VOCABULARY.getSymbolicName(i);
  			}
  
  			if (tokenNames[i] == null) {
  				tokenNames[i] = "<INVALID>";
  			}
  		}
  	}
  
  	@Override
  	@Deprecated
  	public String[] getTokenNames() {
  		return tokenNames;
  	}
  
  	@Override
  
  	public Vocabulary getVocabulary() {
  		return VOCABULARY;
  	}
  
  	public SferaScriptGrammarLexer(CharStream input) {
  		super(input);
  		_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
  	}
  
  	@Override
  	public String getGrammarFileName() {
  		return "SferaScriptGrammar.g4";
  	}
  
  	@Override
  	public String[] getRuleNames() {
  		return ruleNames;
  	}
  
  	@Override
  	public String getSerializedATN() {
  		return _serializedATN;
  	}
  
  	@Override
  	public String[] getModeNames() {
  		return modeNames;
  	}
  
  	@Override
  	public ATN getATN() {
  		return _ATN;
  	}
  
  	public static final String _serializedATN = "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\35\u0126\b\1\4\2"
  			+ "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"
  			+ "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"
  			+ "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"
  			+ "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"
  			+ " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\3\2\3\2\3"
  			+ "\2\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n"
  			+ "\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\13\6\13r\n\13\r\13\16\13s\3\f\3"
  			+ "\f\3\f\3\f\3\f\3\f\7\f|\n\f\f\f\16\f\177\13\f\3\f\3\f\3\r\3\r\3\r\3\r"
  			+ "\3\r\3\r\3\r\3\r\3\r\5\r\u008c\n\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16"
  			+ "\3\16\3\17\3\17\7\17\u0098\n\17\f\17\16\17\u009b\13\17\3\20\3\20\3\21"
  			+ "\3\21\3\22\5\22\u00a2\n\22\3\22\6\22\u00a5\n\22\r\22\16\22\u00a6\3\22"
  			+ "\3\22\6\22\u00ab\n\22\r\22\16\22\u00ac\5\22\u00af\n\22\3\23\3\23\5\23"
  			+ "\u00b3\n\23\3\23\3\23\3\23\5\23\u00b8\n\23\3\23\5\23\u00bb\n\23\3\24\6"
  			+ "\24\u00be\n\24\r\24\16\24\u00bf\3\25\6\25\u00c3\n\25\r\25\16\25\u00c4"
  			+ "\3\26\3\26\5\26\u00c9\n\26\3\27\3\27\5\27\u00cd\n\27\3\30\3\30\3\30\3"
  			+ "\30\5\30\u00d3\n\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31"
  			+ "\3\31\5\31\u00e0\n\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\34"
  			+ "\3\34\3\35\3\35\3\36\3\36\3\36\3\37\3\37\3\37\3 \3 \3!\3!\3\"\3\"\3\""
  			+ "\3#\3#\3#\3$\3$\3$\3%\3%\3%\3&\3&\3\'\6\'\u0108\n\'\r\'\16\'\u0109\3\'"
  			+ "\3\'\3(\3(\3(\3(\7(\u0112\n(\f(\16(\u0115\13(\3(\3(\3(\3(\3(\3)\3)\3)"
  			+ "\3)\7)\u0120\n)\f)\16)\u0123\13)\3)\3)\5s}\u0113\2*\3\3\5\4\7\5\t\6\13"
  			+ "\7\r\b\17\t\21\n\23\13\25\2\27\f\31\r\33\16\35\17\37\2!\2#\20%\21\'\2"
  			+ ")\2+\2-\2/\2\61\2\63\2\65\2\67\29\2;\22=\23?\24A\25C\26E\27G\30I\31K\32"
  			+ "M\33O\34Q\35\3\2\17\5\2))}}\177\177\4\2C\\c|\7\2//\62;C\\aac|\4\2--//"
  			+ "\3\2\62;\4\2$$^^\4\2))^^\n\2$$))^^ddhhppttvv\5\2\62;CHch\3\2\629\3\2\62"
  			+ "\65\5\2\13\f\16\17\"\"\4\2\f\f\17\17\u0132\2\3\3\2\2\2\2\5\3\2\2\2\2\7"
  			+ "\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2"
  			+ "\2\2\23\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2"
  			+ "#\3\2\2\2\2%\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3"
  			+ "\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2"
  			+ "\2\2Q\3\2\2\2\3S\3\2\2\2\5X\3\2\2\2\7Z\3\2\2\2\t\\\3\2\2\2\13^\3\2\2\2"
  			+ "\r`\3\2\2\2\17b\3\2\2\2\21d\3\2\2\2\23f\3\2\2\2\25q\3\2\2\2\27u\3\2\2"
  			+ "\2\31\u008b\3\2\2\2\33\u008d\3\2\2\2\35\u0095\3\2\2\2\37\u009c\3\2\2\2"
  			+ "!\u009e\3\2\2\2#\u00a1\3\2\2\2%\u00ba\3\2\2\2\'\u00bd\3\2\2\2)\u00c2\3"
  			+ "\2\2\2+\u00c8\3\2\2\2-\u00cc\3\2\2\2/\u00d2\3\2\2\2\61\u00df\3\2\2\2\63"
  			+ "\u00e1\3\2\2\2\65\u00e8\3\2\2\2\67\u00ea\3\2\2\29\u00ec\3\2\2\2;\u00ee"
  			+ "\3\2\2\2=\u00f1\3\2\2\2?\u00f4\3\2\2\2A\u00f6\3\2\2\2C\u00f8\3\2\2\2E"
  			+ "\u00fb\3\2\2\2G\u00fe\3\2\2\2I\u0101\3\2\2\2K\u0104\3\2\2\2M\u0107\3\2"
  			+ "\2\2O\u010d\3\2\2\2Q\u011b\3\2\2\2ST\7k\2\2TU\7p\2\2UV\7k\2\2VW\7v\2\2"
  			+ "W\4\3\2\2\2XY\7<\2\2Y\6\3\2\2\2Z[\7*\2\2[\b\3\2\2\2\\]\7+\2\2]\n\3\2\2"
  			+ "\2^_\7\60\2\2_\f\3\2\2\2`a\7.\2\2a\16\3\2\2\2bc\7]\2\2c\20\3\2\2\2de\7"
  			+ "_\2\2e\22\3\2\2\2fg\7k\2\2gh\7o\2\2hi\7r\2\2ij\7q\2\2jk\7t\2\2kl\7v\2"
  			+ "\2lm\3\2\2\2mn\5\25\13\2no\7=\2\2o\24\3\2\2\2pr\13\2\2\2qp\3\2\2\2rs\3"
  			+ "\2\2\2st\3\2\2\2sq\3\2\2\2t\26\3\2\2\2u}\7}\2\2v|\5%\23\2w|\5O(\2x|\5"
  			+ "Q)\2y|\n\2\2\2z|\5\27\f\2{v\3\2\2\2{w\3\2\2\2{x\3\2\2\2{y\3\2\2\2{z\3"
  			+ "\2\2\2|\177\3\2\2\2}~\3\2\2\2}{\3\2\2\2~\u0080\3\2\2\2\177}\3\2\2\2\u0080"
  			+ "\u0081\7\177\2\2\u0081\30\3\2\2\2\u0082\u0083\7v\2\2\u0083\u0084\7t\2"
  			+ "\2\u0084\u0085\7w\2\2\u0085\u008c\7g\2\2\u0086\u0087\7h\2\2\u0087\u0088"
  			+ "\7c\2\2\u0088\u0089\7n\2\2\u0089\u008a\7u\2\2\u008a\u008c\7g\2\2\u008b"
  			+ "\u0082\3\2\2\2\u008b\u0086\3\2\2\2\u008c\32\3\2\2\2\u008d\u008e\7w\2\2"
  			+ "\u008e\u008f\7p\2\2\u008f\u0090\7m\2\2\u0090\u0091\7p\2\2\u0091\u0092"
  			+ "\7q\2\2\u0092\u0093\7y\2\2\u0093\u0094\7p\2\2\u0094\34\3\2\2\2\u0095\u0099"
  			+ "\5\37\20\2\u0096\u0098\5!\21\2\u0097\u0096\3\2\2\2\u0098\u009b\3\2\2\2"
  			+ "\u0099\u0097\3\2\2\2\u0099\u009a\3\2\2\2\u009a\36\3\2\2\2\u009b\u0099"
  			+ "\3\2\2\2\u009c\u009d\t\3\2\2\u009d \3\2\2\2\u009e\u009f\t\4\2\2\u009f"
  			+ "\"\3\2\2\2\u00a0\u00a2\t\5\2\2\u00a1\u00a0\3\2\2\2\u00a1\u00a2\3\2\2\2"
  			+ "\u00a2\u00a4\3\2\2\2\u00a3\u00a5\t\6\2\2\u00a4\u00a3\3\2\2\2\u00a5\u00a6"
  			+ "\3\2\2\2\u00a6\u00a4\3\2\2\2\u00a6\u00a7\3\2\2\2\u00a7\u00ae\3\2\2\2\u00a8"
  			+ "\u00aa\7\60\2\2\u00a9\u00ab\t\6\2\2\u00aa\u00a9\3\2\2\2\u00ab\u00ac\3"
  			+ "\2\2\2\u00ac\u00aa\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00af\3\2\2\2\u00ae"
  			+ "\u00a8\3\2\2\2\u00ae\u00af\3\2\2\2\u00af$\3\2\2\2\u00b0\u00b2\7$\2\2\u00b1"
  			+ "\u00b3\5\'\24\2\u00b2\u00b1\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3\u00b4\3"
  			+ "\2\2\2\u00b4\u00bb\7$\2\2\u00b5\u00b7\7)\2\2\u00b6\u00b8\5)\25\2\u00b7"
  			+ "\u00b6\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\u00bb\7)"
  			+ "\2\2\u00ba\u00b0\3\2\2\2\u00ba\u00b5\3\2\2\2\u00bb&\3\2\2\2\u00bc\u00be"
  			+ "\5+\26\2\u00bd\u00bc\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf\u00bd\3\2\2\2\u00bf"
  			+ "\u00c0\3\2\2\2\u00c0(\3\2\2\2\u00c1\u00c3\5-\27\2\u00c2\u00c1\3\2\2\2"
  			+ "\u00c3\u00c4\3\2\2\2\u00c4\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5*\3"
  			+ "\2\2\2\u00c6\u00c9\n\7\2\2\u00c7\u00c9\5/\30\2\u00c8\u00c6\3\2\2\2\u00c8"
  			+ "\u00c7\3\2\2\2\u00c9,\3\2\2\2\u00ca\u00cd\n\b\2\2\u00cb\u00cd\5/\30\2"
  			+ "\u00cc\u00ca\3\2\2\2\u00cc\u00cb\3\2\2\2\u00cd.\3\2\2\2\u00ce\u00cf\7"
  			+ "^\2\2\u00cf\u00d3\t\t\2\2\u00d0\u00d3\5\61\31\2\u00d1\u00d3\5\63\32\2"
  			+ "\u00d2\u00ce\3\2\2\2\u00d2\u00d0\3\2\2\2\u00d2\u00d1\3\2\2\2\u00d3\60"
  			+ "\3\2\2\2\u00d4\u00d5\7^\2\2\u00d5\u00e0\5\67\34\2\u00d6\u00d7\7^\2\2\u00d7"
  			+ "\u00d8\5\67\34\2\u00d8\u00d9\5\67\34\2\u00d9\u00e0\3\2\2\2\u00da\u00db"
  			+ "\7^\2\2\u00db\u00dc\59\35\2\u00dc\u00dd\5\67\34\2\u00dd\u00de\5\67\34"
  			+ "\2\u00de\u00e0\3\2\2\2\u00df\u00d4\3\2\2\2\u00df\u00d6\3\2\2\2\u00df\u00da"
  			+ "\3\2\2\2\u00e0\62\3\2\2\2\u00e1\u00e2\7^\2\2\u00e2\u00e3\7w\2\2\u00e3"
  			+ "\u00e4\5\65\33\2\u00e4\u00e5\5\65\33\2\u00e5\u00e6\5\65\33\2\u00e6\u00e7"
  			+ "\5\65\33\2\u00e7\64\3\2\2\2\u00e8\u00e9\t\n\2\2\u00e9\66\3\2\2\2\u00ea"
  			+ "\u00eb\t\13\2\2\u00eb8\3\2\2\2\u00ec\u00ed\t\f\2\2\u00ed:\3\2\2\2\u00ee"
  			+ "\u00ef\7?\2\2\u00ef\u00f0\7?\2\2\u00f0<\3\2\2\2\u00f1\u00f2\7#\2\2\u00f2"
  			+ "\u00f3\7?\2\2\u00f3>\3\2\2\2\u00f4\u00f5\7@\2\2\u00f5@\3\2\2\2\u00f6\u00f7"
  			+ "\7>\2\2\u00f7B\3\2\2\2\u00f8\u00f9\7@\2\2\u00f9\u00fa\7?\2\2\u00faD\3"
  			+ "\2\2\2\u00fb\u00fc\7>\2\2\u00fc\u00fd\7?\2\2\u00fdF\3\2\2\2\u00fe\u00ff"
  			+ "\7~\2\2\u00ff\u0100\7~\2\2\u0100H\3\2\2\2\u0101\u0102\7(\2\2\u0102\u0103"
  			+ "\7(\2\2\u0103J\3\2\2\2\u0104\u0105\7#\2\2\u0105L\3\2\2\2\u0106\u0108\t"
  			+ "\r\2\2\u0107\u0106\3\2\2\2\u0108\u0109\3\2\2\2\u0109\u0107\3\2\2\2\u0109"
  			+ "\u010a\3\2\2\2\u010a\u010b\3\2\2\2\u010b\u010c\b\'\2\2\u010cN\3\2\2\2"
  			+ "\u010d\u010e\7\61\2\2\u010e\u010f\7,\2\2\u010f\u0113\3\2\2\2\u0110\u0112"
  			+ "\13\2\2\2\u0111\u0110\3\2\2\2\u0112\u0115\3\2\2\2\u0113\u0114\3\2\2\2"
  			+ "\u0113\u0111\3\2\2\2\u0114\u0116\3\2\2\2\u0115\u0113\3\2\2\2\u0116\u0117"
  			+ "\7,\2\2\u0117\u0118\7\61\2\2\u0118\u0119\3\2\2\2\u0119\u011a\b(\2\2\u011a"
  			+ "P\3\2\2\2\u011b\u011c\7\61\2\2\u011c\u011d\7\61\2\2\u011d\u0121\3\2\2"
  			+ "\2\u011e\u0120\n\16\2\2\u011f\u011e\3\2\2\2\u0120\u0123\3\2\2\2\u0121"
  			+ "\u011f\3\2\2\2\u0121\u0122\3\2\2\2\u0122\u0124\3\2\2\2\u0123\u0121\3\2"
  			+ "\2\2\u0124\u0125\b)\2\2\u0125R\3\2\2\2\30\2s{}\u008b\u0099\u00a1\u00a6"
  			+ "\u00ac\u00ae\u00b2\u00b7\u00ba\u00bf\u00c4\u00c8\u00cc\u00d2\u00df\u0109"
  			+ "\u0113\u0121\3\b\2\2";
  	public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
  
  	static {
  		_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
  