Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-02-05 11:09:03 +0000
committerEd Willink2016-02-05 11:18:47 +0000
commit7018dc55665b9410c1335c5b12b9d07abe5ccf8f (patch)
tree861f67d5959855f71689e305233297b035308022
parentfd37de79b80ff80682d638221ffca8a3fc0d55e0 (diff)
downloadorg.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.java11
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;

Back to the top