I think the conflict may be here(I may be wrong) : When parser encounter C , it can reduce to y or it can shift i.e it think there is A waiting to be read, hence shift/reduce conflict
On Mon, Jan 16, 2012 at 2:49 PM, Dmitry Pavlov <dpav...@ipa.nw.ru> wrote: > Hello all, > > I am having trouble with yacc parser giving shift/reduce > conflict, while I do not see where the conflict can be. > I have simplified the grammar to the following one: > > > #lang racket > > (require parser-tools/yacc > parser-tools/lex) > > (define-empty-tokens my-tokens (EOF A B C)) > > (define (my-parser source-name) > (parser > (start start) > (end EOF) > (tokens my-tokens) > (error #f) > (grammar > (start ((x) $1)) > (x > ((y A B) (list $1 'ab))) > (y > ((C) 'c) > ((C A) 'ca))))) > > > It reports "1 shift/reduce conflict". > But from my primitive point of view, the parser should > accept only "CAB" and "CAAB" inputs, so there is no chance > for a conflict here. Could please anybody point me on what > is not correct with my understanding? > > > Best regards, > > Dmitry > ____________________ > Racket Users list: > http://lists.racket-lang.org/**users <http://lists.racket-lang.org/users> >
____________________ Racket Users list: http://lists.racket-lang.org/users