Both 7.6 and 7.7-comiplations give me this on an up to date Debian unstable:
sed -e 's/YY_COUNT_TYPE/unsigned int/' \ -e 's/YY_FROM_CONST/const/' \ < /pkg/pike/src/Pike/7.6/src/y.tab.c > /pkg/pike/src/Pike/7.6/src/language.c Compiling /pkg/pike/src/Pike/7.6/src/language.c y.tab.c:384: error: two or more data types in declaration of `yyss' y.tab.c:921: error: two or more data types in declaration of `yyr1' y.tab.c:1059: error: two or more data types in declaration of `yydefact' *and so on*
It's because of a "#define short int" and the use of "short int" in the code resulting in "int int" after the define is replaced.
Seems to work to change it to just "#define short", but I guess that'll break in older bisons instead.
(I also tried "#define short signed" since "signed" works both when followed by "int" and when not, but there were some "unsigned short int" in there.)
Out of curiosity, why is this define there at all? Does using shorts break anything?
It's there to speed up the parser a bit. Most modern cpus waste cycles when using shorts.
pike-devel@lists.lysator.liu.se