From 78e51a8c6678b6e3dff3d619aa786669f531f4bc Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 14 Jan 2005 03:45:44 +0000 Subject: checkpoint --- man/man1/yacc.html | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 man/man1/yacc.html (limited to 'man/man1/yacc.html') diff --git a/man/man1/yacc.html b/man/man1/yacc.html new file mode 100644 index 00000000..1a485ce6 --- /dev/null +++ b/man/man1/yacc.html @@ -0,0 +1,170 @@ + +yacc(1) - Plan 9 from User Space + + + + +
+
+
YACC(1)YACC(1) +
+
+

NAME
+ +
+ + yacc – yet another compiler-compiler
+ +
+

SYNOPSIS
+ +
+ + yacc [ option ... ] grammar
+
+
+

DESCRIPTION
+ +
+ + Yacc converts a context-free grammar and translation code into + a set of tables for an LR(1) parser and translator. The grammar + may be ambiguous; specified precedence rules are used to break + ambiguities. +
+ + The output file, y.tab.c, must be compiled by the C compiler to + produce a program yyparse. This program must be loaded with a + lexical analyzer function, yylex(void) (often generated by lex(1)), + with a main(int    argc,    char    *argv[]) program, and with an error + handling routine, + yyerror(char*). +
+ + The options are
+ −o output   Direct output to the specified file instead of y.tab.c.
+ −Dn       Create file y.debug, containing diagnostic messages. To incorporate + them in the parser, compile it with preprocessor symbol yydebug + defined. The amount of diagnostic output from the parser is regulated + by value n. The value 0 reports errors; 1 reports reductions; + higher values (up to 4) include + +
+ + +
+ + more information about state transitions.
+ +
+ +
+ −v        Create file y.output, containing a description of the parsing + tables and of conflicts arising from ambiguities in the grammar.
+ −d        Create file y.tab.h, containing #define statements that associate + yacc-assigned ‘token codes’ with user-declared ‘token names’. + Include it in source files other than y.tab.c to give access to + the token codes.
+ −s stem     Change the prefix y of the file names y.tab.c, y.tab.h, + y.debug, and y.output to stem.
+ −S        Write a parser that uses Stdio instead of the print routines + in libc. +
+ + The specification of yacc itself is essentially the same as the + UNIX version described in the references mentioned below. Besides + the −D option, the main relevant differences are:
+ +
+ + The interface to the C environment is by default through <libc.h> + rather than <stdio.h>; the −S option reverses this.
+ The parser accepts UTF input text (see utf(7)), which has a couple + of effects. First, the return value of yylex() no longer fits + in a short; second, the starting value for non-terminals is now + 0xE000 rather than 257.
+ The generated parser can be recursive: actions can call yyparse, + for example to implement a sort of #include statement in an interpreter.
+ Finally, some undocumented inner workings of the parser have been + changed, which may affect programs that know too much about its + structure.
+ +
+ +
+

FILES
+ +
+ + y.output
+ y.tab.c
+ y.tab.h
+ y.debug
+ y.tmp.*
         temporary file
+ y.acts.*        temporary file
+ /usr/local/plan9/lib/yaccpar
+
+
+ + +
+ + parser prototype
+ +
+ +
+ /usr/local/plan9/lib/yaccpars
+
+
+ + +
+ + parser prototype using stdio
+ +
+ +
+ +
+

SOURCE
+ +
+ + /usr/local/plan9/src/cmd/yacc.c
+
+
+

SEE ALSO
+ +
+ + lex(1)
+ S. C. Johnson and R. Sethi, “Yacc: A parser generator”, Unix Research + System Programmer’s Manual, Tenth Edition, Volume 2
+ B. W. Kernighan and Rob Pike, The UNIX Programming Environment, + Prentice Hall, 1984
+ +
+

BUGS
+ +
+ + The parser may not have full information when it writes to y.debug + so that the names of the tokens returned by yylex may be missing.
+ +
+ +

+
+
+ + +
+
+
+Space Glenda +
+
+ + -- cgit v1.2.3