Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (1) — Plan9 1st Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lex(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.  The amount of diagnostic output from the parser is regulated by value n:

0 Report errors. 

1 Also report reductions. 

2 Also report the name of each token returned by yylex. 

­-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. 

FILES

­y.output

­y.tab.c

­y.tab.h

­y.debug

­y.tmp.∗ temporary file

­y.acts.∗ temporary file

­/sys/lib/yaccpar
parser prototype

­/sys/lib/yaccpars
parser prototype using stdio

SEE ALSO

lex(1)
Yacc: A parser generator, S. C. Johnson and R. Sethi, Unix Research System Programmer’s Manual, Volume 2

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. 

Plan 9  —  January 03, 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026