private static List<TokenParser> buildTokenParsers(SyntaxTable table, boolean forHighlighting) {
    final NumberParser numberParser = new NumberParser(table.getNumPostfixChars(), table.isIgnoreCase());
    final HexNumberParser hexNumberParser = HexNumberParser.create(table.getHexPrefix());
    
    final KeywordParser parser = table.getKeywordParser();
    final TokenParser keywordParser = new TokenParser() {
      @Override
      public boolean hasToken(int position) {
        return parser.hasToken(position, myBuffer, myTokenInfo);
      }
    };
    
    final IdentifierParser identifierParser = new IdentifierParser(parser);

    final QuotedStringParser quotedStringParser = new QuotedStringParser("\"", CustomHighlighterTokenType.STRING, table.isHasStringEscapes());

    final QuotedStringParser quotedStringParser2 = new QuotedStringParser(
      "'",
        forHighlighting ? CustomHighlighterTokenType.SINGLE_QUOTED_STRING:CustomHighlighterTokenType.STRING,
        table.isHasStringEscapes()
    );

    ArrayList<TokenParser> tokenParsers = new ArrayList<>();
    tokenParsers.add(new WhitespaceParser());
    tokenParsers.add(new CommentParser(table));
    tokenParsers.add(keywordParser);
    tokenParsers.add(quotedStringParser);
    tokenParsers.add(quotedStringParser2);
    tokenParsers.add(new PunctuationParser());
    if (hexNumberParser != null) {
      tokenParsers.add(hexNumberParser);
    }
    tokenParsers.add(numberParser);
    tokenParsers.add(identifierParser);

    if (table.isHasBraces()) {
      tokenParsers.addAll(BraceTokenParser.getBraces());
    }

    if (table.isHasParens()) {
      tokenParsers.addAll(BraceTokenParser.getParens());
    }

    if (table.isHasBrackets()) {
      tokenParsers.addAll(BraceTokenParser.getBrackets());
    }

    return tokenParsers;
  }
private static List<TokenParser> buildTokenParsers(SyntaxTable table, boolean forHighlighting)