@Override public boolean update(RulesByName symbols) { if (!symbols.hasRule(expr)) { symbols.put(this.expr, this); } return true; }
@Override public FactorySupplyRule getActualRule(RulesByName symbols) { FactorySupplyRule f = symbols.get(this.value); if (f == null) { throw new ParseErrorException("Undefined symbol " + value + " used in the rule"); } return f; }
@Override public FactorySupplyRule getLeading(RulesByName names) { return names.get(this.value); }