From: NeilBrown Date: Sat, 15 Jun 2019 23:14:03 +0000 (+1000) Subject: parsergen: allow non-virtual symbol to carry precedence. X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=commitdiff_plain;h=1241e83b69180195d70eb673a4266c710533ece3 parsergen: allow non-virtual symbol to carry precedence. When a production has $$foo to explicity set precedence, the 'foo' doesn't really need to be virtual, it just needs to actually carry a precedence. Signed-off-by: NeilBrown --- diff --git a/csrc/parsergen.mdc b/csrc/parsergen.mdc index 82d09b3..04974c3 100644 --- a/csrc/parsergen.mdc +++ b/csrc/parsergen.mdc @@ -499,8 +499,8 @@ Now we have all the bits we need to parse a full production. vs = sym_find(g, tk.txt); if (vs->num == TK_newline) p.line_like = 1; - else if (vs->type != Virtual) { - err = "symbol after $$ must be virtual"; + else if (vs->precedence == 0) { + err = "symbol after $$ must have precedence"; goto abort; } else { p.precedence = vs->precedence;