On May 31, 10:29 pm, Mohitz <coolmoh...@[EMAIL PROTECTED]
> wrote:
> Hi Guys,
>
> I am facing a peculiar problem with my yacc script. Following is the
> snippet of the yacc script that i am using.
> I am using lex as the lexical analyzer.
>
> Sample Input :
>
> create template {
> with attributes :
> attr1 ;
> attr2 ;
> attr3 ;}
>
> tpl_name
>
> Output that i get should be ideally
>
> Attribute name is attr1
> Attribute name is attr2
> Attribute name is attr3
>
> But what i get is
>
> Attribute name is attr1 ;
> Attribute name is attr2 ;
> Attribute name is attr3 ;
>
> Look at the semicolon appearing at the end. Does someone know why this
> happens? Would be glad to furnish more information if needed.
Can I see your lex source?
By default, lex copies unrecognised characters to output. This doesn't
seem to be the problem in your case (because ';' is a token), but it's
hard to be certain without seeing the lex source. It may help
debugging if you add a catchall rule at the end of your lexer:
.. printf("bad char: '%c'\n", yytext[0]);
>
> Thanks in advance
> Mohit
>
> The Yacc Script Snippet ...


|