From 1241e83b69180195d70eb673a4266c710533ece3 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sun, 16 Jun 2019 09:14:03 +1000 Subject: [PATCH] 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 --- csrc/parsergen.mdc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.43.0