From fa8e4e5734e954942988f0c66eaa7ca7e823c33f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Hannu=20Niemist=C3=B6?= Date: Wed, 15 Nov 2017 09:11:32 +0200 Subject: [PATCH] (refs #7619) Better parenthese in derived show Change-Id: Ia0ce420d8958395f787f08926a14e7bfd6fc2bcd --- .../internal/deriving/ShowDeriver.java | 72 ++++++++++++------- 1 file changed, 47 insertions(+), 25 deletions(-) diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/ShowDeriver.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/ShowDeriver.java index afd2a4f89..40c3605e7 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/ShowDeriver.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/deriving/ShowDeriver.java @@ -81,33 +81,55 @@ class ShowDeriver implements InstanceDeriver { for(int i=0;iemptyList()));*/ + } 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.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)); -- 2.43.2