Update parsers

This commit is contained in:
gingerBill
2019-05-28 12:55:55 +01:00
parent fb3d73cb20
commit 65e9b4d5f0
3 changed files with 5 additions and 3 deletions

View File

@@ -1129,7 +1129,7 @@ token_precedence :: proc(p: ^Parser, kind: token.Kind) -> int {
switch kind {
case token.Question:
return 1;
case token.Ellipsis:
case token.Ellipsis, token.Range_Half:
if !p.allow_range {
return 0;
}

View File

@@ -108,6 +108,7 @@ using Kind :: enum u32 {
Period,
Comma,
Ellipsis,
Range_Half,
Back_Slash,
B_Operator_End,
@@ -244,6 +245,7 @@ tokens := [Kind.COUNT]string {
".",
",",
"..",
"..<",
"\\",
"",

View File

@@ -2144,9 +2144,9 @@ Ast *parse_call_expr(AstFile *f, Ast *operand) {
}
bool prefix_ellipsis = false;
if (is_token_range(f->curr_token)) {
if (f->curr_token.kind == Token_Ellipsis) {
prefix_ellipsis = true;
ellipsis = expect_token(f, f->curr_token.kind);
ellipsis = expect_token(f, Token_Ellipsis);
}
Ast *arg = parse_expr(f, false);