add identifier to parser
This commit is contained in:
@@ -1,30 +1,27 @@
|
||||
#include "lex.yy.h"
|
||||
#include "lexer.h"
|
||||
#include "lex.yy.h"
|
||||
|
||||
void lexer(LexerState state) {
|
||||
yyscan_t scanner;
|
||||
yyscan_t scanner;
|
||||
|
||||
yylex_init(&scanner);
|
||||
yylex_init(&scanner);
|
||||
|
||||
yyset_extra(&state, scanner);
|
||||
yyset_extra(&state, scanner);
|
||||
|
||||
yyset_in(state.file, scanner);
|
||||
yyset_in(state.file, scanner);
|
||||
|
||||
int token;
|
||||
while ((token = yylex(scanner)) != 0) {
|
||||
Token * token_struct = create_token(
|
||||
token,
|
||||
yyget_lineno(scanner),
|
||||
state.current_column+1,
|
||||
yyget_text(scanner)
|
||||
);
|
||||
darray_push(state.tokens, token_struct);
|
||||
free(token_struct);
|
||||
if (token == TOKEN_NEW_LINE) {
|
||||
state.current_column = 0;
|
||||
} else {
|
||||
state.current_column += yyget_leng(scanner);
|
||||
}
|
||||
int token;
|
||||
while ((token = yylex(scanner)) != 0) {
|
||||
Token *token_struct =
|
||||
create_token(token, yyget_lineno(scanner), state.current_column + 1,
|
||||
yyget_text(scanner));
|
||||
darray_push(state.tokens, token_struct);
|
||||
free(token_struct);
|
||||
if (token == TOKEN_NEW_LINE) {
|
||||
state.current_column = 0;
|
||||
} else {
|
||||
state.current_column += yyget_leng(scanner);
|
||||
}
|
||||
yylex_destroy(scanner);
|
||||
}
|
||||
yylex_destroy(scanner);
|
||||
}
|
||||
Reference in New Issue
Block a user