Copyright 2001 Free Software Foundation, Inc.

This file is part of the GNU MP Library.

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program.  If not, see https://www.gnu.org/licenses/.




                   DEMONSTRATION CALCULATOR PROGRAM


This is a simple program, meant only to show one way to use GMP with yacc
and lex to make a calculator.  Usage and comments on the implementation can
be found in calc.y.

Within a GMP build tree, the generated Makefile can be used to build the
program,

	make calc

(or on a DOS system, "make calc.exe").

Elsewhere, once GMP has been installed, the program can be compiled with for
instance

	gcc calc.c calclex.c -lgmp -o calc

Or if GNU readline is used then

	gcc calc.c calclex.c calcread.c -lgmp -lreadline -o calc

(again, on a DOS system "-o calc.exe").

Readline support can be enabled or disabled in calc-config.h.  That file is
created by the GMP ./configure based on the --with-readline option.  The
default is --with-readline=detect, which means to use readline if available.
"yes" can be used to force it to be used, or "no" to not use it.

The supplied calc.c was generated by GNU bison, but a standard yacc should
work too.

The supplied calclex.c was generated by GNU flex, but a standard lex should
work too.  The readline support may or may not work with a standard lex (see
comments with input() in calcread.c).  Note also that a standard lex will
require its library "-ll" on the compile command line.  "./configure" sets
this up in the GMP build tree Makefile.



----------------
Local variables:
mode: text
fill-column: 76
End:
