diff --git a/ConstantExpression.cpp b/ConstantExpression.cpp
index 6badf57..9413c9a 100644
--- a/ConstantExpression.cpp
+++ b/ConstantExpression.cpp
@@ -674,12 +674,16 @@
     mIsPostParseCompleted = true;
 }
 
+void ConstantExpression::surroundWithParens() {
+    mExpr = "(" + mExpr + ")";
+}
+
 std::vector<const ConstantExpression*> LiteralConstantExpression::getConstantExpressions() const {
     return {};
 }
 
 UnaryConstantExpression::UnaryConstantExpression(const std::string& op, ConstantExpression* value)
-    : ConstantExpression(std::string("(") + op + value->mExpr + ")"), mUnary(value), mOp(op) {}
+    : ConstantExpression(op + value->mExpr), mUnary(value), mOp(op) {}
 
 std::vector<const ConstantExpression*> UnaryConstantExpression::getConstantExpressions() const {
     return {mUnary};
@@ -687,7 +691,7 @@
 
 BinaryConstantExpression::BinaryConstantExpression(ConstantExpression* lval, const std::string& op,
                                                    ConstantExpression* rval)
-    : ConstantExpression(std::string("(") + lval->mExpr + " " + op + " " + rval->mExpr + ")"),
+    : ConstantExpression(lval->mExpr + " " + op + " " + rval->mExpr),
       mLval(lval),
       mRval(rval),
       mOp(op) {}
@@ -699,8 +703,7 @@
 TernaryConstantExpression::TernaryConstantExpression(ConstantExpression* cond,
                                                      ConstantExpression* trueVal,
                                                      ConstantExpression* falseVal)
-    : ConstantExpression(std::string("(") + cond->mExpr + "?" + trueVal->mExpr + ":" +
-                         falseVal->mExpr + ")"),
+    : ConstantExpression(cond->mExpr + "?" + trueVal->mExpr + ":" + falseVal->mExpr),
       mCond(cond),
       mTrueVal(trueVal),
       mFalseVal(falseVal) {}
diff --git a/ConstantExpression.h b/ConstantExpression.h
index 9f20fd5..d45465e 100644
--- a/ConstantExpression.h
+++ b/ConstantExpression.h
@@ -51,6 +51,8 @@
 
     virtual bool isReferenceConstantExpression() const;
 
+    void surroundWithParens();
+
     // Proceeds recursive pass
     // Makes sure to visit each node only once
     // Used to provide lookup and lazy evaluation
@@ -137,7 +139,7 @@
     /* If the result value has been evaluated. */
     bool mIsEvaluated = false;
     /* The formatted expression. */
-    const std::string mExpr;
+    std::string mExpr;
     /* The kind of the result value. */
     ScalarType::Kind mValueKind;
     /* The stored result value. */
diff --git a/hidl-gen_y.yy b/hidl-gen_y.yy
index 7d4650d..5f9238f 100644
--- a/hidl-gen_y.yy
+++ b/hidl-gen_y.yy
@@ -821,7 +821,11 @@
     | '-' const_expr %prec UNARY_MINUS { $$ = new UnaryConstantExpression("-", $2); }
     | '!' const_expr { $$ = new UnaryConstantExpression("!", $2); }
     | '~' const_expr { $$ = new UnaryConstantExpression("~", $2); }
-    | '(' const_expr ')' { $$ = $2; }
+    | '(' const_expr ')'
+      {
+        $2->surroundWithParens();
+        $$ = $2;
+      }
     | '(' error ')'
       {
         ast->addSyntaxError();
