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
+1 -1
View File
@@ -1129,7 +1129,7 @@ token_precedence :: proc(p: ^Parser, kind: token.Kind) -> int {
switch kind { switch kind {
case token.Question: case token.Question:
return 1; return 1;
case token.Ellipsis: case token.Ellipsis, token.Range_Half:
if !p.allow_range { if !p.allow_range {
return 0; return 0;
} }
+2
View File
@@ -108,6 +108,7 @@ using Kind :: enum u32 {
Period, Period,
Comma, Comma,
Ellipsis, Ellipsis,
Range_Half,
Back_Slash, Back_Slash,
B_Operator_End, B_Operator_End,
@@ -244,6 +245,7 @@ tokens := [Kind.COUNT]string {
".", ".",
",", ",",
"..", "..",
"..<",
"\\", "\\",
"", "",
+2 -2
View File
@@ -2144,9 +2144,9 @@ Ast *parse_call_expr(AstFile *f, Ast *operand) {
} }
bool prefix_ellipsis = false; bool prefix_ellipsis = false;
if (is_token_range(f->curr_token)) { if (f->curr_token.kind == Token_Ellipsis) {
prefix_ellipsis = true; prefix_ellipsis = true;
ellipsis = expect_token(f, f->curr_token.kind); ellipsis = expect_token(f, Token_Ellipsis);
} }
Ast *arg = parse_expr(f, false); Ast *arg = parse_expr(f, false);