|
|
@@ -53,7 +53,7 @@ void _lexer_set_err(struct lexer_err *err, enum lexer_err_code code);
|
|
|
|
|
|
#if defined(IMP) || defined(LEXER_IMP)
|
|
|
|
|
|
-struct lexer
|
|
|
+struct lexer
|
|
|
lexer_create(struct str in)
|
|
|
{
|
|
|
struct lexer l = {0};
|
|
|
@@ -62,7 +62,7 @@ lexer_create(struct str in)
|
|
|
return l;
|
|
|
}
|
|
|
|
|
|
-void
|
|
|
+void
|
|
|
lexer_read_char(struct lexer *l)
|
|
|
{
|
|
|
if ( l->rpos >= l->in.size ) {
|
|
|
@@ -74,7 +74,7 @@ lexer_read_char(struct lexer *l)
|
|
|
++l->rpos;
|
|
|
}
|
|
|
|
|
|
-char
|
|
|
+char
|
|
|
lexer_peek_char(struct lexer *l)
|
|
|
{
|
|
|
if ( l->rpos >= l->in.size ) {
|
|
|
@@ -83,7 +83,7 @@ lexer_peek_char(struct lexer *l)
|
|
|
return l->in.data[l->rpos];
|
|
|
}
|
|
|
|
|
|
-struct token
|
|
|
+struct token
|
|
|
lexer_next_token(struct lexer *l, struct lexer_err *err)
|
|
|
{
|
|
|
#define _LEXER_CUR_CHAR str_slice(l->in, l->pos, l->pos+1)
|
|
|
@@ -156,7 +156,7 @@ lexer_next_token(struct lexer *l, struct lexer_err *err)
|
|
|
goto ret_ok;
|
|
|
break;
|
|
|
case '\0': t = token_create(TT_EOF, STR_EMPTY); break;
|
|
|
- default:
|
|
|
+ default:
|
|
|
if ( _lexer_is_letter(l->c) ) {
|
|
|
struct str ident = lexer_read_ident(l);
|
|
|
t = token_create(lexer_lookup_ident(ident), ident);
|
|
|
@@ -181,7 +181,7 @@ ret_invalid:
|
|
|
#undef _LEXER_CUR_CHAR
|
|
|
}
|
|
|
|
|
|
-struct str
|
|
|
+struct str
|
|
|
lexer_read_ident(struct lexer *l)
|
|
|
{
|
|
|
size_t pos = l->pos;
|
|
|
@@ -375,7 +375,7 @@ lexer_lookup_ident(struct str ident)
|
|
|
}
|
|
|
|
|
|
|
|
|
-void
|
|
|
+void
|
|
|
lexer_skip_whitespace(struct lexer *l)
|
|
|
{
|
|
|
loop:
|
|
|
@@ -392,7 +392,7 @@ loop:
|
|
|
}
|
|
|
|
|
|
|
|
|
-struct token
|
|
|
+struct token
|
|
|
lexer_handle_pp(struct lexer *l, struct lexer_err *err)
|
|
|
{
|
|
|
struct token t = TOKEN_ILLEGAL;
|