help-flex
[Top][All Lists]
Advanced

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

pure_parser & reentrant lexer


From: Maciej A. Patelczyk
Subject: pure_parser & reentrant lexer
Date: Fri, 6 Aug 2004 22:57:05 +0200
User-agent: Mutt/1.5.4i

Hello

I'm trying to write reentrant lexer and parser. Of course
i have a problem.

Flex - 2.5.31
Bison - 1.875a

scanner.l:
...
#include "parser.tab.h"
...
%option bison-bridge
%option bison-locations
%option reentrant
[also: warn, stack, backup, yylineno]
...


parser.y:
...
#include "lex.yy.c"
...
#define YYPARSE_PARAM scanner
#define YYLEX_PARAM  scanner
...
%defines
%locations
%pure_parser
%union{
       ...              
}
...
int main(void){

        yyscan_t scanner;
                
        yylex_init ( &scanner );
        yyset_extra( (int *)my_state, scanner); 
        if( yyparse( &scanner) )
                printf("yyparse()!=0\n");
        else 
                printf("yyparse()==0\n");
        yylex_destroy(scanner);                                 

        return  0;
}
...



$ flex scanner.l
$ bison parser.y
$ gcc -Wall -o test parser.tab.c
parser.tab.c: In function `yyparse':
parser.tab.c:782: error: syntax error before '->' token
parser.tab.c:787: error: syntax error before '->' token
parser.tab.c:953: error: `yyg' undeclared (first use in this function)
parser.tab.c:953: error: (Each undeclared identifier is reported only
once
parser.tab.c:953: error: for each function it appears in.)
parser.y: At top level:
lex.yy.c:1259: warning: `yyunput' defined but not used
lex.yy.c:1776: warning: `yy_top_state' defined but not used


parser.tab.c:782:
YYSTYPE yylval;

parser.tab.c:787:
YYLTYPE yylloc;


yylex:

lex.yy.c:
#define YY_DECL int yylex \
  (YYSTYPE * yylval_param, YYLTYPE * yylloc_param ,yyscan_t yyscanner)

parser.tab.c:
#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)



So, it doesn't work. Don't know why. Don't know where.

I need help. Maybe some examples (must be flex+bison) or
links ?

Thanks.

-- 
                maf




reply via email to

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