help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Very simple program with error


From: Rodrigo Bagni
Subject: Very simple program with error
Date: Sat, 5 Apr 2008 12:20:54 -0300

Hi,
I'm trying to write a parser to a simplified version of Pascal.

In my parser.y file there is only one rule:

%{

/* declarations */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "teste.h"

%}

/* my tokens */
%token DOT
%token END
%token END_OF_FILE
%token IDENTIFIER
%token PROGRAM
%token SEMICOLON

%%

programa
        : PROGRAM IDENTIFIER SEMICOLON END DOT END_OF_FILE {return 0;}
        ;

%%


Here is my Pascal program:

program Example;

end   { notice that the dot after the "end" is missing, I want to
cause an error }


At the end the error is caught but the last identifier in yytext,
which I get in the flex file is not what I want.
In my flex file I have:
[a-z][a-z0-9]*          {atom=yytext; return(IDENTIFIER);}

When I print the "atom" variable at the end of the parser, its content
is "Example; end"
but I want it to be only "Example" because it is the last identifier I got.

Is it something wrong with my rule? Can someone help, please?

Thanks
Rodrigo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]