home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / online / source / c / compilers / Bison.sit.hqx / Bison / bison.1 next >
Text File  |  1992-02-29  |  5KB  |  280 lines

  1. .TH BISON 1 local
  2. .SH NAME
  3. bison \- GNU Project parser generator (yacc replacement)
  4. .SH SYNOPSIS
  5. .B bison
  6. [
  7. .BI \-b  " file-prefix"
  8. ] [
  9. .BI \-\-file-prefix= file-prefix
  10. ] [
  11. .B \-d
  12. ] [
  13. .B \-\-defines
  14. ] [
  15. .B \-l
  16. ] [
  17. .B \-\-no-lines
  18. ] [
  19. .BI \-o " outfile"
  20. ] [
  21. .BI \-\-output-file= outfile
  22. ] [
  23. .BI \-p " prefix"
  24. ] [
  25. .BI \-\-name-prefix= prefix
  26. ] [
  27. .B \-t
  28. ] [
  29. .B \-\-debug
  30. ] [
  31. .B \-v
  32. ] [
  33. .B \-\-verbose
  34. ] [
  35. .B \-V
  36. ] [
  37. .B \-\-version
  38. ] [
  39. .B \-y
  40. ] [
  41. .B \-\-yacc
  42. ] [
  43. .B \-\-fixed-output-files
  44. ]
  45. file
  46. .SH DESCRIPTION
  47. .I Bison
  48. is a parser generator in the style of
  49. .IR yacc (1).
  50. It should be upwardly compatible with input files designed
  51. for
  52. .IR yacc .
  53. .PP
  54. Input files should follow the
  55. .I yacc
  56. convention of ending in
  57. .BR .y .
  58. Unlike
  59. .IR yacc ,
  60. the generated files do not have fixed names, but instead use the prefix
  61. of the input file.
  62. For instance, a grammar description file named
  63. .B parse.y
  64. would produce the generated parser in a file named
  65. .BR parse.tab.c ,
  66. instead of
  67. .IR yacc 's
  68. .BR y.tab.c .
  69. .PP
  70. This description of the options that can be given to
  71. .I bison
  72. is adapted from the node
  73. .B Invocation
  74. in the
  75. .B bison.texinfo
  76. manual, which should be taken as authoritative.
  77. .PP
  78. .I Bison
  79. supports both traditional single-letter options and mnemonic long
  80. option names.  Long option names are indicated with
  81. .B \-\-
  82. instead of
  83. .BR \- .
  84. Abbreviations for option names are allowed as long as they
  85. are unique.  When a long option takes an argument, like
  86. .BR \-\-file-prefix ,
  87. connect the option name and the argument with
  88. .BR = .
  89. .SS OPTIONS
  90. .TP
  91. .BI \-b " file-prefix"
  92. .br
  93. .ns
  94. .TP
  95. .BI \-\-file-prefix= file-prefix
  96. Specify a prefix to use for all
  97. .I bison
  98. output file names.  The names are
  99. chosen as if the input file were named
  100. \fIfile-prefix\fB.c\fR.
  101. .TP
  102. .B \-d
  103. .br
  104. .ns
  105. .TP
  106. .B \-\-defines
  107. Write an extra output file containing macro definitions for the token
  108. type names defined in the grammar and the semantic value type
  109. .BR YYSTYPE ,
  110. as well as a few
  111. .B extern
  112. variable declarations.
  113. .sp
  114. If the parser output file is named
  115. \fIname\fB.c\fR
  116. then this file
  117. is named
  118. \fIname\fB.h\fR.
  119. .sp
  120. This output file is essential if you wish to put the definition of
  121. .B yylex
  122. in a separate source file, because
  123. .B yylex
  124. needs to be able to refer to token type codes and the variable
  125. .BR yylval .
  126. .TP
  127. .B \-l
  128. .br
  129. .ns
  130. .TP
  131. .B \-\-no-lines
  132. Don't put any
  133. .B #line
  134. preprocessor commands in the parser file.
  135. Ordinarily
  136. .I bison
  137. puts them in the parser file so that the C compiler
  138. and debuggers will associate errors with your source file, the
  139. grammar file.  This option causes them to associate errors with the
  140. parser file, treating it an independent source file in its own right.
  141. .TP
  142. .BI \-o " outfile"
  143. .br
  144. .ns
  145. .TP
  146. .BI \-\-output-file= outfile
  147. Specify the name
  148. .I outfile
  149. for the parser file.
  150. .sp
  151. The other output files' names are constructed from
  152. .I outfile
  153. as described under the
  154. .B \-v
  155. and
  156. .B \-d
  157. switches.
  158. .TP
  159. .BI \-p " prefix"
  160. .br
  161. .ns
  162. .TP
  163. .BI \-\-name-prefix= prefix
  164. Rename the external symbols used in the parser so that they start with
  165. .I prefix
  166. instead of
  167. .BR yy .
  168. The precise list of symbols renamed is
  169. .BR yyparse ,
  170. .BR yylex ,
  171. .BR yyerror ,
  172. .BR yylval ,
  173. .BR yychar , 
  174. and
  175. .BR yydebug .
  176. .sp
  177. For example, if you use
  178. .BR "\-p c" ,
  179. the names become
  180. .BR cparse ,
  181. .BR clex ,
  182. and so on.
  183. .TP
  184. .B \-t
  185. .br
  186. .ns
  187. .TP
  188. .B \-\-debug
  189. Output a definition of the macro
  190. .B YYDEBUG 
  191. into the parser file,
  192. so that the debugging facilities are compiled.
  193. .TP
  194. .B \-v
  195. .br
  196. .ns
  197. .TP
  198. .B \-\-verbose
  199. Write an extra output file containing verbose descriptions of the
  200. parser states and what is done for each type of look-ahead token in
  201. that state.
  202. .sp
  203. This file also describes all the conflicts, both those resolved by
  204. operator precedence and the unresolved ones.
  205. .sp
  206. The file's name is made by removing
  207. .B .tab.c
  208. or
  209. .B .c
  210. from the parser output file name, and adding
  211. .B .output
  212. instead.
  213. .sp
  214. Therefore, if the input file is
  215. .BR foo.y ,
  216. then the parser file is called
  217. .B foo.tab.c
  218. by default.  As a consequence, the verbose
  219. output file is called
  220. .BR foo.output .
  221. .TP
  222. .B \-V
  223. .br
  224. .ns
  225. .TP
  226. .B \-\-version
  227. Print the version number of
  228. .IR bison .
  229. .TP
  230. .B \-y
  231. .br
  232. .ns
  233. .TP
  234. .B \-\-yacc
  235. .br
  236. .ns
  237. .TP
  238. .B \-\-fixed-output-files
  239. Equivalent to
  240. .BR "\-o y.tab.c" ;
  241. the parser output file is called
  242. .BR y.tab.c ,
  243. and the other outputs are called
  244. .B y.output
  245. and
  246. .BR y.tab.h .
  247. The purpose of this switch is to imitate
  248. .IR yacc 's
  249. output file name conventions.
  250. Thus, the following shell script can substitute for
  251. .IR yacc :
  252. .sp
  253. .RS
  254. .ft B
  255. bison \-y $*
  256. .ft R
  257. .sp
  258. .RE
  259. .PP
  260. The long-named options can be introduced with `+' as well as `\-\-',
  261. for compatibility with previous releases.  Eventually support for `+'
  262. will be removed, because it is incompatible with the POSIX.2 standard.
  263. .SH FILES
  264. /usr/local/lib/bison.simple    simple parser
  265. .br
  266. /usr/local/lib/bison.hairy    complicated parser
  267. .SH SEE ALSO
  268. .IR yacc (1)
  269. .br
  270. The
  271. .IR "Bison Reference Manual" ,
  272. included as the file
  273. .B bison.texinfo
  274. in the
  275. .I bison
  276. source distribution.
  277. .SH DIAGNOSTICS
  278. ``Self explanatory.''
  279. ... ha!
  280.