for(int i=0;i<l;++i) {
par[i] = "v" + i;
}
- Expression lhs = new EApply(
- new EVar("<+"),
- new EVar("sb"),
- new EApply(new EVar(constructor.name.name), Expressions.vars(par))
- );
- Expression value;
- value = new EApply(new EVar("<<"), new EVar("sb"),
- new ELiteral(new StringConstant(constructor.name.name)));
- for(int i=0;i<l;++i) {
- value = new EApply(new EVar("<<"),
- value,
- new ELiteral(new StringConstant(" "))
- );
- value = new EApply(new EVar("<+"),
- value,
- new EApply(new EVar("Par"), new ELiteral(CONST_10), new EVar("v" + i))
+
+ // <+
+ {
+ Expression lhs = new EApply(
+ new EVar("<+"),
+ new EVar("sb"),
+ new EApply(new EVar(constructor.name.name), Expressions.vars(par))
);
+ Expression value;
+ value = new EApply(new EVar("<<"), new EVar("sb"),
+ new ELiteral(new StringConstant(constructor.name.name)));
+ for(int i=0;i<l;++i) {
+ value = new EApply(new EVar("<<"),
+ value,
+ new ELiteral(new StringConstant(" "))
+ );
+ value = new EApply(new EVar("<+"),
+ value,
+ new EApply(new EVar("Par"), new ELiteral(CONST_10), new EVar("v" + i))
+ );
+ }
+
+ try {
+ DValueAst valueAst = new DValueAst(lhs, value);
+ valueAst.setLocationDeep(der.location);
+ valueDefs.add(valueAst);
+ /*valueDefs.addAnnotation("<+", new DAnnotationAst(new EVar("@private"),
+ Collections.<Expression>emptyList()));*/
+ } catch (NotPatternException e) {
+ errorLog.log(e.getExpression().location, "Not a pattern.");
+ }
}
-
- try {
- DValueAst valueAst = new DValueAst(lhs, value);
- valueAst.setLocationDeep(der.location);
- valueDefs.add(valueAst);
- /*valueDefs.addAnnotation("<+", new DAnnotationAst(new EVar("@private"),
- Collections.<Expression>emptyList()));*/
- } catch (NotPatternException e) {
- errorLog.log(e.getExpression().location, "Not a pattern.");
+
+ // precedence
+ {
+ Expression lhs = new EApply(
+ new EVar("precedence"),
+ new EApply(new EVar(constructor.name.name), Expressions.vars(par))
+ );
+ Expression value;
+ value = new ELiteral(new IntegerConstant(l == 0 ? 0 : 20));
+
+ try {
+ DValueAst valueAst = new DValueAst(lhs, value);
+ valueAst.setLocationDeep(der.location);
+ valueDefs.add(valueAst);
+ } catch (NotPatternException e) {
+ errorLog.log(e.getExpression().location, "Not a pattern.");
+ }
}
}
instancesAst.add(new ProcessedDInstanceAst(instanceAst, valueDefs));