text: // Generated from ObjectiveCPreprocessorLexer.g4 by ANTLR 4.5
  // jshint ignore: start
  var antlr4 = require('antlr4/index');
  
  
  var serializedATN = ["\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd",
      "\2*\u027d\b\1\b\1\b\1\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)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4/\t/\4",
      "\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64\4\65\t\65\4\66\t\66",
      "\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A",
      "\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t",
      "L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\3\2\3\2\3\2\3\2\3",
      "\3\3\3\3\3\3\3\7\3\u00b5\n\3\f\3\16\3\u00b8\13\3\3\3\3\3\3\3\3\3\3\3",
      "\3\4\3\4\3\4\3\4\7\4\u00c3\n\4\f\4\16\4\u00c6\13\4\3\4\3\4\3\5\3\5\3",
      "\5\3\5\3\6\3\6\3\6\5\6\u00d1\n\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\7\7\u00da",
      "\n\7\f\7\16\7\u00dd\13\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\t\6\t\u00e8",
      "\n\t\r\t\16\t\u00e9\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\6\n\u00f4\n\n\r",
      "\n\16\n\u00f5\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\6",
      "\13\u0103\n\13\r\13\16\13\u0104\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3",
      "\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\6\r\u011a\n\r\r\r\16\r\u011b",
      "\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\20",
      "\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3",
      "\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24",
      "\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\27\3",
      "\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\31",
      "\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\34\3\35\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$\6$\u017e\n$\r",
      "$\16$\u017f\3$\3$\3%\3%\3&\3&\3&\7&\u0189\n&\f&\16&\u018c\13&\3\'\6",
      "\'\u018f\n\'\r\'\16\'\u0190\3(\6(\u0194\n(\r(\16(\u0195\3(\3(\7(\u019a",
      "\n(\f(\16(\u019d\13(\3(\3(\6(\u01a1\n(\r(\16(\u01a2\5(\u01a5\n(\3)\5",
      ")\u01a8\n)\3)\3)\3)\3)\3*\3*\3*\3*\7*\u01b2\n*\f*\16*\u01b5\13*\3*\3",
      "*\3*\3*\3*\3+\3+\3+\3+\7+\u01c0\n+\f+\16+\u01c3\13+\3+\3+\3,\3,\5,\u01c9",
      "\n,\3,\3,\3,\3,\3-\3-\3-\7-\u01d2\n-\f-\16-\u01d5\13-\3-\3-\3-\7-\u01da",
      "\n-\f-\16-\u01dd\13-\3-\5-\u01e0\n-\3-\3-\3-\3.\3.\5.\u01e7\n.\3.\3",
      ".\3.\3.\3/\3/\3/\3/\3/\3\60\5\60\u01f3\n\60\3\60\3\60\3\60\3\60\3\60",
      "\3\61\3\61\3\61\3\61\7\61\u01fe\n\61\f\61\16\61\u0201\13\61\3\61\3\61",
      "\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\7\62\u020d\n\62\f\62\16\62",
      "\u0210\13\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\64\6\64\u021a\n\64",
      "\r\64\16\64\u021b\3\65\3\65\3\65\3\65\5\65\u0222\n\65\3\66\3\66\3\66",
      "\3\66\3\66\3\66\3\66\3\66\3\66\5\66\u022d\n\66\3\67\3\67\3\67\3\67\3",
      "\67\3\67\3\67\38\38\39\39\39\39\79\u023c\n9\f9\169\u023f\139\39\39\3",
      ":\3:\3:\3:\3:\5:\u0248\n:\3;\3;\3<\3<\3=\3=\3>\3>\3?\3?\3@\3@\3A\3A",
      "\3B\3B\3C\3C\3D\3D\3E\3E\3F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3",
      "M\3M\3N\3N\3O\3O\3P\3P\3Q\3Q\3R\3R\3S\3S\3T\3T\5\u00b6\u01b3\u01ff\2",
      "U\6\3\b\2\n\2\f*\16\2\20\2\22\2\24\4\26\5\30\6\32\7\34\b\36\t \n\"\13",
      "$\f&\r(\16*\17,\20.\21\60\22\62\23\64\24\66\258\26:\27<\30>\31@\32B",
      "\33D\34F\35H\36J\37L N!P\"R#T$V%X&Z\'\\\2^(`\2b\2d\2f\2h\2j)l\2n\2p",
      "\2r\2t\2v\2x\2z\2|\2~\2\u0080\2\u0082\2\u0084\2\u0086\2\u0088\2\u008a",
      "\2\u008c\2\u008e\2\u0090\2\u0092\2\u0094\2\u0096\2\u0098\2\u009a\2\u009c",
      "\2\u009e\2\u00a0\2\u00a2\2\u00a4\2\u00a6\2\u00a8\2\u00aa\2\6\2\3\4\5",
      "-\4\2\f\f\17\17\4\2))^^\5\2$%))\61\61\4\2\13\13\"\"\3\2\62;\7\2\13\13",
      "\"\"..\60\60\62;\6\2\f\f\17\17\61\61^^\n\2$$))^^ddhhppttvv\3\2\62\65",
      "\3\2\629\5\2\62;CHch\4\2$$^^\6\2&&C\\aac|\4\2\2\u0101\ud802\udc01\3",
      "\2\ud802\udc01\3\2\udc02\ue001\3\2\u00eb\u00eb\4\2CCcc\4\2DDdd\4\2E",
      "Eee\4\2FFff\4\2GGgg\4\2HHhh\4\2IIii\4\2JJjj\4\2KKkk\4\2LLll\4\2MMmm",
      "\4\2NNnn\4\2OOoo\4\2PPpp\4\2QQqq\4\2RRrr\4\2SSss\4\2TTtt\4\2UUuu\4\2",
      "VVvv\4\2WWww\4\2XXxx\4\2YYyy\4\2ZZzz\4\2[[{{\4\2\\\\||\u0281\2\6\3\2",
      "\2\2\2\b\3\2\2\2\2\n\3\2\2\2\2\f\3\2\2\2\2\16\3\2\2\2\2\20\3\2\2\2\2",
      "\22\3\2\2\2\2\24\3\2\2\2\3\26\3\2\2\2\3\30\3\2\2\2\3\32\3\2\2\2\3\34",
      "\3\2\2\2\3\36\3\2\2\2\3 \3\2\2\2\3\"\3\2\2\2\3$\3\2\2\2\3&\3\2\2\2\3",
      "(\3\2\2\2\3*\3\2\2\2\3,\3\2\2\2\3.\3\2\2\2\3\60\3\2\2\2\3\62\3\2\2\2",
      "\3\64\3\2\2\2\3\66\3\2\2\2\38\3\2\2\2\3:\3\2\2\2\3<\3\2\2\2\3>\3\2\2",
      "\2\3@\3\2\2\2\3B\3\2\2\2\3D\3\2\2\2\3F\3\2\2\2\3H\3\2\2\2\3J\3\2\2\2",
      "\3L\3\2\2\2\3N\3\2\2\2\3P\3\2\2\2\3R\3\2\2\2\3T\3\2\2\2\3V\3\2\2\2\3",
      "X\3\2\2\2\3Z\3\2\2\2\4\\\3\2\2\2\5^\3\2\2\2\5`\3\2\2\2\5b\3\2\2\2\5",
      "d\3\2\2\2\5f\3\2\2\2\5h\3\2\2\2\5j\3\2\2\2\6\u00ac\3\2\2\2\b\u00b0\3",
      "\2\2\2\n\u00be\3\2\2\2\f\u00c9\3\2\2\2\16\u00cd\3\2\2\2\20\u00d6\3\2",
      "\2\2\22\u00e2\3\2\2\2\24\u00e7\3\2\2\2\26\u00eb\3\2\2\2\30\u00f9\3\2",
      "\2\2\32\u0108\3\2\2\2\34\u0111\3\2\2\2\36\u011f\3\2\2\2 \u0127\3\2\2",
      "\2\"\u012a\3\2\2\2$\u012f\3\2\2\2&\u0134\3\2\2\2(\u013a\3\2\2\2*\u0140",
      "\3\2\2\2,\u0147\3\2\2\2.\u014d\3\2\2\2\60\u0152\3\2\2\2\62\u0158\3\2",
      "\2\2\64\u0160\3\2\2\2\66\u0162\3\2\2\28\u0164\3\2\2\2:\u0166\3\2\2\2",
      "<\u0169\3\2\2\2>\u016c\3\2\2\2@\u016f\3\2\2\2B\u0172\3\2\2\2D\u0174",
      "\3\2\2\2F\u0176\3\2\2\2H\u0179\3\2\2\2J\u017d\3\2\2\2L\u0183\3\2\2\2",
      "N\u0185\3\2\2\2P\u018e\3\2\2\2R\u01a4\3\2\2\2T\u01a7\3\2\2\2V\u01ad",
      "\3\2\2\2X\u01bb\3\2\2\2Z\u01c6\3\2\2\2\\\u01ce\3\2\2\2^\u01e4\3\2\2",
      "\2`\u01ec\3\2\2\2b\u01f2\3\2\2\2d\u01f9\3\2\2\2f\u0208\3\2\2\2h\u0214",
      "\3\2\2\2j\u0219\3\2\2\2l\u0221\3\2\2\2n\u022c\3\2\2\2p\u022e\3\2\2\2",
      "r\u0235\3\2\2\2t\u0237\3\2\2\2v\u0247\3\2\2\2x\u0249\3\2\2\2z\u024b",
      "\3\2\2\2|\u024d\3\2\2\2~\u024f\3\2\2\2\u0080\u0251\3\2\2\2\u0082\u0253",
      "\3\2\2\2\u0084\u0255\3\2\2\2\u0086\u0257\3\2\2\2\u0088\u0259\3\2\2\2",
      "\u008a\u025b\3\2\2\2\u008c\u025d\3\2\2\2\u008e\u025f\3\2\2\2\u0090\u0261",
      "\3\2\2\2\u0092\u0263\3\2\2\2\u0094\u0265\3\2\2\2\u0096\u0267\3\2\2\2",
      "\u0098\u0269\3\2\2\2\u009a\u026b\3\2\2\2\u009c\u026d\3\2\2\2\u009e\u026f",
      "\3\2\2\2\u00a0\u0271\3\2\2\2\u00a2\u0273\3\2\2\2\u00a4\u0275\3\2\2\2",
      "\u00a6\u0277\3\2\2\2\u00a8\u0279\3\2\2\2\u00aa\u027b\3\2\2\2\u00ac\u00ad",
      "\7%\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00af\b\2\2\2\u00af\7\3\2\2\2\u00b0",
      "\u00b1\7\61\2\2\u00b1\u00b2\7,\2\2\u00b2\u00b6\3\2\2\2\u00b3\u00b5\13",
      "\2\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b8\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b6",
      "\u00b4\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00b6\3\2\2\2\u00b9\u00ba\7",
      ",\2\2\u00ba\u00bb\7\61\2\2\u00bb\u00bc\3\2\2\2\u00bc\u00bd\b\3\3\2\u00bd",
      "\t\3\2\2\2\u00be\u00bf\7\61\2\2\u00bf\u00c0\7\61\2\2\u00c0\u00c4\3\2",
      "\2\2\u00c1\u00c3\n\2\2\2\u00c2\u00c1\3\2\2\2\u00c3\u00c6\3\2\2\2\u00c4",
      "\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c7\3\2\2\2\u00c6\u00c4\3",
      "\2\2\2\u00c7\u00c8\b\4\3\2\u00c8\13\3\2\2\2\u00c9\u00ca\7\61\2\2\u00ca",
      "\u00cb\3\2\2\2\u00cb\u00cc\b\5\3\2\u00cc\r\3\2\2\2\u00cd\u00d0\7)\2",
      "\2\u00ce\u00d1\5l\65\2\u00cf\u00d1\n\3\2\2\u00d0\u00ce\3\2\2\2\u00d0",
      "\u00cf\3\2\2\2\u00d1\u00d2\3\2\2\2\u00d2\u00d3\7)\2\2\u00d3\u00d4\3",
      "\2\2\2\u00d4\u00d5\b\6\3\2\u00d5\17\3\2\2\2\u00d6\u00db\7)\2\2\u00d7",
      "\u00da\5l\65\2\u00d8\u00da\n\3\2\2\u00d9\u00d7\3\2\2\2\u00d9\u00d8\3",
      "\2\2\2\u00da\u00dd\3\2\2\2\u00db\u00d9\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc",
      "\u00de\3\2\2\2\u00dd\u00db\3\2\2\2\u00de\u00df\7)\2\2\u00df\u00e0\3",
      "\2\2\2\u00e0\u00e1\b\7\3\2\u00e1\21\3\2\2\2\u00e2\u00e3\5t9\2\u00e3",
      "\u00e4\3\2\2\2\u00e4\u00e5\b\b\3\2\u00e5\23\3\2\2\2\u00e6\u00e8\n\4",
      "\2\2\u00e7\u00e6\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9\u00e7\3\2\2\2\u00e9",
      "\u00ea\3\2\2\2\u00ea\25\3\2\2\2\u00eb\u00ec\7k\2\2\u00ec\u00ed\7o\2",
      "\2\u00ed\u00ee\7r\2\2\u00ee\u00ef\7q\2\2\u00ef\u00f0\7t\2\2\u00f0\u00f1",
      "\7v\2\2\u00f1\u00f3\3\2\2\2\u00f2\u00f4\t\5\2\2\u00f3\u00f2\3\2\2\2",
      "\u00f4\u00f5\3\2\2\2\u00f5\u00f3\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f7",
      "\3\2\2\2\u00f7\u00f8\b\n\4\2\u00f8\27\3\2\2\2\u00f9\u00fa\7k\2\2\u00fa",
      "\u00fb\7p\2\2\u00fb\u00fc\7e\2\2\u00fc\u00fd\7n\2\2\u00fd\u00fe\7w\2",
      "\2\u00fe\u00ff\7f\2\2\u00ff\u0100\7g\2\2\u0100\u0102\3\2\2\2\u0101\u0103",
      "\t\5\2\2\u0102\u0101\3\2\2\2\u0103\u0104\3\2\2\2\u0104\u0102\3\2\2\2",
      "\u0104\u0105\3\2\2\2\u0105\u0106\3\2\2\2\u0106\u0107\b\13\4\2\u0107",
      "\31\3\2\2\2\u0108\u0109\7r\2\2\u0109\u010a\7t\2\2\u010a\u010b\7c\2\2",
      "\u010b\u010c\7i\2\2\u010c\u010d\7o\2\2\u010d\u010e\7c\2\2\u010e\u010f",
      "\3\2\2\2\u010f\u0110\b\f\4\2\u0110\33\3\2\2\2\u0111\u0112\7f\2\2\u0112",
      "\u0113\7g\2\2\u0113\u0114\7h\2\2\u0114\u0115\7k\2\2\u0115\u0116\7p\2",
      "\2\u0116\u0117\7g\2\2\u0117\u0119\3\2\2\2\u0118\u011a\t\5\2\2\u0119",
      "\u0118\3\2\2\2\u011a\u011b\3\2\2\2\u011b\u0119\3\2\2\2\u011b\u011c\3",
      "\2\2\2\u011c\u011d\3\2\2\2\u011d\u011e\b\r\5\2\u011e\35\3\2\2\2\u011f",
      "\u0120\7f\2\2\u0120\u0121\7g\2\2\u0121\u0122\7h\2\2\u0122\u0123\7k\2",
      "\2\u0123\u0124\7p\2\2\u0124\u0125\7g\2\2\u0125\u0126\7f\2\2\u0126\37",
      "\3\2\2\2\u0127\u0128\7k\2\2\u0128\u0129\7h\2\2\u0129!\3\2\2\2\u012a",
      "\u012b\7g\2\2\u012b\u012c\7n\2\2\u012c\u012d\7k\2\2\u012d\u012e\7h\2",
      "\2\u012e#\3\2\2\2\u012f\u0130\7g\2\2\u0130\u0131\7n\2\2\u0131\u0132",
      "\7u\2\2\u0132\u0133\7g\2\2\u0133%\3\2\2\2\u0134\u0135\7w\2\2\u0135\u0136",
      "\7p\2\2\u0136\u0137\7f\2\2\u0137\u0138\7g\2\2\u0138\u0139\7h\2\2\u0139",
      "\'\3\2\2\2\u013a\u013b\7k\2\2\u013b\u013c\7h\2\2\u013c\u013d\7f\2\2",
      "\u013d\u013e\7g\2\2\u013e\u013f\7h\2\2\u013f)\3\2\2\2\u0140\u0141\7",
      "k\2\2\u0141\u0142\7h\2\2\u0142\u0143\7p\2\2\u0143\u0144\7f\2\2\u0144",
      "\u0145\7g\2\2\u0145\u0146\7h\2\2\u0146+\3\2\2\2\u0147\u0148\7g\2\2\u0148",
      "\u0149\7p\2\2\u0149\u014a\7f\2\2\u014a\u014b\7k\2\2\u014b\u014c\7h\2",
      "\2\u014c-\3\2\2\2\u014d\u014e\5\u009eN\2\u014e\u014f\5\u009aL\2\u014f",
      "\u0150\5\u00a0O\2\u0150\u0151\5\u0080?\2\u0151/\3\2\2\2\u0152\u0153",
      "\5\u0082@\2\u0153\u0154\5x;\2\u0154\u0155\5\u008eF\2\u0155\u0156\5\u009c",
      "M\2\u0156\u0157\5\u0080?\2\u0157\61\3\2\2\2\u0158\u0159\7g\2\2\u0159",
      "\u015a\7t\2\2\u015a\u015b\7t\2\2\u015b\u015c\7q\2\2\u015c\u015d\7t\2",
      "\2\u015d\u015e\3\2\2\2\u015e\u015f\b\30\4\2\u015f\63\3\2\2\2\u0160\u0161",
      "\7#\2\2\u0161\65\3\2\2\2\u0162\u0163\7*\2\2\u0163\67\3\2\2\2\u0164\u0165",
      "\7+\2\2\u01659\3\2\2\2\u0166\u0167\7?\2\2\u0167\u0168\7?\2\2\u0168;",
      "\3\2\2\2\u0169\u016a\7#\2\2\u016a\u016b\7?\2\2\u016b=\3\2\2\2\u016c",
      "\u016d\7(\2\2\u016d\u016e\7(\2\2\u016e?\3\2\2\2\u016f\u0170\7~\2\2\u0170",
      "\u0171\7~\2\2\u0171A\3\2\2\2\u0172\u0173\7>\2\2\u0173C\3\2\2\2\u0174",
      "\u0175\7@\2\2\u0175E\3\2\2\2\u0176\u0177\7>\2\2\u0177\u0178\7?\2\2\u0178",
      "G\3\2\2\2\u0179\u017a\7@\2\2\u017a\u017b\7?\2\2\u017bI\3\2\2\2\u017c",
      "\u017e\t\5\2\2\u017d\u017c\3\2\2\2\u017e\u017f\3\2\2\2\u017f\u017d\3",
      "\2\2\2\u017f\u0180\3\2\2\2\u0180\u0181\3\2\2\2\u0181\u0182\b$\6\2\u0182",
      "K\3\2\2\2\u0183\u0184\5t9\2\u0184M\3\2\2\2\u0185\u018a\5v:\2\u0186\u0189",
      "\5v:\2\u0187\u0189\t\6\2\2\u0188\u0186\3\2\2\2\u0188\u0187\3\2\2\2\u0189",
      "\u018c\3\2\2\2\u018a\u0188\3\2\2\2\u018a\u018b\3\2\2\2\u018bO\3\2\2",
      "\2\u018c\u018a\3\2\2\2\u018d\u018f\t\6\2\2\u018e\u018d\3\2\2\2\u018f",
      "\u0190\3\2\2\2\u0190\u018e\3\2\2\2\u0190\u0191\3\2\2\2\u0191Q\3\2\2",
      "\2\u0192\u0194\t\6\2\2\u0193\u0192\3\2\2\2\u0194\u0195\3\2\2\2\u0195",
      "\u0193\3\2\2\2\u0195\u0196\3\2\2\2\u0196\u0197\3\2\2\2\u0197\u019b\7",
      "\60\2\2\u0198\u019a\t\6\2\2\u0199\u0198\3\2\2\2\u019a\u019d\3\2\2\2",
      "\u019b\u0199\3\2\2\2\u019b\u019c\3\2\2\2\u019c\u01a5\3\2\2\2\u019d\u019b",
      "\3\2\2\2\u019e\u01a0\7\60\2\2\u019f\u01a1\t\6\2\2\u01a0\u019f\3\2\2",
      "\2\u01a1\u01a2\3\2\2\2\u01a2\u01a0\3\2\2\2\u01a2\u01a3\3\2\2\2\u01a3",
      "\u01a5\3\2\2\2\u01a4\u0193\3\2\2\2\u01a4\u019e\3\2\2\2\u01a5S\3\2\2",
      "\2\u01a6\u01a8\7\17\2\2\u01a7\u01a6\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8",
      "\u01a9\3\2\2\2\u01a9\u01aa\7\f\2\2\u01aa\u01ab\3\2\2\2\u01ab\u01ac\b",
      ")\7\2\u01acU\3\2\2\2\u01ad\u01ae\7\61\2\2\u01ae\u01af\7,\2\2\u01af\u01b3",
      "\3\2\2\2\u01b0\u01b2\13\2\2\2\u01b1\u01b0\3\2\2\2\u01b2\u01b5\3\2\2",
      "\2\u01b3\u01b4\3\2\2\2\u01b3\u01b1\3\2\2\2\u01b4\u01b6\3\2\2\2\u01b5",
      "\u01b3\3\2\2\2\u01b6\u01b7\7,\2\2\u01b7\u01b8\7\61\2\2\u01b8\u01b9\3",
      "\2\2\2\u01b9\u01ba\b*\b\2\u01baW\3\2\2\2\u01bb\u01bc\7\61\2\2\u01bc",
      "\u01bd\7\61\2\2\u01bd\u01c1\3\2\2\2\u01be\u01c0\n\2\2\2\u01bf\u01be",
      "\3\2\2\2\u01c0\u01c3\3\2\2\2\u01c1\u01bf\3\2\2\2\u01c1\u01c2\3\2\2\2",
      "\u01c2\u01c4\3\2\2\2\u01c3\u01c1\3\2\2\2\u01c4\u01c5\b+\b\2\u01c5Y\3",
      "\2\2\2\u01c6\u01c8\7^\2\2\u01c7\u01c9\7\17\2\2\u01c8\u01c7\3\2\2\2\u01c8",
      "\u01c9\3\2\2\2\u01c9\u01ca\3\2\2\2\u01ca\u01cb\7\f\2\2\u01cb\u01cc\3",
      "\2\2\2\u01cc\u01cd\b,\6\2\u01cd[\3\2\2\2\u01ce\u01d3\5v:\2\u01cf\u01d2",
      "\5v:\2\u01d0\u01d2\t\6\2\2\u01d1\u01cf\3\2\2\2\u01d1\u01d0\3\2\2\2\u01d2",
      "\u01d5\3\2\2\2\u01d3\u01d1\3\2\2\2\u01d3\u01d4\3\2\2\2\u01d4\u01df\3",
      "\2\2\2\u01d5\u01d3\3\2\2\2\u01d6\u01db\7*\2\2\u01d7\u01da\5v:\2\u01d8",
      "\u01da\t\7\2\2\u01d9\u01d7\3\2\2\2\u01d9\u01d8\3\2\2\2\u01da\u01dd\3",
      "\2\2\2\u01db\u01d9\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc\u01de\3\2\2\2\u01dd",
      "\u01db\3\2\2\2\u01de\u01e0\7+\2\2\u01df\u01d6\3\2\2\2\u01df\u01e0\3",
      "\2\2\2\u01e0\u01e1\3\2\2\2\u01e1\u01e2\b-\t\2\u01e2\u01e3\b-\4\2\u01e3",
      "]\3\2\2\2\u01e4\u01e6\7^\2\2\u01e5\u01e7\7\17\2\2\u01e6\u01e5\3\2\2",
      "\2\u01e6\u01e7\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01e9\7\f\2\2\u01e9",
      "\u01ea\3\2\2\2\u01ea\u01eb\b.\6\2\u01eb_\3\2\2\2\u01ec\u01ed\7^\2\2",
      "\u01ed\u01ee\13\2\2\2\u01ee\u01ef\3\2\2\2\u01ef\u01f0\b/\n\2\u01f0a",
      "\3\2\2\2\u01f1\u01f3\7\17\2\2\u01f2\u01f1\3\2\2\2\u01f2\u01f3\3\2\2",
      "\2\u01f3\u01f4\3\2\2\2\u01f4\u01f5\7\f\2\2\u01f5\u01f6\3\2\2\2\u01f6",
      "\u01f7\b\60\13\2\u01f7\u01f8\b\60\7\2\u01f8c\3\2\2\2\u01f9\u01fa\7\61",
      "\2\2\u01fa\u01fb\7,\2\2\u01fb\u01ff\3\2\2\2\u01fc\u01fe\13\2\2\2\u01fd",
      "\u01fc\3\2\2\2\u01fe\u0201\3\2\2\2\u01ff\u0200\3\2\2\2\u01ff\u01fd\3",
      "\2\2\2\u0200\u0202\3\2\2\2\u0201\u01ff\3\2\2\2\u0202\u0203\7,\2\2\u0203",
      "\u0204\7\61\2\2\u0204\u0205\3\2\2\2\u0205\u0206\b\61\b\2\u0206\u0207",
      "\b\61\f\2\u0207e\3\2\2\2\u0208\u0209\7\61\2\2\u0209\u020a\7\61\2\2\u020a",
      "\u020e\3\2\2\2\u020b\u020d\n\2\2\2\u020c\u020b\3\2\2\2\u020d\u0210\3",
      "\2\2\2\u020e\u020c\3\2\2\2\u020e\u020f\3\2\2\2\u020f\u0211\3\2\2\2\u0210",
      "\u020e\3\2\2\2\u0211\u0212\b\62\b\2\u0212\u0213\b\62\r\2\u0213g\3\2",
      "\2\2\u0214\u0215\7\61\2\2\u0215\u0216\3\2\2\2\u0216\u0217\b\63\n\2\u0217",
      "i\3\2\2\2\u0218\u021a\n\b\2\2\u0219\u0218\3\2\2\2\u021a\u021b\3\2\2",
      "\2\u021b\u0219\3\2\2\2\u021b\u021c\3\2\2\2\u021ck\3\2\2\2\u021d\u021e",
      "\7^\2\2\u021e\u0222\t\t\2\2\u021f\u0222\5n\66\2\u0220\u0222\5p\67\2",
      "\u0221\u021d\3\2\2\2\u0221\u021f\3\2\2\2\u0221\u0220\3\2\2\2\u0222m",
      "\3\2\2\2\u0223\u0224\7^\2\2\u0224\u0225\t\n\2\2\u0225\u0226\t\13\2\2",
      "\u0226\u022d\t\13\2\2\u0227\u0228\7^\2\2\u0228\u0229\t\13\2\2\u0229",
      "\u022d\t\13\2\2\u022a\u022b\7^\2\2\u022b\u022d\t\13\2\2\u022c\u0223",
      "\3\2\2\2\u022c\u0227\3\2\2\2\u022c\u022a\3\2\2\2\u022do\3\2\2\2\u022e",
      "\u022f\7^\2\2\u022f\u0230\7w\2\2\u0230\u0231\5r8\2\u0231\u0232\5r8\2",
      "\u0232\u0233\5r8\2\u0233\u0234\5r8\2\u0234q\3\2\2\2\u0235\u0236\t\f",
      "\2\2\u0236s\3\2\2\2\u0237\u023d\7$\2\2\u0238\u023c\n\r\2\2\u0239\u023a",
      "\7^\2\2\u023a\u023c\13\2\2\2\u023b\u0238\3\2\2\2\u023b\u0239\3\2\2\2",
      "\u023c\u023f\3\2\2\2\u023d\u023b\3\2\2\2\u023d\u023e\3\2\2\2\u023e\u0240",
      "\3\2\2\2\u023f\u023d\3\2\2\2\u0240\u0241\7$\2\2\u0241u\3\2\2\2\u0242",
      "\u0248\t\16\2\2\u0243\u0248\n\17\2\2\u0244\u0245\t\20\2\2\u0245\u0248",
      "\t\21\2\2\u0246\u0248\t\22\2\2\u0247\u0242\3\2\2\2\u0247\u0243\3\2\2",
      "\2\u0247\u0244\3\2\2\2\u0247\u0246\3\2\2\2\u0248w\3\2\2\2\u0249\u024a",
      "\t\23\2\2\u024ay\3\2\2\2\u024b\u024c\t\24\2\2\u024c{\3\2\2\2\u024d\u024e",
      "\t\25\2\2\u024e}\3\2\2\2\u024f\u0250\t\26\2\2\u0250\177\3\2\2\2\u0251",
      "\u0252\t\27\2\2\u0252\u0081\3\2\2\2\u0253\u0254\t\30\2\2\u0254\u0083",
      "\3\2\2\2\u0255\u0256\t\31\2\2\u0256\u0085\3\2\2\2\u0257\u0258\t\32\2",
      "\2\u0258\u0087\3\2\2\2\u0259\u025a\t\33\2\2\u025a\u0089\3\2\2\2\u025b",
      "\u025c\t\34\2\2\u025c\u008b\3\2\2\2\u025d\u025e\t\35\2\2\u025e\u008d",
      "\3\2\2\2\u025f\u0260\t\36\2\2\u0260\u008f\3\2\2\2\u0261\u0262\t\37\2",
      "\2\u0262\u0091\3\2\2\2\u0263\u0264\t \2\2\u0264\u0093\3\2\2\2\u0265",
      "\u0266\t!\2\2\u0266\u0095\3\2\2\2\u0267\u0268\t\"\2\2\u0268\u0097\3",
      "\2\2\2\u0269\u026a\t#\2\2\u026a\u0099\3\2\2\2\u026b\u026c\t$\2\2\u026c",
      "\u009b\3\2\2\2\u026d\u026e\t%\2\2\u026e\u009d\3\2\2\2\u026f\u0270\t",
      "&\2\2\u0270\u009f\3\2\2\2\u0271\u0272\t\'\2\2\u0272\u00a1\3\2\2\2\u0273",
      "\u0274\t(\2\2\u0274\u00a3\3\2\2\2\u0275\u0276\t)\2\2\u0276\u00a5\3\2",
      "\2\2\u0277\u0278\t*\2\2\u0278\u00a7\3\2\2\2\u0279\u027a\t+\2\2\u027a",
      "\u00a9\3\2\2\2\u027b\u027c\t,\2\2\u027c\u00ab\3\2\2\2*\2\3\4\5\u00b6",
      "\u00c4\u00d0\u00d9\u00db\u00e9\u00f5\u0104\u011b\u017f\u0188\u018a\u0190",
      "\u0195\u019b\u01a2\u01a4\u01a7\u01b3\u01c1\u01c8\u01d1\u01d3\u01d9\u01db",
      "\u01df\u01e6\u01f2\u01ff\u020e\u021b\u0221\u022c\u023b\u023d\u0247\16",
      "\4\3\2\t\4\2\4\5\2\4\4\2\2\3\2\4\2\2\2\4\2\t!\2\t)\2\t$\2\t%\2\t&\2"].join("");
  
  
  var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);
  
  var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); });
  
  function ObjectiveCPreprocessorLexer(input) {
  	antlr4.Lexer.call(this, input);
      this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache());
      return this;
  }
  
  ObjectiveCPreprocessorLexer.prototype = Object.create(antlr4.Lexer.prototype);
  ObjectiveCPreprocessorLexer.prototype.constructor = ObjectiveCPreprocessorLexer;
  
  ObjectiveCPreprocessorLexer.EOF = antlr4.Token.EOF;
  ObjectiveCPreprocessorLexer.SHARP = 1;
  ObjectiveCPreprocessorLexer.CODE = 2;
  ObjectiveCPreprocessorLexer.IMPORT = 3;
  ObjectiveCPreprocessorLexer.INCLUDE = 4;
  ObjectiveCPreprocessorLexer.PRAGMA = 5;
  ObjectiveCPreprocessorLexer.DEFINE = 6;
  ObjectiveCPreprocessorLexer.DEFINED = 7;
  ObjectiveCPreprocessorLexer.IF = 8;
  ObjectiveCPreprocessorLexer.ELIF = 9;
  ObjectiveCPreprocessorLexer.ELSE = 10;
  ObjectiveCPreprocessorLexer.UNDEF = 11;
  ObjectiveCPreprocessorLexer.IFDEF = 12;
  ObjectiveCPreprocessorLexer.IFNDEF = 13;
  ObjectiveCPreprocessorLexer.ENDIF = 14;
  ObjectiveCPreprocessorLexer.TRUE = 15;
  ObjectiveCPreprocessorLexer.FALSE = 16;
  ObjectiveCPreprocessorLexer.ERROR = 17;
  ObjectiveCPreprocessorLexer.BANG = 18;
  ObjectiveCPreprocessorLexer.LPAREN = 19;
  ObjectiveCPreprocessorLexer.RPAREN = 20;
  ObjectiveCPreprocessorLexer.EQUAL = 21;
  ObjectiveCPreprocessorLexer.NOTEQUAL = 22;
  ObjectiveCPreprocessorLexer.AND = 23;
  ObjectiveCPreprocessorLexer.OR = 24;
  ObjectiveCPreprocessorLexer.LT = 25;
  ObjectiveCPreprocessorLexer.GT = 26;
  ObjectiveCPreprocessorLexer.LE = 27;
  ObjectiveCPreprocessorLexer.GE = 28;
  ObjectiveCPreprocessorLexer.DIRECTIVE_WHITESPACES = 29;
  ObjectiveCPreprocessorLexer.DIRECTIVE_STRING = 30;
  ObjectiveCPreprocessorLexer.CONDITIONAL_SYMBOL = 31;
  ObjectiveCPreprocessorLexer.DECIMAL_LITERAL = 32;
  ObjectiveCPreprocessorLexer.FLOAT = 33;
  ObjectiveCPreprocessorLexer.NEW_LINE = 34;
  ObjectiveCPreprocessorLexer.DIRECITVE_COMMENT = 35;
  ObjectiveCPreprocessorLexer.DIRECITVE_LINE_COMMENT = 36;
  ObjectiveCPreprocessorLexer.DIRECITVE_NEW_LINE = 37;
  ObjectiveCPreprocessorLexer.DIRECITVE_TEXT_NEW_LINE = 38;
  ObjectiveCPreprocessorLexer.TEXT = 39;
  ObjectiveCPreprocessorLexer.SLASH = 40;
  
  ObjectiveCPreprocessorLexer.DIRECTIVE_MODE = 1;
  ObjectiveCPreprocessorLexer.DIRECTIVE_DEFINE = 2;
  ObjectiveCPreprocessorLexer.DIRECTIVE_TEXT = 3;
  
  ObjectiveCPreprocessorLexer.modeNames = [ "DEFAULT_MODE", "DIRECTIVE_MODE", 
                                            "DIRECTIVE_DEFINE", "DIRECTIVE_TEXT" ];
  
  ObjectiveCPreprocessorLexer.literalNames = [ 'null', "'#'", 'null', 'null', 
                                               'null', "'pragma'", 'null', 
                                               "'defined'", "'if'", "'elif'", 
                                               "'else'", "'undef'", "'ifdef'", 
                                               "'ifndef'", "'endif'", 'null', 
                                               'null', "'error'", "'!'", "'('", 
                                               "')'", "'=='", "'!='", "'&&'", 
                                               "'||'", "'<'", "'>'", "'<='", 
                                               "'>='" ];
  
  ObjectiveCPreprocessorLexer.symbolicNames = [ 'null', "SHARP", "CODE", "IMPORT", 
                                                "INCLUDE", "PRAGMA", "DEFINE", 
                                                "DEFINED", "IF", "ELIF", "ELSE", 
                                                "UNDEF", "IFDEF", "IFNDEF", 
                                                "ENDIF", "TRUE", "FALSE", 
                                                "ERROR", "BANG", "LPAREN", 
                                                "RPAREN", "EQUAL", "NOTEQUAL", 
                                                "AND", "OR", "LT", "GT", "LE", 
                                                "GE", "DIRECTIVE_WHITESPACES", 
                                                "DIRECTIVE_STRING", "CONDITIONAL_SYMBOL", 
                                                "DECIMAL_LITERAL", "FLOAT", 
                                                "NEW_LINE", "DIRECITVE_COMMENT", 
                                                "DIRECITVE_LINE_COMMENT", 
                                                "DIRECITVE_NEW_LINE", "DIRECITVE_TEXT_NEW_LINE", 
                                                "TEXT", "SLASH" ];
  
  ObjectiveCPreprocessorLexer.ruleNames = [ "SHARP", "COMMENT", "LINE_COMMENT", 
                                            "SLASH", "CHARACTER_LITERAL", 
                                            "QUOTE_STRING", "STRING", "CODE", 
                                            "IMPORT", "INCLUDE", "PRAGMA", 
                                            "DEFINE", "DEFINED", "IF", "ELIF", 
                                            "ELSE", "UNDEF", "IFDEF", "IFNDEF", 
                                            "ENDIF", "TRUE", "FALSE", "ERROR", 
                                            "BANG", "LPAREN", "RPAREN", "EQUAL", 
                                            "NOTEQUAL", "AND", "OR", "LT", 
                                            "GT", "LE", "GE", "DIRECTIVE_WHITESPACES", 
                                            "DIRECTIVE_STRING", "CONDITIONAL_SYMBOL", 
                                            "DECIMAL_LITERAL", "FLOAT", "NEW_LINE", 
                                            "DIRECITVE_COMMENT", "DIRECITVE_LINE_COMMENT", 
                                            "DIRECITVE_NEW_LINE", "DIRECTIVE_DEFINE_CONDITIONAL_SYMBOL", 
                                            "DIRECITVE_TEXT_NEW_LINE", "BACK_SLASH_ESCAPE", 
                                            "TEXT_NEW_LINE", "DIRECTIVE_COMMENT", 
                                            "DIRECTIVE_LINE_COMMENT", "DIRECTIVE_SLASH", 
                                            "TEXT", "EscapeSequence", "OctalEscape", 
                                            "UnicodeEscape", "HexDigit", "StringFragment", 
                                            "LETTER", "A", "B", "C", "D", 
                                            "E", "F", "G", "H", "I", "J", 
                                            "K", "L", "M", "N", "O", "P", 
                                            "Q", "R", "S", "T", "U", "V", 
                                            "W", "X", "Y", "Z" ];
  
  ObjectiveCPreprocessorLexer.grammarFileName = "ObjectiveCPreprocessorLexer.g4";
  
  
  
  exports.ObjectiveCPreprocessorLexer = ObjectiveCPreprocessorLexer;
  
  