DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(bison.info) Bison Parser

Info Catalog (bison.info) Semantic Actions (bison.info) Concepts (bison.info) Stages
 
 Bison Output: the Parser File
 =============================
 
    When you run Bison, you give it a Bison grammar file as input.  The
 output is a C source file that parses the language described by the
 grammar.  This file is called a "Bison parser".  Keep in mind that the
 Bison utility and the Bison parser are two distinct programs: the Bison
 utility is a program whose output is the Bison parser that becomes part
 of your program.
 
    The job of the Bison parser is to group tokens into groupings
 according to the grammar rules--for example, to build identifiers and
 operators into expressions.  As it does this, it runs the actions for
 the grammar rules it uses.
 
    The tokens come from a function called the "lexical analyzer" that
 you must supply in some fashion (such as by writing it in C).  The
 Bison parser calls the lexical analyzer each time it wants a new token.
 It doesn't know what is "inside" the tokens (though their semantic
 values may reflect this).  Typically the lexical analyzer makes the
 tokens by parsing characters of text, but Bison does not depend on
 this.   The Lexical Analyzer Function `yylex' Lexical.
 
    The Bison parser file is C code which defines a function named
 `yyparse' which implements that grammar.  This function does not make a
 complete C program: you must supply some additional functions.  One is
 the lexical analyzer.  Another is an error-reporting function which the
 parser calls to report an error.  In addition, a complete C program must
 start with a function called `main'; you have to provide this, and
 arrange for it to call `yyparse' or the parser will never run.  
 Parser C-Language Interface Interface.
 
    Aside from the token type names and the symbols in the actions you
 write, all variable and function names used in the Bison parser file
 begin with `yy' or `YY'.  This includes interface functions such as the
 lexical analyzer function `yylex', the error reporting function
 `yyerror' and the parser function `yyparse' itself.  This also includes
 numerous identifiers used for internal purposes.  Therefore, you should
 avoid using C identifiers starting with `yy' or `YY' in the Bison
 grammar file except for the ones defined in this manual.
 
Info Catalog (bison.info) Semantic Actions (bison.info) Concepts (bison.info) Stages
automatically generated byinfo2html