help-bison
[Top][All Lists]
Advanced

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

Re: Getting a Counter


From: Hans Åberg
Subject: Re: Getting a Counter
Date: Fri, 1 Oct 2021 09:52:57 +0200


> On 1 Oct 2021, at 07:16, Guenther Sohler <guenther.sohler@gmail.com> wrote:
> 
> Hi,
> In my parser i don't want flex to return comments in my code as flex tokens.
> Instead i want to store them in a different list together with their
> position.
> 
> Lateron i am using their position to included them in the code again.
> For that reason i am interested to know the Token position in the parsed
> stream.
> Ideally i need the number in the exact same scope as its displayed during
> ambiguity resolution.
> After some googling i could not find such a feature.
> Does anybody know such a variable next to yylval or yytext ?

As the lexer must buffer the input, it is necessary to compute the stream 
position in the lexer. As Akim pointed out, in Flex, this can be done with a 
user action (C++ here):

std::istream::pos_type current_position = 0;

%{
#define YY_USER_ACTION  yylloc.columns(length_utf8(yytext)); current_position 
+= yyleng;
%}

This example also shows how to compute the UTF-8 column number for the Bison 
parser, if one wants that.

If files are opened recursively, one needs a stack for the current position as 
well.





reply via email to

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