--- /dev/null
+/**************************************************************************/
+/* */
+/* Menhir */
+/* */
+/* François Pottier, INRIA Rocquencourt */
+/* Yann Régis-Gianas, PPS, Université Paris Diderot */
+/* */
+/* Copyright 2005-2008 Institut National de Recherche en Informatique */
+/* et en Automatique. All rights reserved. This file is distributed */
+/* under the terms of the Q Public License version 1.0, with the change */
+/* described in file LICENSE. */
+/* */
+/**************************************************************************/
+
+(* This partial grammar specification defines the syntax of expressions
+ in algebraic notation. *)
+
+%left PLUS MINUS /* lowest precedence */
+%left TIMES DIV /* medium precedence */
+%nonassoc UMINUS /* highest precedence */
+
+%%
+
+%public expr:
+| i = INT
+ { i }
+| LPAREN e = expr RPAREN
+ { e }
+| e1 = expr PLUS e2 = expr
+ { e1 + e2 }
+| e1 = expr MINUS e2 = expr
+ { e1 - e2 }
+| e1 = expr TIMES e2 = expr
+ { e1 * e2 }
+| e1 = expr DIV e2 = expr
+ { e1 / e2 }
+| MINUS e = expr %prec UMINUS
+ { - e }
+