+ @Override
+ protected Object reduceDummy() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ protected Object reduceRulesetDefinition() {
+ Token name = (Token)get(1);
+ EBlock block = (EBlock)get(3);
+ return new DRulesetAst(name.text, block);
+ }
+
+ @Override
+ protected Object reduceLocalInclude() {
+ Token name = (Token)get(1);
+ Expression value = (Expression)get(2);
+ return new IncludeStatement(name, value);
+ }
+
+ @Override
+ protected Object reduceConstraintSpec() {
+ Expression[] expressions = new Expression[length()/2-1];
+ for(int i=0;i<expressions.length;++i)
+ expressions[i] = (Expression)get(2*i+1);
+ return expressions;
+ }
+