diff options
author | Ed Willink | 2016-02-05 11:09:03 +0000 |
---|---|---|
committer | Ed Willink | 2016-02-05 11:18:47 +0000 |
commit | 7018dc55665b9410c1335c5b12b9d07abe5ccf8f (patch) | |
tree | 861f67d5959855f71689e305233297b035308022 | |
parent | fd37de79b80ff80682d638221ffca8a3fc0d55e0 (diff) | |
download | org.eclipse.ocl-7018dc55665b9410c1335c5b12b9d07abe5ccf8f.tar.gz org.eclipse.ocl-7018dc55665b9410c1335c5b12b9d07abe5ccf8f.tar.xz org.eclipse.ocl-7018dc55665b9410c1335c5b12b9d07abe5ccf8f.zip |
[487320] Parenthesize non-trivial unary expression arguments
-rw-r--r-- | plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/as2cs/EssentialOCLDeclarationVisitor.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/as2cs/EssentialOCLDeclarationVisitor.java b/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/as2cs/EssentialOCLDeclarationVisitor.java index 7a69f2c778..68e6d1a838 100644 --- a/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/as2cs/EssentialOCLDeclarationVisitor.java +++ b/plugins/org.eclipse.ocl.xtext.essentialocl/src/org/eclipse/ocl/xtext/essentialocl/as2cs/EssentialOCLDeclarationVisitor.java @@ -588,7 +588,16 @@ public class EssentialOCLDeclarationVisitor extends BaseDeclarationVisitor return createInfixExpCS(csSource, operationName, csArgument); } else { - ExpCS csSource = context.visitDeclaration(ExpCS.class, asSource); + ExpCS csSource; + if (isLowerPrecedence(asSource, asPrecedence)) { + ExpCS csExp = createExpCS(asSource); + NestedExpCS csNested = EssentialOCLCSFactory.eINSTANCE.createNestedExpCS(); + csNested.setOwnedExpression(csExp); + csSource = csNested; + } + else { + csSource = context.visitDeclaration(ExpCS.class, asSource); + } PrefixExpCS csPrefix = EssentialOCLCSFactory.eINSTANCE.createPrefixExpCS(); csPrefix.setName(operationName); ExpCS csResult = csPrefix; |