From: Bernhard H. <ber...@ot...> - 2001-05-19 13:08:53
|
> >Accept as many hex digits as we can, truncate it (cast it to a char) and >throw a warning if the value exceeds the sizeof(char). Hmm, in my opinion this is too pedantic. I need at the moment "\xdf" "C" (degree Celsius), and this will throw a warning. And I see no chance to avoid it (neiter IAR nor gcc -pedantic complain about it). But I don't want to be pedantic, I'm glad and thankfull for any fix. Trying around I found the next (minor) problem: char *ok1 = "a" "b"; char *ok2 = "a" "b"; char *bug = "a"\ "b"; >parse error: token -> '"' ; column 13 Bernhard |
From: Johan K. <joh...@id...> - 2001-05-19 14:15:23
|
> I need at the moment "\xdf" "C" (degree Celsius), and this will throw a warning. Even more it didn't use the "\xfc" either. That is fixed now. The problem is the parser, it concatenates both strings. > And I see no chance to avoid it (neiter IAR nor gcc -pedantic complain about it). You could do "\xdf\C" for this one, but that won't work for e.g. "\xfd\a" ofcourse. > char *bug = "a"\ > "b"; > >parse error: token -> '"' ; column 13 That is the parser again. In fact the parser should indeed do the escape sequence translation. Johan |
From: John T. V. <jt...@e-...> - 2001-05-19 15:59:28
|
*********** REPLY SEPARATOR *********** On 5/19/01 at 16:14 Johan Knol wrote: >> I need at the moment "\xdf" "C" (degree Celsius), and this will throw a >warning. > >Even more it didn't use the "\xfc" either. That is fixed now. The problem >is >the parser, it concatenates both strings. > The string "\xdf" "C" should be legal and should store 0xdf,0x43,0x00. > >That is the parser again. In fact the parser should indeed do the escape >sequence translation. > I agree and I can help if you need it. John c |
From: Johan K. <joh...@id...> - 2001-05-19 22:35:07
|
> >That is the parser again. In fact the parser should indeed do the escape > >sequence translation. > > > > I agree and I can help if you need it. Please do take over from here. I looked at the lex and yacc and bison and all those hairy monsters I am not familiar with. There are enough bug to solve where I can spend my time for economical. Johan |
From: John T. V. <jt...@e-...> - 2001-05-20 05:10:12
|
I committed the fix for escape sequence evaluation. I will look at the= second problem Bernhard found later today. I changed the lexer to pass the separate substrings to the evaluator= because the lexer didn't have any obvious method of passing the length of= the resultant string to the evaluator - So any string which contained \0= or \x0 would have been truncated incorrectly. I also fixed up the single character constant evaluator, fixed up some= implicit data type conversions and fixed some references to BuildCmdLine= and my_system. There are two new files in support/Util for these= functions. Let me know if anything else is broken. John *********** REPLY SEPARATOR *********** On 5/20/01 at 00:35 Johan Knol wrote: >> >That is the parser again. In fact the parser should indeed do the >escape >> >sequence translation. >> > >> >> I agree and I can help if you need it. > >Please do take over from here. I looked at the lex and yacc and bison and >all those hairy monsters I am not familiar with. There are enough bug to >solve where I can spend my time for economical. > >Johan > > > >_______________________________________________ >sdcc-devel mailing list >sdc...@li... >http://lists.sourceforge.net/lists/listinfo/sdcc-devel |