Avatar billede alkrojen Nybegynder
26. november 2003 - 20:06 Der er 1 kommentar

Shift/reduce error in YACC parser

Hi!

Im trying to make a simple parser to load old tekstfiles in to a database using the YACC parser. The YACC code looks like this: it gives a shift/reduce error because of an ambiguity. What can be the error?

%token <int> INCOME
%token <string> NAME
%token EOF

%start COMP

%%

COMP: DEPTList EOF              {Comp($1)};

DEPT: NAME INCOME DEPTList  {Dept($1,$2,$3) };

DEPTList:                        { [] }
    | DEPT DEPTList            { $1::$2 };

I dont know if this is the right place to put the qustion, but please help me!!!
Avatar billede erikjacobsen Ekspert
26. november 2003 - 20:21 #1
You should be able to make it like this (I haven't adjusted your code):

COMP: DEPTList EOF              { };

DEPT: NAME INCOME              { };

DEPTList:  DEPT                {  }
    | DEPT DEPTList            { };
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester