From 80c0daceaab70732f867db5998c2ac90b87e29e0 Mon Sep 17 00:00:00 2001 From: mtardy Date: Tue, 18 Aug 2020 15:48:19 +0200 Subject: [PATCH] Treat single characters (delimited by single quotes) as integers --- parse.leg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parse.leg b/parse.leg index ccb19e9..90e25d9 100644 --- a/parse.leg +++ b/parse.leg @@ -741,8 +741,7 @@ value = n:NUMBER { $$ = newInteger(n) } string = s:STRING - { $$ = s } -STRING = SQUOTE < (!SQUOTE char)* > SQUOTE { $$ = makeString(unescape(yytext)) } - | DQUOTE < (!DQUOTE char)* > DQUOTE { $$ = makeString(unescape(yytext)) } +STRING = DQUOTE < (!DQUOTE char)* > DQUOTE { $$ = makeString(unescape(yytext)) } char = '\\' . | . @@ -786,6 +785,7 @@ NUMBER = '0b' < [01]+ > - { $$ = makeInteger(strtol | '0x' < [0-9a-fA-F]+ > - { $$ = makeInteger(strtol(yytext, 0, 16)) } | '0' < [0-7]+ > - { $$ = makeInteger(strtol(yytext, 0, 8)) } | < [0-9]+ > - { $$ = makeInteger(strtol(yytext, 0, 10)) } + | SQUOTE < (!SQUOTE char) > SQUOTE - { $$ = makeInteger(unescape(yytext)[0]) } FUN = 'fun' ![a-zA-Z0-9_] - SYNTAX = 'syntax' ![a-zA-Z0-9_] -