Aria

A low-level systems programming language
git clone git://git.m21c.me/Aria.git
Log | Files | Refs | LICENSE

commit 3311ab95d241777836fcd7a0d8c1b44d87db9e0a
parent a555eb8ab253072c0276423c1e8488a3d202c246
Author: m21c <ho*******@gmail.com>
Date:   Fri, 27 Jun 2025 18:51:59 +0200

read char-literal

Diffstat:
Mcompiler.c | 20+++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/compiler.c b/compiler.c @@ -1535,15 +1535,21 @@ tokenizestring(Source *source, register int ch) return source->tok.kind = LINEDELIM; } - /* TODO(m21c): read '\''-token as character-literal CHAR */ + if (ch == '"') { + source->tok.u.key = getstringkey( + &strings, + source->line + source->tok.loc.column, + j - source->tok.loc.column + ); - source->tok.u.key = getstringkey( - &strings, - source->line + source->tok.loc.column, - j - source->tok.loc.column - ); + return source->tok.kind = STRING; + } - return source->tok.kind = STRING; + /* @todo read numerical value of character properly + * (escape sequences, etc.) */ + source->tok.type = prim + TUCHAR; + source->tok.u.u = source->line[source->tok.loc.column]; + return source->tok.kind = CHAR; } // }}}