Hi Victor, > Le 4 mars 2020 à 03:59, Morales Cayuela, Victor (NSB - CN/Hangzhou) > <[email protected]> a écrit : > > Hello! > > I believe there is something wrong with --skeleton or -S parameter, seems it > is not taking effect when passed. > > I had to change the skeleton because the one available in my Mac has v3.4 and > to compile the C push-parser I need the v3.5 one. This is what I have found: > > (1) I try to run my local version of bison ($HOME/Projects/bison, not the > system one): > $ ./src/bison examples/c/pushcalc/calc.y > > (2) Surprisingly, my local bison reports an error coming from the skeleton in > /usr/local/share, not the local one:
That's not surprising, the binary hardcodes the (future) location of its files. To use a non-installed bison, use tests/bison, not src/bison. README-hacking should have told you, I'm sorry it didn't :( I'll fix that. > (3) I decided to add --skeleton to force it using the latest skeleton in our > project, which I verified contains the missing error level ‘detailed’ (# > %define parse.error "(custom|detailed|simple|verbose)"): > $ ./src/bison --skeleton=data/skeletons/bison.m4 examples/c/pushcalc/calc.y > But the same error showed up again. Because it used all the other files (in particular c.m4) from install bison. And please note that bison.m4 is not a skeleton in itself, it's used by the skeletons. Have a look at tests/bison to see how one tells a bison to use a different location for *all* its files. Cheers!
