Resolve constant expressions for external constants.

* Allow constant expressions to be used as array sizes
  and as annotation values.

Bug: 31592132 allow constant expressions to be used as array sizes.
Bug: 31628863 Autofill values for enum type

Test: `make android.hardware.tests.expression@1.0` compiles
  and generates enum class Color with autofilled values.
Test: `make hidl_test_java` succeeds.
Test: `make hidl_test && adb sync && adb shell hidl_test` succeeds.
Test: `mma`

Change-Id: I57377ec608503d4741d305e98144264b07973055
diff --git a/FQName.h b/FQName.h
index 1a4ee1d..deb533b 100644
--- a/FQName.h
+++ b/FQName.h
@@ -33,6 +33,8 @@
            const std::string &name,
            const std::string &valueName = "");
 
+    FQName(const FQName& other);
+
     bool isValid() const;
     bool isIdentifier() const;
     bool setTo(const std::string &s);
@@ -138,7 +140,8 @@
     std::string getPackageMinorVersion() const;
 
 private:
-    bool mValid, mIsIdentifier;
+    bool mValid;
+    bool mIsIdentifier;
     std::string mPackage;
     std::string mVersion;
     std::string mName;