bison.ParserEngine-class.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6. <title>bison.ParserEngine</title>
  7. <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
  8. </head>
  9. <body bgcolor="white" text="black" link="blue" vlink="#204080"
  10. alink="#204080">
  11. <!-- =========== START OF NAVBAR =========== -->
  12. <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  13. <tr valign="center">
  14. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="bison-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
  15. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
  16. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
  17. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
  18. <th class="navbar" align="right" width="100%">
  19. <table border="0" cellpadding="0" cellspacing="0">
  20. <tr><th class="navbar" align="center">
  21. <p class="nomargin">
  22. PyBison&nbsp;API&nbsp;Reference
  23. </p></th></tr></table>
  24. </th>
  25. </tr>
  26. </table>
  27. <table width="100%" cellpadding="0" cellspacing="0">
  28. <tr valign="top">
  29. <td width="100%">
  30. <font size="-1"><b class="breadcrumbs">
  31. <a href="bison-module.html">Module&nbsp;bison</a> ::
  32. Class&nbsp;ParserEngine
  33. </b></font></br>
  34. </td>
  35. <td><table cellpadding="0" cellspacing="0">
  36. <tr><td align="right"><font size="-2">[<a href="../private/bison.ParserEngine-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
  37. <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="bison.ParserEngine-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
  38. </table></td>
  39. </tr></table>
  40. <!-- =========== START OF CLASS DESCRIPTION =========== -->
  41. <h2 class="class">Class ParserEngine</h2>
  42. <pre class="base-tree">
  43. <a href="__builtin__.object-class.html"><code>object</code></a> --+
  44. |
  45. <b>ParserEngine</b>
  46. </pre><br />
  47. <hr/>
  48. <p>Wraps the interface to the binary bison/lex-generated parser engine
  49. dynamic library.</p>
  50. <p>You shouldn't need to deal with this at all.</p>
  51. Takes care of:
  52. <ul>
  53. <li>
  54. building the library (if the parser rules have changed)
  55. </li>
  56. <li>
  57. loading the library and extracting the parser entry point
  58. </li>
  59. <li>
  60. calling the entry point
  61. </li>
  62. <li>
  63. closing the library
  64. </li>
  65. </ul>
  66. Makes direct calls to the platform-dependent routines in
  67. bisondynlib-[linux|windows].c
  68. <hr/>
  69. <!-- =========== START OF METHOD SUMMARY =========== -->
  70. <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
  71. <tr bgcolor="#70b0f0" class="summary">
  72. <th colspan="2">Method Summary</th></tr>
  73. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  74. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  75. <br />
  76. x.__init__(...) initializes x; see x.__class__.__doc__ for
  77. signature</td></tr>
  78. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  79. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#__del__" class="summary-sig-name"><code>__del__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  80. <br />
  81. Clean up and bail</td></tr>
  82. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  83. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#buildLib" class="summary-sig-name"><code>buildLib</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  84. <br />
  85. Creates the parser engine lib</td></tr>
  86. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  87. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#closeLib" class="summary-sig-name"><code>closeLib</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  88. <br />
  89. Does the necessary cleanups and closes the parser library</td></tr>
  90. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  91. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#openCurrentLib" class="summary-sig-name"><code>openCurrentLib</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  92. <br />
  93. Tests if library exists and is current.</td></tr>
  94. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  95. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#openLib" class="summary-sig-name"><code>openLib</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  96. <br />
  97. Loads the parser engine's dynamic library, and extracts the following
  98. symbols:</td></tr>
  99. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  100. <td><code><span class="summary-sig"><a href="bison.ParserEngine-class.html#runEngine" class="summary-sig-name"><code>runEngine</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  101. <br />
  102. Runs the binary parser engine, as loaded from the lib</td></tr>
  103. <tr bgcolor="#e8f0f8" class="group">
  104. <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
  105. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  106. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  107. <br />
  108. x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
  109. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  110. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  111. <br />
  112. x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
  113. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  114. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
  115. <br />
  116. x.__hash__() &lt;==&gt; hash(x)</td></tr>
  117. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  118. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  119. <br />
  120. helper for pickle</td></tr>
  121. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  122. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  123. <br />
  124. helper for pickle</td></tr>
  125. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  126. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
  127. <br />
  128. x.__repr__() &lt;==&gt; repr(x)</td></tr>
  129. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  130. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
  131. <br />
  132. x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
  133. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  134. <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
  135. <br />
  136. x.__str__() &lt;==&gt; str(x)</td></tr>
  137. <tr bgcolor="#e8f0f8" class="group">
  138. <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from type</th></tr>
  139. <tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  140. <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
  141. <span class=summary-sig-arg>S</span>,
  142. <span class="summary-sig-vararg">...</span>)</span></code>
  143. <br />
  144. T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
  145. </table><br />
  146. <!-- =========== START OF METHOD DETAILS =========== -->
  147. <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
  148. <tr bgcolor="#70b0f0" class="details">
  149. <th colspan="2">Method Details</th></tr>
  150. </table>
  151. <a name="__init__"></a>
  152. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  153. <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
  154. <br /><i>(Constructor)</i>
  155. </h3>
  156. x.__init__(...) initializes x; see x.__class__.__doc__ for
  157. signature
  158. <dl><dt></dt><dd>
  159. <dl><dt><b>Overrides:</b></dt>
  160. <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
  161. </dl>
  162. </dd></dl>
  163. </td></tr></table>
  164. <a name="__del__"></a>
  165. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  166. <h3><span class="sig"><span class="sig-name">__del__</span>(<span class="sig-vararg">...</span>)</span>
  167. <br /><i>(Destructor)</i>
  168. </h3>
  169. Clean up and bail
  170. <dl><dt></dt><dd>
  171. </dd></dl>
  172. </td></tr></table>
  173. <a name="buildLib"></a>
  174. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  175. <h3><span class="sig"><span class="sig-name">buildLib</span>(<span class="sig-vararg">...</span>)</span>
  176. </h3>
  177. <p>Creates the parser engine lib</p>
  178. This consists of:
  179. <ol start="1">
  180. <li>
  181. Ripping the tokens list, precedences, start target, handler
  182. docstrings and lex script from this Parser instance's attribs and
  183. methods
  184. </li>
  185. <li>
  186. Creating bison and lex files
  187. </li>
  188. <li>
  189. Compiling bison/lex files to C
  190. </li>
  191. <li>
  192. Compiling the C files, and link into a dynamic lib
  193. </li>
  194. </ol>
  195. <dl><dt></dt><dd>
  196. </dd></dl>
  197. </td></tr></table>
  198. <a name="closeLib"></a>
  199. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  200. <h3><span class="sig"><span class="sig-name">closeLib</span>(<span class="sig-vararg">...</span>)</span>
  201. </h3>
  202. Does the necessary cleanups and closes the parser library
  203. <dl><dt></dt><dd>
  204. </dd></dl>
  205. </td></tr></table>
  206. <a name="openCurrentLib"></a>
  207. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  208. <h3><span class="sig"><span class="sig-name">openCurrentLib</span>(<span class="sig-vararg">...</span>)</span>
  209. </h3>
  210. <p>Tests if library exists and is current. If not, builds a fresh
  211. one</p>
  212. Opens the library
  213. <dl><dt></dt><dd>
  214. </dd></dl>
  215. </td></tr></table>
  216. <a name="openLib"></a>
  217. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  218. <h3><span class="sig"><span class="sig-name">openLib</span>(<span class="sig-vararg">...</span>)</span>
  219. </h3>
  220. Loads the parser engine's dynamic library, and extracts the
  221. following symbols:
  222. <ul>
  223. <li>
  224. void *do_parse() (runs parser)
  225. </li>
  226. <li>
  227. char *parserHash (contains hash of python parser rules)
  228. </li>
  229. </ul>
  230. <p>Returns lib handle, plus pointer to do_parse() function, as long
  231. ints (which later need to be cast to pointers)</p>
  232. Important note -this is totally linux-specific. If you want windows
  233. support, you'll have to modify these funcs to use glib instead (or
  234. create windows equivalents), in which case I'd greatly appreciate you
  235. sending me a patch.
  236. <dl><dt></dt><dd>
  237. </dd></dl>
  238. </td></tr></table>
  239. <a name="runEngine"></a>
  240. <table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  241. <h3><span class="sig"><span class="sig-name">runEngine</span>(<span class="sig-vararg">...</span>)</span>
  242. </h3>
  243. Runs the binary parser engine, as loaded from the lib
  244. <dl><dt></dt><dd>
  245. </dd></dl>
  246. </td></tr></table>
  247. <br />
  248. <!-- =========== START OF NAVBAR =========== -->
  249. <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  250. <tr valign="center">
  251. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="bison-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
  252. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
  253. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
  254. <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
  255. <th class="navbar" align="right" width="100%">
  256. <table border="0" cellpadding="0" cellspacing="0">
  257. <tr><th class="navbar" align="center">
  258. <p class="nomargin">
  259. PyBison&nbsp;API&nbsp;Reference
  260. </p></th></tr></table>
  261. </th>
  262. </tr>
  263. </table>
  264. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  265. <tr>
  266. <td align="left"><font size="-2">Generated by Epydoc 2.0 on Fri Apr 23 19:00:01 2004</font></td>
  267. <td align="right"><a href="http://epydoc.sourceforge.net"
  268. ><font size="-2">http://epydoc.sf.net</font></a></td>
  269. </tr>
  270. </table>
  271. </body>
  272. </html>