Re: Bison 3.7.90 (beta): test 4

Akim Demaille <[email protected]> Thu, 19 Aug 2021 10:13:13 +0200
Newsgroups gmane.comp.parsers.bison.bugs
Message-ID <[email protected]>

> Le 19 août 2021 à 10:07, Dagobert Michelsen <[email protected]> a écrit :
> 
> Hi Akim,
> 
> Am 19.08.2021 um 10:01 schrieb Akim Demaille <[email protected]>:
>> This is good: the input and the output are correct.  So it's the test suite's post processing which is wrong.  I guess Perl does not behave the expected way.  Could you please give me the results (and out.1 and out.2) of:
>> 
>> perl --version
>> perl -p -e 's{([\0\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log >out.1
>> perl -p -e 's{([\000\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log >out.2
>> 
>> where log is the previous log file (from LC_ALL=C tests/bison  tests/testsuite.dir/004/input.y 2>log).
> 
> Sure, I also added the respective output from the system shipped perl:

Thanks.  Neither work as I expect.  It seems that \0 does not work in char classes.  Could you please try this also?

perl -p -e 's{(\0|[\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log >out.3

Currently your output looks like this:

tests/testsuite.dir/004/input.y:1.11: error: invalid null character
    1 | %header "\xf0\x80\x88"
      |           ^

the expected output should also show \x00:

    1 | %header "\xf0\x00\x80\x88"
      |           ^