(bison.info.gz) Rpcalc Decls
Info Catalog
(bison.info.gz) RPN Calc
(bison.info.gz) Rpcalc Rules
Declarations for `rpcalc'
-------------------------
Here are the C and Bison declarations for the reverse polish notation
calculator. As in C, comments are placed between `/*...*/'.
/* Reverse polish notation calculator. */
%{
#define YYSTYPE double
#include <math.h>
%}
%token NUM
%% /* Grammar rules and actions follow. */
The declarations section ( The prologue Prologue.) contains two
preprocessor directives.
The `#define' directive defines the macro `YYSTYPE', thus specifying
the C data type for semantic values of both tokens and groupings (
Data Types of Semantic Values Value Type.). The Bison parser will use
whatever type `YYSTYPE' is defined as; if you don't define it, `int' is
the default. Because we specify `double', each token and each
expression has an associated value, which is a floating point number.
The `#include' directive is used to declare the exponentiation
function `pow'.
The second section, Bison declarations, provides information to Bison
about the token types ( The Bison Declarations Section Bison
Declarations.). Each terminal symbol that is not a single-character
literal must be declared here. (Single-character literals normally
don't need to be declared.) In this example, all the arithmetic
operators are designated by single-character literals, so the only
terminal symbol that needs to be declared is `NUM', the token type for
numeric constants.
Info Catalog
(bison.info.gz) RPN Calc
(bison.info.gz) Rpcalc Rules
automatically generated byinfo2html