From 7d2a1280cd4321d2a3b2fff0b2413085347a7b4d Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Thu, 21 May 2020 18:53:23 -0700 Subject: feat: prototype of ast stmt and decl implementations --- sys/cmd/cc/lex.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'sys/cmd/cc/lex.c') diff --git a/sys/cmd/cc/lex.c b/sys/cmd/cc/lex.c index e35ea7e..a8dabec 100644 --- a/sys/cmd/cc/lex.c +++ b/sys/cmd/cc/lex.c @@ -257,7 +257,7 @@ lex(Lexer *lx) GetByte: b = getbyte(lx); Dispatch: - tok.pos.beg = lx->pos; + tok.pos = lx->pos; if ((b != EOF && b >= RuneSelf) || b == '_') goto Talpha; @@ -631,7 +631,9 @@ Dispatch: n = intern(&tok.val.s); if (n < arrlen(keywords)) { - tok.kind = Akeywd; + tok.kind = Akeywd; + tok.val.i = n; + goto Return; } sym = lookup(&lx->sym, tok.val.s); @@ -662,7 +664,6 @@ Dispatch: Return: lx->b = lx->buf; - tok.pos.end = lx->pos; return tok; Nospace: @@ -773,6 +774,12 @@ forget(SymTab *tab, string ident) return 1; } +void +forgetall(SymTab *tab) +{ + MAP_RESET(tab); +} + // ----------------------------------------------------------------------- // error reporting -- cgit v1.2.1