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

Reply via email to