<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3ADesign_of_Roundtrip_Parser</id>
		<title>Talk:Design of Roundtrip Parser - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3ADesign_of_Roundtrip_Parser"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Design_of_Roundtrip_Parser&amp;action=history"/>
		<updated>2026-05-02T04:58:44Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Design_of_Roundtrip_Parser&amp;diff=14122&amp;oldid=prev</id>
		<title>Alexander Kogtenkov: Added a note about possible optimization of BREAK_AS</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Design_of_Roundtrip_Parser&amp;diff=14122&amp;oldid=prev"/>
				<updated>2011-06-16T15:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Added a note about possible optimization of BREAK_AS&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Optimization ==&lt;br /&gt;
&amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; can be significantly optimized if the source text is not kept inside the node, but outside it. The following approaches are possible:&lt;br /&gt;
# Locked source code. The source code is saved in a secure place that can be accessed whenever needed. The pair &amp;lt;e&amp;gt;position&amp;lt;/e&amp;gt;-&amp;lt;e&amp;gt;count&amp;lt;/e&amp;gt; can be used to get the text of the node. &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; has no reference fields.&lt;br /&gt;
# Dictionary. All character sequences are stored in a central dictionary and &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; keeps an index of the corresponding sequence. &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; for the same character sequences share the same dictionary item. Text of the node corresponds to the text of an item in the dictionary. &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; has no reference fields. Dictionary can be organized in a way without reference fields as well.&lt;br /&gt;
It's even possible to avoid creating &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; altogether. It's sufficient to have a '''match list'''. If there are gaps in the indexes between two adjacent leaves in the AST, it means the missing items correspond to the &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; elements that can be found in '''match list'''. Any information that is written in &amp;lt;e&amp;gt;BREAK_AS&amp;lt;/e&amp;gt; can be computed on the fly.&lt;/div&gt;</summary>
		<author><name>Alexander Kogtenkov</name></author>	</entry>

	</feed>