<br><font size=2 face="sans-serif">Hi Stephan,</font>
<br>
<br><tt><font size=2>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Is it
guaranteed that the parser does not change the textual<br>
 &nbsp; &nbsp; &nbsp; &nbsp;representation? (Seems like a obvious yes to
me, but I'd like to<br>
 &nbsp; &nbsp; &nbsp; &nbsp;have your confirmation on this)</font></tt>
<br><tt><font size=2>That depends on what you conceive the &quot;textual
representation&quot;. If you mean the text that a user sees in the editor
the answer is yes. Of course, the structure of the textblocks model is
altered which, however, won't change what the user sees.<br>
 &nbsp; &nbsp; &nbsp;* The lexer takes the PREVIOUS version and creates
the CURRENT<br>
 &nbsp; &nbsp; &nbsp; &nbsp;one. If there is an existing CURRENT version,
it is discarded<br>
 &nbsp; &nbsp; &nbsp; &nbsp;first. </font></tt>
<br><tt><font size=2>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- What does
the parser do with these two versions?</font></tt>
<br><tt><font size=2>The parser uses the versions (in fact also the REFERENCE
version) do determine where the places in the textblocks model that were
newly created, modified or deleted.</font></tt>
<br><tt><font size=2>&nbsp; &nbsp; &nbsp; &nbsp; - When the parser
has finished, are both versions consistent views on model<br>
 &nbsp; &nbsp; &nbsp; &nbsp;or are they somewhat different?</font></tt>
<br><tt><font size=2>They are different, as the PREVIOUS version will still
contain tokens that just contain modified values an that are not lexecally
analysed. E.g., after an insertion &quot; bla&quot; to the Token &quot;test&quot;
resulting in PREVIOUS version token &quot;test bla&quot; this value is
still present in the PREVIOUS version token whereas the CURRENT version
may have (of course depending on the lexer rules) two tokens &quot;test&quot;
&quot;bla&quot;. Therefore, after the CURRENT version is reached the PREVIOUS
version is obsolete as it is missing the tokenisation that the lexer did.<br>
 &nbsp; &nbsp; &nbsp;* Is the latest CURRENT version promoted to become
the new<br>
 &nbsp; &nbsp; &nbsp; &nbsp;PREVIOUS version?</font></tt>
<br><tt><font size=2>No, after the CURRENT version is finished by the parser
(currently after performing a save action), the CURRENT version becomes
the new REFERENCE version. Only after a user again makes modifications
to the document, a new PREVIOUS version will be created.<br>
 &nbsp; &nbsp; &nbsp;* Is it dangerous to set errorMode=True in the parse
run and force<br>
 &nbsp; &nbsp; &nbsp; &nbsp;the parser to inject as far as possible, even
if there are<br>
 &nbsp; &nbsp; &nbsp; &nbsp;syntax errors?</font></tt>
<br><font size=2 face="sans-serif">This was my first try to achieve a backgound
parsing. However, there were still some problems with subsequent editings
where the intermediate version was still erronous. To answer your question,
yes it is dangerous. I cant remember what exactly the problems where when
I trie to do this. Is that what you are currently working on? to get the
background parsing to create as much of the model as possible? That would
be great ;) I will try to help you as much as my available time lets me
do this.</font>
<br>
<br><font size=2 face="sans-serif">Cheers,</font>
<br><font size=2 face="sans-serif">Thomas<br>
</font>
<table>
<tr>
<td valign=top><img src=cid:_1_07EF726C07EF6EB0002A80DFC1257839>
<td><font size=3>&nbsp; </font>
<td><font size=1 face="Verdana"><b>Thomas Goldschmidt </b><br>
<br>
ABB AG<br>
Forschungszentrum<br>
Wallstadter Straße 59<br>
68526 Ladenburg<br>
Office Phone: +49 6203 716134<br>
Office Fax: +49 6203 716253<br>
e-mail:</font><font size=1 color=blue face="Verdana"> thomas.goldschmidt@de.abb.com</font></table>
<br>
<br><font size=1 color=#808080 face="Verdana">ABB AG<br>
Sitz/Head Office: Mannheim <br>
Registergericht/Registry Court: Mannheim<br>
Handelsregisternummer/Commercial Register No.: HRB 4664<br>
Geschäftsführung/Managing Board: Peter Smits (Vorsitzender), Joachim Schneider,
Markus Ochsner, Hans-Georg Krabbe<br>
Vorsitzender des Aufsichtsrats/Chairman of Supervisory Board: Bernhard
Jucker<br>
<br>
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich
erhalten haben, informieren Sie bitte sofort den Absender und vernichten
Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe
dieser Mail ist nicht gestattet. <br>
<br>
This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any unauthorized
copying, disclosure or distribution of the material in this e-mail is strictly
forbidden.</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Stephan Erb &lt;stephan@dev.static-void.de&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: furcas-discussion-bounces@lists.furcas.org</font>
<p><font size=1 face="sans-serif">16.02.2011 00:12</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">furcas-discussion &lt;furcas-discussion@lists.furcas.org&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[furcas-discussion] Parser Invariants</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Hey Thomas,<br>
<br>
I have a few simple questions concerning incremental lexing and parsing.<br>
<br>
 &nbsp; &nbsp; &nbsp;* Is it guaranteed that the parser does not change
the textual<br>
 &nbsp; &nbsp; &nbsp; &nbsp;representation? (Seems like a obvious yes to
me, but I'd like to<br>
 &nbsp; &nbsp; &nbsp; &nbsp;have your confirmation on this)<br>
 &nbsp; &nbsp; &nbsp;* The lexer takes the PREVIOUS version and creates
the CURRENT<br>
 &nbsp; &nbsp; &nbsp; &nbsp;one. If there is an existing CURRENT version,
it is discarded<br>
 &nbsp; &nbsp; &nbsp; &nbsp;first. What does the parser do with these two
versions? When the<br>
 &nbsp; &nbsp; &nbsp; &nbsp;parser has finished, are both versions consistent
views on model<br>
 &nbsp; &nbsp; &nbsp; &nbsp;or are they somewhat different?<br>
 &nbsp; &nbsp; &nbsp;* Is the latest CURRENT version promoted to become
the new<br>
 &nbsp; &nbsp; &nbsp; &nbsp;PREVIOUS version?<br>
 &nbsp; &nbsp; &nbsp;* Is it dangerous to set errorMode=True in the parse
run and force<br>
 &nbsp; &nbsp; &nbsp; &nbsp;the parser to inject as far as possible, even
if there are<br>
 &nbsp; &nbsp; &nbsp; &nbsp;syntax errors?<br>
<br>
I ask all these questions because they are crucial when determining the<br>
critical regions for the synchronization of the background parsing<br>
thread. &nbsp;<br>
<br>
Thanks!<br>
Stephan<br>
<br>
_______________________________________________<br>
Furcas-discussion mailing list<br>
Furcas-discussion@lists.furcas.org<br>
</font></tt><a href="http://lists.furcas.org/cgi-bin/mailman/listinfo/furcas-discussion"><tt><font size=2>http://lists.furcas.org/cgi-bin/mailman/listinfo/furcas-discussion<br>
</font></tt></a>
<br>