************************************************************************** * * * Menhir * * * * François Pottier and Yann Régis-Gianas, INRIA Rocquencourt * * * * Copyright 2005 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 tiny program reads arithmetic expressions from the standard input channel. Each expression is expected to be complete when the current line ends. Its value is then displayed on the standard output channel. In this version, there is a single lexer, but there are two parsers, one for expressions in algebraic (that is, infix) notation, one for expressions in reverse Polish (that is, postfix) notation. One of the two parsers is selected at runtime via a command line switch. This demo illustrates how to build two parsers that share a single set of tokens.