DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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