From e9e8d7bdac8ff71e8a9051264fabc13ce8964f61 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Wed, 26 Sep 2018 17:43:47 +0300 Subject: More parsing fixes for the fspec files I have --- src/compiler/expr.lm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/compiler/expr.lm') diff --git a/src/compiler/expr.lm b/src/compiler/expr.lm index f758723..1bf6746 100644 --- a/src/compiler/expr.lm +++ b/src/compiler/expr.lm @@ -11,11 +11,11 @@ global RTYPE_STRING:int = 2 context expr context enum - token EXPR / (any - [,}])+ / + token EXPR / (any - [,}]) / def type collapsed:collapser::collapsed - [EXPR] { + [EXPR+] { lhs.collapsed = collapser::collapsestr($r1) if (!lhs.collapsed) reject } @@ -23,29 +23,29 @@ context expr context paren literal `( `) - token EXPR / (any - [()])+ / + token EXPR / (any - [()]) / def syntax [EXPR] | [`( syntax `)] def type collapsed:collapser::collapsed - [syntax] { + [syntax+] { lhs.collapsed = collapser::collapsestr($r1) if (!lhs.collapsed) reject } end context bracket - literal `[ `] - token EXPR / (any - '[' - ']')+ / + literal `[ `] `? `: + token EXPR / (any - '[' - ']' - ':') / def syntax - [EXPR] | [`[ syntax `]] + [EXPR] | [`[ syntax `]] | [syntax `? syntax `: syntax] def type collapsed:collapser::collapsed - [syntax] { + [syntax+] { lhs.collapsed = collapser::collapsestr($r1) if (!lhs.collapsed) reject } @@ -53,14 +53,14 @@ context expr context arg literal `( `) - token EXPR / (any - [(),])+ / + token EXPR / (any - [(),]) / def syntax [EXPR] | [`( syntax `)] def type collapsed:collapser::collapsed - [syntax] { + [syntax+] { lhs.collapsed = collapser::collapsestr($r1) if (!lhs.collapsed) reject } @@ -372,7 +372,7 @@ context collapser | [`) WS* value] commit { reject } | [`] WS* value] commit { reject } | [lparen tok+ rparen] commit - | [lsquare WS* rsquare] commit + | [lsquare tok+ rsquare] commit | [tok+ question tok+ colon tok+] commit | [otherops] { stack_op(r1.op) } | [value] { stack_value($r1) } -- cgit v1.2.3