Old versions of byacc/j would create new instances of
the **Val class using the constructor that takes an
int value. It would pass in 0 then update the value
with the actual parsed value. No default constructor
was ever created in the **Val class.
The current version of byacc/J appears to use the
default constructor of the **Val class when creating a
new one.
To reduce build time (we have ~300 parsers) we pre-
generate the **Val classes and check them into source
control. Because these pre-generated **Val classes do
not have a default constructor, parsers generated
using the new version of byacc/j are incompatible with
them.
I'd really like to avoid having to update all 300 or
so **Val classes with a default constructor. I'd like
for the byacc/j tool to either revert to the previous
behavior in this regard, or provide an option to force
it to do so.
Even better, it would be great to generate all the
parsers and have them all use the same **Val class
since the contents are the same anyway.
Thanks,
-Mike
Logged In: YES
user_id=482413
Originator: NO
I do not consider it as incompatible change, since the parser class and **Val class are generated together. If you use new byacc/j you need to update all the parser classes anyway, so I do not see how updating **Val classes can be a problem. I agree with you that the **Val classes are the same, so I like the idea to have just one ParserVal class.