l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2003 Jul 04 08:37

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Reg lex and flex compatibilty
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Reg lex and flex compatibilty

Hi ,
Right now am porting an application which has few lex and yacc files from
solaris to linux.

The application has no problem in solaris whereas when i compile the same
in linux, it is getting stuck at the compilation of the file generated by
lexer i.e the lex.yy.c file

The lex output (lex.yy.c) are also quite different in solaris and linux.

The compilation errors are
1. In function `unsigned char input()':
`yysptr' undeclared (first use this  function). it goes on to many other
undeclared errors.

For this there were no variables declared in the file.l (lex input file).
Solaris had delared on its own, whereas in case of linux error was coming
in yy.c.
So i have manually declared in case of linux.
I do not know the reason why this incompatibility is there.

2. After the manual declaration of variables now it is giving
"previous declaration of int yywrap() with C++ linkage
conflicts with new declaration with C Linkage"
and many like this.

In makefile the options given are
@lex -t -l $< | sed s/"^yylex"/"int yylex"/g | sed s/yy/${*F}/g > $*.yy.c

and gcc of the .yy.c file.

I have tried including the -lfl option while compiling and -l option while
But they were of no help.

                      Jeff Newmiller                                                                         
                      <jdnewmil@dcn.davis        To:       vox-tech@lists.lugod.org                          
                      .ca.us>                    cc:                                                         
                      Sent by:                   Subject:  Re: [vox-tech] Reg lex and flex compatibilty      
                      07/04/2003 11:23 AM                                                                    
                      Please respond to                                                                      

On Fri, 4 Jul 2003, Muthumeena M wrote:

> Hi,
> I have an input file for lex i.e a  file.l.
> In solaris, the lexer gives an output as file.yy.c  which is getting
> compiled without any compiler errors.
> Whereas when  i try the same in linux redhat 8.0,
> the lex command invokes flex 2.5  which also gives a file.yy.c as output.
> The problem comes in compiling this file.yy.c in linux.
> It gives many undeclared variable error.
> This could be bec of the incompatibilty bet lex and flex. Probably some
> make file option needs to be modified or added.
> Could anyone help me regarding this please?

Perhaps you don't have all of the headers and associated .c files that
contain the functions the author is calling?  It is also possible that
some flex translation options need to be set, but you would need to
provide a better description of the problem.. I haven't used lex in quite

Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...2k

vox-tech mailing list

vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!