https://wiki.liberty-eiffel.org/index.php?title=Parsing&feed=atom&action=historyParsing - Revision history2024-03-29T12:02:00ZRevision history for this page on the wikiMediaWiki 1.37.0https://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=2699&oldid=prevHzwakenberg at 21:04, 14 May 20222022-05-14T21:04:20Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:04, 14 May 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads<del style="font-weight: bold; text-decoration: none;"> source</del> Liberty Eiffel files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads Liberty Eiffel<ins style="font-weight: bold; text-decoration: none;"> source</ins> files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
</tr>
</table>Hzwakenberghttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=2353&oldid=prevDkearns: "is" is obsolete2016-06-10T06:49:18Z<p>"is" is obsolete</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:49, 10 June 2016</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>feature</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>feature</div></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> constant: INTEGER<del style="font-weight: bold; text-decoration: none;"> is</del> 42</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> constant: INTEGER 42</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td>
</tr>
</table>Dkearnshttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=2352&oldid=prevDkearns: s/LibertyEiffel/Liberty Eiffel/2016-06-10T06:48:31Z<p>s/LibertyEiffel/Liberty Eiffel/</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:48, 10 June 2016</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source <del style="font-weight: bold; text-decoration: none;">LibertyEiffel</del> files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source <ins style="font-weight: bold; text-decoration: none;">Liberty Eiffel</ins> files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Where is the parser? =</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Where is the parser? =</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The parser can be found at <code>tools/parser.e</code> and <code>tools/parser/*</code>. The real core of Eiffel parsing is at the [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] class, although some of the basic parsing functionality (like knowing the position, parsing some of the tokens, and generating error messages) is in the [[tool_class:PARSER|<tt>PARSER</tt>]] parent class (which is also the parent of other parsers inside <del style="font-weight: bold; text-decoration: none;">LibertyEiffel</del>, like the [[tool_class:INI_PARSER|config file parser]], and [[tool_class:ACE_PARSER|ACE file parser]]).</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The parser can be found at <code>tools/parser.e</code> and <code>tools/parser/*</code>. The real core of Eiffel parsing is at the [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] class, although some of the basic parsing functionality (like knowing the position, parsing some of the tokens, and generating error messages) is in the [[tool_class:PARSER|<tt>PARSER</tt>]] parent class (which is also the parent of other parsers inside <ins style="font-weight: bold; text-decoration: none;">Liberty Eiffel</ins>, like the [[tool_class:INI_PARSER|config file parser]], and [[tool_class:ACE_PARSER|ACE file parser]]).</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
</tr>
</table>Dkearnshttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=1902&oldid=prevHzwakenberg at 19:11, 5 September 20142014-09-05T19:11:19Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:11, 5 September 2014</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Where is the parser? =</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Where is the parser? =</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The parser can be found at <code>tools/parser.e</code> and <code>tools/parser/*</code>. The real core of Eiffel parsing is at the [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] class, although some of the basic parsing functionality (like knowing the position, parsing some of the tokens, and generating error messages) is in the [[tool_class:PARSER|<tt>PARSER</tt>]] parent class (which is also the parent of other parsers inside <del style="font-weight: bold; text-decoration: none;">smarteiffel</del>, like the [[tool_class:INI_PARSER|config file parser]], and [[tool_class:ACE_PARSER|ACE file parser]]).</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The parser can be found at <code>tools/parser.e</code> and <code>tools/parser/*</code>. The real core of Eiffel parsing is at the [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] class, although some of the basic parsing functionality (like knowing the position, parsing some of the tokens, and generating error messages) is in the [[tool_class:PARSER|<tt>PARSER</tt>]] parent class (which is also the parent of other parsers inside <ins style="font-weight: bold; text-decoration: none;">LibertyEiffel</ins>, like the [[tool_class:INI_PARSER|config file parser]], and [[tool_class:ACE_PARSER|ACE file parser]]).</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
</tr>
</table>Hzwakenberghttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=1901&oldid=prevHzwakenberg at 19:10, 5 September 20142014-09-05T19:10:08Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:10, 5 September 2014</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty"> </td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source LibertyEiffel files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Smarteiffel]]</div></td>
<td colspan="2" class="diff-empty"> </td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source SmartEiffel files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
<td colspan="2" class="diff-empty"> </td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><pre></div></td>
</tr>
</table>Hzwakenberghttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=1572&oldid=prevRamack at 21:11, 4 March 20132013-03-04T21:11:20Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:11, 4 March 2013</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty"> </td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Smarteiffel]]</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source SmartEiffel files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The syntax parser is the component which reads source SmartEiffel files and produces an AST (abstract syntax tree). This tree is a data structure which models more or less directly the '''text''' of the source file; it does not model semantic properties that are not directly on the text. For example, when parsing the class:</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
</table>Ramackhttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=978&oldid=prevRamack: 8 revisions: initial import from SamrtEiffel Wiki - The Grand SmartEiffel Book2013-03-03T21:46:26Z<p>8 revisions: initial import from SamrtEiffel Wiki - The Grand SmartEiffel Book</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:46, 3 March 2013</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Ramackhttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=977&oldid=prevCadrian: /* Where is the parser? */ link to the class loading algorithm2007-04-13T09:32:14Z<p><span dir="auto"><span class="autocomment">Where is the parser?: </span> link to the class loading algorithm</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:32, 13 April 2007</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 20:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]]; that is used to be a lot smarter about classes having the same name but not in the same cluster. --[[User:Cadrian|Cyril]] 11:30, 13 Apr 2007 (CEST)''</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]]; that is used to be a lot smarter about classes having the same name but not in the same cluster<ins style="font-weight: bold; text-decoration: none;">. See the [[class loading]] algorithm</ins>. --[[User:Cadrian|Cyril]] 11:30, 13 Apr 2007 (CEST)''</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
</tr>
</table>Cadrianhttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=976&oldid=prevCadrian: /* Where is the parser? */ oops, sig2007-04-13T09:30:13Z<p><span dir="auto"><span class="autocomment">Where is the parser?: </span> oops, sig</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:30, 13 April 2007</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 20:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]]; that is used to be a lot smarter about classes having the same name but not in the same cluster. --<del style="font-weight: bold; text-decoration: none;">~~</del>''</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]]; that is used to be a lot smarter about classes having the same name but not in the same cluster. --<ins style="font-weight: bold; text-decoration: none;">[[User:Cadrian|Cyril]] 11:30, 13 Apr 2007 (CEST)</ins>''</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
</tr>
</table>Cadrianhttps://wiki.liberty-eiffel.org/index.php?title=Parsing&diff=975&oldid=prevCadrian: /* Where is the parser? */ the future is now :-)2007-04-13T09:29:37Z<p><span dir="auto"><span class="autocomment">Where is the parser?: </span> the future is now :-)</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:29, 13 April 2007</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 20:</td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>There is exactly one instance of [[tool_class:EIFFEL_PARSER|<tt>EIFFEL_PARSER</tt>]] during the execution, shared through the <tt>[[tool_class:GLOBALS|GLOBALS]].eiffel_parser</tt> once function. It is used by the [[tool_class:SMART_EIFFEL|<tt>SMART_EIFFEL</tt>]] singleton, which keeps a dictionary of cached parsed classes (to avoid parsing a single file more than once).</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker">−</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]];<del style="font-weight: bold; text-decoration: none;"> in some future</del> that <del style="font-weight: bold; text-decoration: none;">will be</del> used to be a lot smarter about classes having the same name but not in the same cluster. --<del style="font-weight: bold; text-decoration: none;">[[User:Cadrian|Cyril]] 08:31, 2 Oct 2006 (CEST)</del>''</div></td>
<td class="diff-marker">+</td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>''Note: that's not true anymore in 2.3. Now the classes are cached by [[tool_class:ACE|<tt>ACE</tt>]] and the [[tool_class:CLUSTER|clusters]]; that <ins style="font-weight: bold; text-decoration: none;">is</ins> used to be a lot smarter about classes having the same name but not in the same cluster. --<ins style="font-weight: bold; text-decoration: none;">~~</ins>''</div></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td>
</tr>
<tr>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
<td class="diff-marker"> </td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The parser reads from a [[tool_class:PARSER_BUFFER|<tt>PARSER_BUFFER</tt>]] object (also a shared singleton) which reads the whole input file in memory before parsing, and provides random access to the file. The buffer has also some metadata about the file, like the whole path, and the cluster where the file was found.</div></td>
</tr>
</table>Cadrian