Copyright (C) 2000-2012 |
GNU Info (bison.info)Rpcalc DeclsDeclarations 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 C declarations section (Note: The C Declarations Section. ) 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 (Note: Data Types of Semantic Values.). 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 (*note 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. automatically generated by info2www version 1.2.2.9 |