in tree-sitter-ccomment/src/parser.c [168:338]
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(20);
if (lookahead == '"') ADVANCE(6);
if (lookahead == '#') ADVANCE(23);
if (lookahead == '\'') ADVANCE(7);
if (lookahead == '/') ADVANCE(8);
if (lookahead == 'R') ADVANCE(21);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(22);
if (lookahead != 0) ADVANCE(24);
END_STATE();
case 1:
if (lookahead == '\n') ADVANCE(27);
if (lookahead == '\\') ADVANCE(2);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(1);
if (lookahead != 0) ADVANCE(4);
END_STATE();
case 2:
if (lookahead == '\n') ADVANCE(25);
if (lookahead == '\r') ADVANCE(3);
if (lookahead == '\\') ADVANCE(2);
if (lookahead != 0) ADVANCE(4);
END_STATE();
case 3:
if (lookahead == '\n') ADVANCE(25);
if (lookahead == '\\') ADVANCE(2);
if (lookahead != 0) ADVANCE(4);
END_STATE();
case 4:
if (lookahead == '\n') ADVANCE(26);
if (lookahead == '\\') ADVANCE(2);
if (lookahead != 0) ADVANCE(4);
END_STATE();
case 5:
if (lookahead == '\r') ADVANCE(33);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 6:
if (lookahead == '"') ADVANCE(29);
if (lookahead == '\\') ADVANCE(18);
if (lookahead != 0) ADVANCE(6);
END_STATE();
case 7:
if (lookahead == '\'') ADVANCE(30);
if (lookahead == '\\') ADVANCE(19);
if (lookahead != 0) ADVANCE(7);
END_STATE();
case 8:
if (lookahead == '*') ADVANCE(10);
if (lookahead == '/') ADVANCE(32);
END_STATE();
case 9:
if (lookahead == '*') ADVANCE(9);
if (lookahead == '/') ADVANCE(31);
if (lookahead != 0) ADVANCE(10);
END_STATE();
case 10:
if (lookahead == '*') ADVANCE(9);
if (lookahead != 0) ADVANCE(10);
END_STATE();
case 11:
if (lookahead == 'd') ADVANCE(12);
if (lookahead == '\t' ||
lookahead == ' ') ADVANCE(11);
END_STATE();
case 12:
if (lookahead == 'e') ADVANCE(14);
END_STATE();
case 13:
if (lookahead == 'e') ADVANCE(17);
END_STATE();
case 14:
if (lookahead == 'f') ADVANCE(15);
END_STATE();
case 15:
if (lookahead == 'i') ADVANCE(16);
END_STATE();
case 16:
if (lookahead == 'n') ADVANCE(13);
END_STATE();
case 17:
if (lookahead == '\t' ||
lookahead == ' ') ADVANCE(28);
END_STATE();
case 18:
if (lookahead != 0) ADVANCE(6);
END_STATE();
case 19:
if (lookahead != 0) ADVANCE(7);
END_STATE();
case 20:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 21:
ACCEPT_TOKEN(sym_nothing);
END_STATE();
case 22:
ACCEPT_TOKEN(sym_nothing);
if (lookahead == '#') ADVANCE(23);
if (lookahead == 'R') ADVANCE(21);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(22);
if (lookahead != 0 &&
lookahead != '"' &&
lookahead != '#' &&
lookahead != '\'' &&
lookahead != '/') ADVANCE(24);
END_STATE();
case 23:
ACCEPT_TOKEN(sym_nothing);
if (lookahead == 'd') ADVANCE(12);
if (lookahead == '\t' ||
lookahead == ' ') ADVANCE(11);
END_STATE();
case 24:
ACCEPT_TOKEN(sym_nothing);
if (lookahead != 0 &&
lookahead != '"' &&
lookahead != '#' &&
lookahead != '\'' &&
lookahead != '/' &&
lookahead != 'R') ADVANCE(24);
END_STATE();
case 25:
ACCEPT_TOKEN(sym_preproc_continuation_line);
END_STATE();
case 26:
ACCEPT_TOKEN(sym_preproc_line);
END_STATE();
case 27:
ACCEPT_TOKEN(sym_preproc_line);
if (lookahead == '\n') ADVANCE(27);
if (lookahead == '\\') ADVANCE(2);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(1);
if (lookahead != 0) ADVANCE(4);
END_STATE();
case 28:
ACCEPT_TOKEN(aux_sym_define_token1);
if (lookahead == '\t' ||
lookahead == ' ') ADVANCE(28);
END_STATE();
case 29:
ACCEPT_TOKEN(aux_sym_string_literal_token1);
END_STATE();
case 30:
ACCEPT_TOKEN(aux_sym_char_literal_token1);
END_STATE();
case 31:
ACCEPT_TOKEN(sym_comment);
END_STATE();
case 32:
ACCEPT_TOKEN(sym_comment);
if (lookahead == '\\') ADVANCE(5);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(32);
END_STATE();
case 33:
ACCEPT_TOKEN(sym_comment);
if (lookahead == '\\') ADVANCE(5);
if (lookahead != 0) ADVANCE(32);
END_STATE();
default:
return false;
}
}