From d67d447f79371573a26aee434133424a45caee93 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 10 Jun 2019 16:51:31 +1000 Subject: [PATCH] Oceani: be sure to set precedence on required terminals. In some cases I was only setting on nonterminals which derived the terminals. That set it for the reduction, but not the terminal. Also remove an ERROR production that duplicates one from Declaration Signed-off-by: NeilBrown --- csrc/oceani.mdc | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index b1b5c33..8fef864 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -2472,7 +2472,7 @@ room for ambiguity, so a full conditional expression is allowed in there. ###### Grammar - $LEFT $$ifelse + $LEFT if $$ifelse ## expr precedence $*exec @@ -2695,7 +2695,7 @@ expression operator. NEql, ###### expr precedence - $LEFT CMPop + $LEFT < > <= >= == != CMPop ###### expression grammar | Expression CMPop Expression ${ { @@ -2807,8 +2807,8 @@ precedence is handled better I might be able to discard this. Bracket, ###### expr precedence - $LEFT Eop - $LEFT Top + $LEFT + - Eop + $LEFT * / % ++ Top $LEFT Uop ###### expression grammar @@ -4104,10 +4104,6 @@ analysis is a bit more interesting at this level. var_block_close(c, CloseSequential); if (c->scope_stack && !c->parse_error) abort(); }$ - | ERROR ${ - tok_err(c, - "error: unhandled parse error", &$1); - }$ Varlist -> Varlist ArgDecl ${ $0 = new(binode); -- 2.43.0