*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> yacc (1)              
Title
Content
Arch
Section
 

Contents


yacc(1)								       yacc(1)


NAME    [Toc]    [Back]

     yacc - yet	another	compiler-compiler

SYNOPSIS    [Toc]    [Back]

     yacc [-vVdlt] [-Q[y|n]] [-p sym_prefix] [-b file_prefix]
     [-P parser] file

DESCRIPTION    [Toc]    [Back]

     The yacc command converts a context-free grammar into a set of tables for
     a simple automaton	that executes an LALR(1) parsing algorithm.  The
     grammar may be ambiguous; specified precedence rules are used to break
     ambiguities.  yacc	processes supplementary	code set characters in program
     comments and strings, and single-byte supplementary code set characters
     in	tokens,	according to the locale	specified in the LC_CTYPE environment
     variable [see LANG	on environ(5)].

     The output	file, y.tab.c, must be compiled	by the C compiler to produce a
     program yyparse.  This program must be loaded with	the lexical analyzer
     program, yylex, as	well as	main and yyerror, an error handling routine.
     These routines may	be supplied by the user; the lex(1) command is useful
     for creating lexical analyzers usable by yacc.  A simple main and yyerror
     are available in liby.  The yyerror routine in liby.a has the following
     signature:	 int yyerror(const char	*).  If	a user wishes to have a
     yyerror with a different signature, they must define the symbol
     __my_yyerror at the top of	their .y file.

     -v	       Prepares	the file y.output, which contains a description	of the
	       parsing tables and a report on conflicts	generated by
	       ambiguities in the grammar.

     -b	file_prefix
	       Use file_prefix instead of y as the prefix for all output
	       filenames.

     -p	sym_prefix
	       Use sym_prefix instead of yy as the prefix for all external
	       names produced by yacc.	For X/Open compliance, when the
	       environment variable _XPG is set, then the -p option will work
	       as described in the previous sentence.  If the environment
	       variable	_XPG is	not set, then the -p option will work as
	       described below in the -P option.

     -P	file   Location	of the common parser; the code contained here is
	       emitted verbatim	by yacc	in the generated code. This provides
	       compatibility with the old -p flag in AT&T yacc.

     -d	       Generates the file y.tab.h with the #define statements that
	       associate the yacc-assigned ``token codes'' with	the userdeclared
	``token	names.''  This association allows source files
	       other than y.tab.c to access the	token codes.





									Page 1






yacc(1)								       yacc(1)



     -l	       Specifies that the code produced	in y.tab.c will	not contain
	       any #line constructs.  This option should only be used after
	       the grammar and the associated actions are fully	debugged.

     -Q[y|n]   The -Qy option puts the version stamping	information in
	       y.tab.c.	 This allows you to know what version of yacc built
	       the file.  The -Qn option (the default) writes no version
	       information.

     -t	       Compiles	runtime	debugging code by default.  Runtime debugging
	       code is always generated	in y.tab.c under conditional
	       compilation control.  By	default, this code is not included
	       when y.tab.c is compiled.  Whether or not the -t	option is
	       used, the runtime debugging code	is under the control of
	       YYDEBUG,	a preprocessor symbol.	If YYDEBUG has a non-zero
	       value, then the debugging code is included.  If its value is
	       zero, then the code will	not be included.  The size and
	       execution time of a program produced without the	runtime
	       debugging code will be smaller and slightly faster.

     -V	       Prints on the standard error output the version information for
	       yacc.

FILES    [Toc]    [Back]

     y.output
     y.tab.c
     y.tab.h
	  defines for token names
     yacc.tmp, yacc.debug, yacc.acts
	  temporary files; these names are used	only if	the TMPDIR environment
	  variable is not set.	If TMPDIR is set, then these temporary files
	  are stored in	that directory,	using unique names.
     /usr/lib/yaccpar
	  parser prototype for C programs

SEE ALSO    [Toc]    [Back]

      
      
     lex(1)

DIAGNOSTICS    [Toc]    [Back]

     The number	of reduce-reduce and shift-reduce conflicts is reported	on the
     standard error output; a more detailed report is found in the y.output
     file.  Similarly, if some rules are not reachable from the	start symbol,
     this instance is also reported.

NOTES    [Toc]    [Back]

     Because file names	are fixed, at most one yacc process can	be active in a
     given directory at	a given	time.


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
cc Tru64 C compiler
abicc IRIX ABI C compiler
NCC IRIX 32-bit C++ compiler
tic IRIX terminfo compiler
rpcgen IRIX an RPC protocol compiler
rpcgen_tli IRIX an RPC protocol compiler
c89 Tru64 Standard C Compiler
c++ OpenBSD GNU project C++ Compiler
menuc NetBSD menu compiler
cc NetBSD GNU project C and C++ Compiler (gcc-2.95)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service