.blank = [" \t\f\b\v\r\n"] .number :: Int = ['0'..'9']+ %left.6 = '+', '-' %left.7 = '*', '/' expr = Op.. ::= expr op expr | Number.. ::= number | .. ::= '(' expr ')' ; %expand op ::= '+' | '-' | '*' | '/' ;
%expand
directive can be used to avoid conflicts in LR
parsers that can arise when refactoring the grammar.