summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.c8
-rw-r--r--test.toc3
2 files changed, 9 insertions, 2 deletions
diff --git a/parse.c b/parse.c
index 24253f0..f80e28e 100644
--- a/parse.c
+++ b/parse.c
@@ -692,7 +692,10 @@ static bool parser_is_definitely_type(Parser *p, Token **end) {
}
}
break;
- case KW_LPAREN: {
+ case KW_LT: {
+ /* no expression can start with < */
+ return true;
+#if 0
Token *child_end;
++t->token;
ret = false;
@@ -702,7 +705,7 @@ static bool parser_is_definitely_type(Parser *p, Token **end) {
if (t->token->kw == KW_COMMA) {
++t->token;
continue;
- } else if (t->token->kw == KW_RPAREN) {
+ } else if (t->token->kw == KW_GT) {
/* it *is* a tuple! */
ret = true;
++t->token;
@@ -710,6 +713,7 @@ static bool parser_is_definitely_type(Parser *p, Token **end) {
}
} else break;
}
+#endif
} break;
case KW_FN: {
ret = false;
diff --git a/test.toc b/test.toc
index b143ad4..d3f0f3e 100644
--- a/test.toc
+++ b/test.toc
@@ -13,5 +13,8 @@ foo ::= fn() <int, int> {
main ::= fn() {
a, b := foo();
+ x , y::= (int, int);
puti(a); puti(b);
+ c:x = 7;
+ d:x = 18;
}; \ No newline at end of file