bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] scanner: reintroduce unput for missing end tokens


From: Théophile Ranquet
Subject: Re: [PATCH] scanner: reintroduce unput for missing end tokens
Date: Fri, 14 Dec 2012 10:26:11 +0100

2012/12/12 Akim Demaille <address@hidden>:
>
> Le 12 déc. 2012 à 11:32, Theophile Ranquet <address@hidden> a écrit :
>
>> * src/scan-gram.l (unexpected_end): Here.
>> * tests/input.at: Adjust for new order of error reports.
>
> Please, point to the commit which was reverted, and explain why what caused 
> the original patch to be revert no longer holds today.  URLs would be useful 
> too.

I am going for the following, does this satisfy you?

commit a860ad081d025db0629120d030fbf7fd8218949f
Author: Theophile Ranquet <address@hidden>
Date:   Thu Nov 15 17:10:35 2012 +0000

    scanner: reintroduce unput for missing end tokens

    Unput was no longer used since a POSIX-compatiblity issue with Flex 2.5.31,
    which has been adressed in newer versions of Flex.  See this discussion:
    <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00029.html>

    This partially reverts commit aa4180418fff518198e1b0f2c43fec6432210dc7.

    * src/scan-gram.l (unexpected_end): Here.
    * tests/input.at: Adjust for new order of error reports.


>
>> index 5e5b1e8..70ad41b 100644
>> --- a/tests/input.at
>> +++ b/tests/input.at
>> @@ -1480,10 +1480,10 @@ AT_CHECK([[$PERL -e "print 'start: \'';" >> empty.y 
>> || exit 77]])
>>
>> AT_BISON_CHECK([empty.y], [1], [],
>> [[empty.y:2.8-9: warning: empty character literal [-Wother]
>> -empty.y:3.8-4.0: warning: empty character literal [-Wother]
>> empty.y:3.8-4.0: error: missing "'" at end of line
>> -empty.y:4.8: warning: empty character literal [-Wother]
>> +empty.y:3.8-4.0: warning: empty character literal [-Wother]
>> empty.y:4.8: error: missing "'" at end of file
>> +empty.y:4.8: warning: empty character literal [-Wother]
>> ]])
>
> I'd like to see -fcaret used here, to see how "cute" the location is.

Sure. This revealed a bug in our carets, when the input is not
terminated by a line feed. The following trivial patch fixes this, so
it will be installed as another commit.

diff --git a/src/location.c b/src/location.c
index d48a0a1..c4e0a76 100644
--- a/src/location.c
+++ b/src/location.c
@@ -197,6 +197,8 @@ location_caret (FILE *out, location loc)

         /* Quote the file, indent by a single column.  */
         fputc (' ', out);
+        if (buf[len - 1] != '\n')
+          buf[len++] = '\n';
         fwrite (buf, 1, len, out);

         /* Print the caret, with the same indent as above.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]