Browse thread
Problem with precedence declaration in .mly file
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | skaller <skaller@u...> |
| Subject: | Re: [Caml-list] Problem with precedence declaration in .mly file |
On Tue, 2007-10-30 at 23:26 -0500, Angela Zhu wrote: > /***** Precedence Rules *****/ > ... > %left PLUS MINUS > %left STAR DIVIDE > %left ATOB > Can any one help me to see why it happens? Why the precedence rules > doesn't work? > Precedences also can be created by sophisticated > organization of the grammar rules. > But I want to avoid this. DO NOT USE THEM. The rules are hard to explain and very badly designed, in other words, they're a hack. Ocaml provides them for compatibility with older yacc like tools. Write your grammar properly instead, in pseudo code: term = factor | term + factor factor = atom | factor * atom atom = INTEGER | ( term ) gives the precedence of * over + and left associativity, without using incomprehensible precedence rules. -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net