*BSD News Article 79505


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!metro!munnari.OZ.AU!spool.mu.edu!howland.erols.net!news.mathworks.com!fu-berlin.de!irz401!orion.sax.de!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: isode build... - help with lex and yacc!
Date: 29 Sep 1996 13:44:29 GMT
Organization: Private BSD site, Dresden
Lines: 49
Message-ID: <52luft$67m@uriah.heep.sax.de>
References: <01bbacb8$32fd1f70$aee68bcd@maurizio> <52ke8s$6f2@twain.mo.net>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.6
X-Phone: +49-351-2012 669
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F  93 21 E0 7D F9 12 D6 4E

debut@Walden.mo.net (David Buttrick) wrote:

> pepsy-yacc.y: In function `hex2bin':
> pepsy-yacc.y:157: warning: assignment makes pointer from integer without 
> a cast

Certainly a missing declaration for some function (that is now assumed
to return an implicit integer result).  Benign.

> lex.c: At top level:
> In file included from pepsy-yacc.y:1362:
> lex.c:237: conflicting types for `yytext'
> pepsydefs.h:365: previous declaration of `yytext'

Yeah, why don't you simply look in the lines described by the error
message?  I think the conflicts might be something like const / non-
const char * declarations, or signed char vs. unsigned char.

> /usr/include/stdlib.h:89: warning: type mismatch with previous implicit 
> declaration
> pepsy-yacc.y:85: warning: previous implicit declaration of `calloc'

#include <stdlib.h> on top of pepsy-yacc.y, not at the bottom.
Basically, the yacc file has three sections:

/* section 1, to be processed before the parser */
%{

#include <stdlib.h>  /* correct place */

%}

%%

/* section 2, the yacc grammar goes here */

%%

/* section 3, additional stuff to be included into the C file */

#include <stdlib.h>  /* wrong place */


-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)