aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parse.cff8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parse.cff b/src/parse.cff
index c331986..87ca850 100644
--- a/src/parse.cff
+++ b/src/parse.cff
@@ -414,9 +414,13 @@ fn lex(P *Parser) Tok {
}
switch c = chr(P) {
case '(', ')', '[', ']', '{',
- '}', ',', ';', '?', '~';
+ '}', ',', ';', '~';
tok.t = c;
return tok;
+ case '?';
+ if chrmatch(P, '?') { tok.t = '??'; }
+ else { tok.t = '?'; }
+ return tok;
case '.';
if chrmatch(P, '.') {
if chrmatch(P, '.') { tok.t = '...'; }
@@ -541,7 +545,7 @@ fn finddecl(P *Parser, name *const u8) *Decl {
putprimtypes(primenv);
}
let p = envfind(primenv, name);
- return p ? p : envfind(P.curenv, name);
+ return p ?? envfind(P.curenv, name);
}
fn putdecl(P *Parser, decl Decl) *Decl {