Solved

-ly Yacc library for Linux

Posted on 1998-02-13
5
1,474 Views
Last Modified: 2013-12-26
I've installed a new version of Suse Linux, but I cant find the -ly library which is nessesary for the gcc compiler to compile the yacc-generated yyparse and my parser.
My Question:
-Is the library on the distribution, but on another directory?
-Is the -ly library in the Internet?
0
Comment
Question by:bodirsky
  • 3
  • 2
5 Comments
 
LVL 51

Accepted Solution

by:
ahoffmann earned 100 total points
ID: 1295995
Linux uses bison instead of yacc, usually.
Bison doesn't need a library ;-)

0
 

Author Comment

by:bodirsky
ID: 1295996
But why gcc doesn't like my parser-routines any more?? In spite of upward-compability there are a lot of warnings and errors.
what is the equivalent for
lex lexfile
yacc yaccfile
gcc parser.c -ly
?
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 1295997
What do you mean  with:
  "gcc doesn't like my parser-routine"
Do you get compiler or linker errors?

lex lexfile       --> flex lexfile
yacc yaccfile     --> bison yaccfile
gcc parser.c -ly  --> gcc parser.c

0
 

Author Comment

by:bodirsky
ID: 1295998
In file included from bisoncomp.c:53:
lex.yy.c:267: conflicting types for `yytext'
ottersyntax.y:1: previous declaration of `yytext'
ottersyntax.l: In function `yylex':
In file included from bisoncomp.c:53:
ottersyntax.l:16: stray '\' in program
ottersyntax.l:16: parse error before `|'
ottersyntax.l:16: parse error before `['
ottersyntax.l:17: `i' undeclared (first use this function)
ottersyntax.l:17: (Each undeclared identifier is reported only once
ottersyntax.l:17: for each function it appears in.)
ottersyntax.l:19: break statement not within loop or switch
ottersyntax.l:20: case label not within a switch statement
ottersyntax.l: At top level:
ottersyntax.l:21: parse error before string constant
ottersyntax.l:21: stray '\' in program
lex.yy.c:752: warning: initialization makes pointer from integer without a cast
lex.yy.c:752: initializer element is not constant
lex.yy.c:752: warning: data definition has no type or storage class
lex.yy.c:755: parse error before `if'
lex.yy.c:782: conflicting types for `yy_c_buf_p'
lex.yy.c:219: previous declaration of

And so on without an end.

0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 1295999
> lex.yy.c:267: conflicting types for `yytext'
> ottersyntax.y:1: previous declaration of `yytext'

I assume you have

  #include "lex.yy.c"

in ottersyntax.y , right?
If you combine flex and bison files, you need to have a common header file which defines yytext, for example.
I.g. this will be extracted from your tokens and defines in the .y file with
  bison -d
please refer to  man bison.

I'm not shure about
 > ottersyntax.l:16: stray '\' in program
sounds, that there is a \ which should be quoted.
PLease remove these 2, then compile again.

Flex/bison are much more flexible than lex/yacc. Most names, defines etc. are configurable (of cause most have usefull defaults, but unfortunately these defaults may be the source of you problem).
IMHO, you need to read man-pages (flex and bison). It's hard staff, but once you get used to it, you'll never use lex/yacc again :-)).

Feel free for more questions.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
repeatSeparator  java  challenge 13 58
wait notify demo infinite loop 3 124
changeXy challenge 13 89
Detect file exist or not 3 180
Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question