Title: | DIGITAL UNIX (FORMERLY KNOWN AS DEC OSF/1) |
Notice: | Welcome to the Digital UNIX Conference |
Moderator: | SMURF::DENHAM |
Created: | Thu Mar 16 1995 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 10068 |
Total number of notes: | 35879 |
Hi Our customer have some problems when compile. This program work out well under solias,ultrix but not DU4.0 When compiles following message displayed. >make yacc -d dilp.y cc -O -I../hfiles -c y.tab.c rm -f y.tab.c mv y.tab.o dilp.o lex token.l lex: (Warning at line 169)Non-terminated string lex: (Warning) bad state 308 175 cc -O -I../hfiles -c lex.yy.c cc: Warning: lex.yy.c, line 271: In this statement, the referenced type of the pointer value "&yytext[2]" is "unsigned char",which is not compatible with "signed char". for(num = 0, ptr = &yytext[2];*ptr != '\'';ptr++) /*imsi*/ -------------------------------------^ cc: Warning: lex.yy.c, line 278: In this statement,the referenced type of the pointer value "&yytext[2]" is "unsigned char",which is not compatible with "signed char". for(num = 0, ptr = &yytext[2];*ptr != '\'';ptr++) -------------------------------------^ rm -f lex.yy.c mv lex.yy.o token.o cc -c -O -I../hfiles -DVer=\"REL1.1\" -DDate=\"1996/09/03\" main.c cc -O -I../hfiles -c symbol.c cc -O -I../hfiles -c parse.c cc -O -I../hfiles -c run.c cc -c -g ../hfiles/head.c cc dilp.o token.o main.o symbol.o parse.o run.o head.o -o dilp cp dilp ../../bin <Makefile> #YFLAGS = -d -v YFLAGS = -d CFLAGS = -O -I$(HFDIR) INS = : BIN = LIST = lpr -Pqp3 HFILES = $(HFDIR)/hdfile.h symbol.h SRC = dilp.y token.l main.c symbol.c parse.c run.c $(HFDIR)/head.c OBJS = dilp.o token.o main.o symbol.o parse.o run.o head.o EXOUT = dilp $(EXOUT):$(OBJS) $(CC) $(OBJS) -o dilp $(INS) $(EXOUT) $(BIN) $(OBJS) : $(HFILES) main.o : main.c $(HFILES) $(CC) -c ${CFLAGS} -DVer=\"$(Ver)\" -DDate=\"$(Date)\" main.c head.o : $(HFDIR)/head.c $(CC) -c -g $(HFDIR)/head.c Sinece the program have prolbem is too long, I post 169 line. <Str>"\\\"" { cbuf[clen++]='"'; } <Str,Chc>"\\"n { cbuf[clen++]='\n'; } <----- 169 line <Str,Chc>"\\"t { cbuf[clen++]='\t'; } <Str,Chc>"\\"b { cbuf[clen++]='\b'; } <Str,Chc>"\\"r { cbuf[clen++]='\r'; } <Str,Chc>"\\"f { cbuf[clen++]='\f'; } <Str,Chc>"\\\\" { cbuf[clen++]='\\'; } <Str>. { CADD; } any information? thanks
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
8645.1 | This is a bug in LEX - CLD needed. | SMURF::GAF | Jerry Feldman, Unix Dev. Environment, DTN:381-2970 | Thu Jan 30 1997 12:57 | 11 |
The issue here is on line 168. <Str>"\\\"" { cbuf[clen++]='"'; } <Str,Chc>"\\"n { cbuf[clen++]='\n'; } <----- 169 line <Str,Chc>"\\"t { cbuf[clen++]='\t'; } The Digital Unix version of Lex is the AT&T lex which has been updated to comply with the POSIX specification. What is happening here is that lex wants the '"' wo be escaped as:'\"'. In my opinion this is a bug in LEX, and a QAR and/or CLD should be issued. A CLD is probably more appropriate in this case. | |||||
8645.2 | Try flex. | SMURF::GAF | Jerry Feldman, Unix Dev. Environment, DTN:381-2970 | Thu Jan 30 1997 13:00 | 3 |
As a workaround, we also support flex. I am not sure if flex would be aprpopriate with your grammar or not, but it could provide a quick workaround for your customer. | |||||
8645.3 | MY first analysis was a bit off. | SMURF::GAF | Jerry Feldman, Unix Dev. Environment, DTN:381-2970 | Thu Jan 30 1997 14:40 | 6 |
A bit more to add. This is still a bug in LEX, but the bug is on line 169 where the POSIX Extended Regular Expresssion modification caused a regression. MY first glance at this, the '"' threw me off, because the routine that parses actions has the same message as the one which parses regular expressions. Still need to QAR or CLD this to get a fix. | |||||
8645.4 | How to do | DEKVC::YONGJOONCHOI | Thu Jan 30 1997 20:37 | 19 | |
Thanks for your answer The program have problem running under DU3.2C as well. I think this problem JUST against DU4.0*. If that problem is BUG, is there any relevant patch or any solution? As following your reply, To fix that problem need QAR or CLD What is the QAR,CLD? Give me a best way to fix that problem. Our reseller competite against SUN. That problem work out under SUN. If we don,t solve that problem until next tuesday(2.4), Maybe Customer want to SUN. thanks | |||||
8645.5 | You need to file the appropriate request | SMURF::GAF | Jerry Feldman, Unix Dev. Environment, DTN:381-2970 | Fri Jan 31 1997 10:34 | 4 |
The problem was caused a change to LEX in V4.0. The change was that the UNIX 95 standard requires LEX to support Extended Regular Expressions. I have already implemented a fix for this. A CLD or an SPR is required before I am allowed to place the fix into the support pools. |