Racket 1转移/减少球拍冲突
我正在编写一个球拍代码,我遇到了一个问题,有人能告诉我如何解决它吗?我总是得到:1转变/减少冲突 注:(它是代码的一部分) 提前谢谢Racket 1转移/减少球拍冲突,racket,shift-reduce-conflict,Racket,Shift Reduce Conflict,我正在编写一个球拍代码,我遇到了一个问题,有人能告诉我如何解决它吗?我总是得到:1转变/减少冲突 注:(它是代码的一部分) 提前谢谢 (statement ; a statement is one of these many things ;;; TODO: Add Paper, Pen, Line, Set and Repeat [(PAPER expr) (paper-expr $2 (numeric-expr 100) (numeric-expr 1
(statement
; a statement is one of these many things
;;; TODO: Add Paper, Pen, Line, Set and Repeat
[(PAPER expr) (paper-expr $2 (numeric-expr 100) (numeric-expr 100))]
[(PEN expr) (pen-expr $2)]
[(REPEAT IDENTIFIER expr expr maybe-newlines block) (repeat-expr $2 $3 $4 $6)]
; print, simply prints to the console
[(PRINT expr ) (print-expr $2)]
[(SET l-value expr) (assignment-expr $2 $3)]
[(LINE expr expr expr expr) (line-expr $2 $3 $4 $5)]
[(VALUE expr) (value-expr $2)]
......
..........
........
; legal l-values in the language
(l-value
;;; TODO: Add variables (they are l-values)
[(IDENTIFIER) (list $1)]
[(IDENTIFIER parameters) (cons $1 $2)]
[(LEFTBRACKET expr expr RIGHTBRACKET) (get-paper-loc $2 $3)])
.........
......
.......
(rvalues
[(NUMERICVALUE) (numeric-expr $1)]
;;; TODO: the second place you need to add variables, because they can also be r-values
[(IDENTIFIER) (list $1)]
[(IDENTIFIER parameters) (cons $1 $2)]
[(LEFTBRACKET expr expr RIGHTBRACKET) (get-paper-loc $2 $3)]
[(LESSTHAN TIME expr GREATERTHAN) (time-expr $3)]