⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usage.html

📁 編譯器的accent語法分析器
💻 HTML
字号:
<HTML><HEAD><TITLE>Using the ACCENT Compiler Compiler</TITLE></HEAD><BODY bgcolor="white"><TABLE cellspacing=20>   <TR>      <TD valign="top">	 <img src="logo.gif">      </TD>      <TD valign="bottom" align="left">	 <a href="index.html">The Accent Compiler Compiler</a>	 <h1>Using the ACCENT Compiler Compiler</h1>      </TD>   </TR>   <TR>      <TD align="right" valign="top">	 <!-- MENU -->	 <font face="helvetica">	 <a href="index.html">Accent</a><br>	 <a href="overview.html">Overview</a><br>	 <a href="tutorial.html">Tutorial</a><br>	 <a href="language.html">Language</a><br>	 <a href="installation.html">Installation</a><br>	 Usage<br>	 <a href="lex.html">Lex</a><br>	 <a href="algorithms.html">Algorithms</a><br>	 <a href="distribution.html">Distribution</a><br>	 </font>      </TD>      <TD valign="top">      <!--- begin main content --><h3>How To Generate a Language Processor</h3><table><tr><td bgcolor="#e9e9d2"><pre>  spec.acc     spec.lex  auxil.c  art.o     |            |         |        |   |            |         |        |   V            V         |        |    +------+     +---+      |        |   |ACCENT|     |LEX|      |        |  +------+     +---+      |        |   |            |         |        |   |            |         |        |   V            V         |        |  yygrammar.h  lex.yy.c   |        |  yygrammar.c   |         |        |   |            |         |        |   +------------+--+------+--------+                   |                   V                  +--+                  |CC|                  +--+                   |                   |                   V                  calculator</pre></td></tr></table><h3>Accent</h3><i>Accent</i> is invoked with the command<pre>   accent file</pre>This reads the grammar in <tt>file</tt>and generates the output files<tt>yygrammar.h</tt> and<tt>yygrammar.c</tt>.<p><tt>yygrammar.h</tt> contains definitions of token codesand a definition of the type <tt>YYSTYPE</tt> (which is onlyeffective if there is no previous definition specified by the user).<p><tt>yygrammar.c</tt> contains the grammar encoding and a generatedtree walker that performs the semantic actions specified by the user.<p>Example:<pre>   accent spec.acc</pre>The file<a href="spec.acc">spec.acc</a>contains the <i>Accent</i> specification of a simple desk calculator.<h3>Lex</h3>The scanner should be generated with <i>Lex</i>.<i>Lex</i> is invoked by the command<pre>   lex file</pre>which reads the specification in <tt>file</tt>,a table of regular expressions and corresponding actions,and generates a file <tt>yy.lex.c</tt>.This file contains the function <tt>yylex()</tt>,the lexical analyzer which is invoked by the parser.<p>Example:<pre>   lex spec.lex</pre>The file<a href="spec.lex">spec.lex</a>contains the <i>Lex</i> specificationfor the desk calculator.<h3>Auxiliary Functions</h3>The user has to prepare some auxiliary functions:<p>There should be a <tt>main()</tt> function that invokesthe parser function <tt>yyparse()</tt>.<p><tt>yyerror(char *msg)</tt>is invoked by the parser when an error is detected. It should printthe text <tt>msg</tt> and perhaps the current line number.<p>The scanner needs a function <tt>yywrap()</tt>(it can be used to switch to a further input file).In its simplest form it just returns <tt>1</tt>(indicating no further input file).<p>In our example, the file <a href="auxil.c"><tt>auxil.c</tt></a>defines these functions.<h3>Accent Runtime</h3>To create a functioning parser one also has to supplythe <i>Accent Runtime</i>.This is contained in the file <tt>art.o</tt> in thedirectory <tt>art</tt> of the distribution.<h3>Compiling and Linking</h3>The <i>C</i> compiler is usedto compile the sources and create the object program.<p>Example:<pre>cc -o calculator yygrammar.c lex.yy.c auxil.c $ART</pre>(where <tt>$ART</tt> refers to the Accent runtime).<p>The file<a href="build"><tt>build</tt></a>contains a shell script to produce and run the desk calculator.<p>Invoking the optimizer during compilation increases parser speedby a factor of two.For the GNU C compiler you should specify <tt>-O3</tt> as an optionwhen compiling the Accent runtime and the generated program.      <!--- end main content -->      <br>      <br>      <font face="helvetica" size="1">      <a href="http://accent.compilertools.net">accent.compilertools.net</a>      </font>      </TD>   </TR></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -