Ich baue eine Grammatik in Bison und ich habe einen R/R-Konflikt (wo ich weiß, wo es ist), aber ich weiß nicht, wie es zu beheben ist. Ich würde jede mögliche Hilfe schätzen.Bison reduzieren/reduzieren Konflikt in der Grammatik
Der Teil meines Code, der den Konflikt beinhaltet ist:
orismos2: %empty
|orismos orismos2
|error {yyerrok;yyclearin;};
orismos: orismosmetablitwn
|orismossunartisis
|prwtotuposunartisis;
orismosmetablitwn: tuposdedomenwn listametablitwn SEMICOLON ;
tuposdedomenwn: INT
|BOOL
|STRING;
listametablitwn: ID nid ;
nid: %empty
|pid nid
|error {yyerrok;yyclearin;};
pid: COMMA ID ;
orismossunartisis: kefalidasunartisis tmimaorismwn tmimaentolwn;
prwtotuposunartisis: kefalidasunartisis SEMICOLON;
kefalidasunartisis: typos_synartisis ID OPENBRACKET c CLOSEBRACKET;
typos_synartisis: INT
|BOOL
|VOID;
Ich habe eine Ausgabedatei machen, bei dem ich alle Konflikte sehen.
Der Teil der Datei, die die Konflikte beinhaltet ist:
State 21 conflicts: 1 reduce/reduce
State 22 conflicts: 1 reduce/reduce
Grammar
10 orismos2: %empty
11 | orismos orismos2
12 | error
13 orismos: orismosmetablitwn
14 | orismossunartisis
15 | prwtotuposunartisis
16 orismosmetablitwn: tuposdedomenwn listametablitwn SEMICOLON
17 tuposdedomenwn: INT
18 | BOOL
19 | STRING
20 listametablitwn: ID nid
21 nid: %empty
22 | pid nid
23 | error
24 pid: COMMA ID
25 orismossunartisis: kefalidasunartisis tmimaorismwn tmimaentolwn
26 prwtotuposunartisis: kefalidasunartisis SEMICOLON
27 kefalidasunartisis: typos_synartisis ID OPENBRACKET c CLOSEBRACKET
28 typos_synartisis: INT
29 | BOOL
30 | VOID
State 21
17 tuposdedomenwn: INT .
28 typos_synartisis: INT .
ID reduce using rule 17 (tuposdedomenwn)
ID [reduce using rule 28 (typos_synartisis)]
$default reduce using rule 17 (tuposdedomenwn)
State 22
18 tuposdedomenwn: BOOL .
29 typos_synartisis: BOOL .
ID reduce using rule 18 (tuposdedomenwn)
ID [reduce using rule 29 (typos_synartisis)]
$default reduce using rule 18 (tuposdedomenwn)
ich wirklich alles versucht, aber ich die Konflikte nicht entfernen kann ... Alle möglichen Ideen oder Vorschläge willkommen!
Vielen Dank !!
"Ich habe wirklich alles versucht": Was haben Sie zum Beispiel probiert? :) Der Versuch * alles * würde eine ganze Weile dauern, aber es ist garantiert, dass Sie schließlich das Richtige finden würden, da die Klasse der Grammatiken rekursiv aufzählbar ist. – rici