[OT] Partial-reparsing thory?
spir
denis.spir at gmail.com
Thu Apr 14 16:33:24 PDT 2011
On 04/15/2011 12:51 AM, Nick Sabalausky wrote:
> Is anyone aware of any (formal or informal)
> theory/information/research/articles/etc. that's already been done on the
> idea of reparsing *part* of an already-parsed source? Either lexing, parsing
> or both together. Preferably LR, but LL might be helpful, too. (I'd imagine
> it may be notably more difficult with LR. May need to keep track of all the
> parsing steps taken the first time around, and may need to continue
> re-parsing to the end of the source.)
>
> I know code editors deal with that sort of thing a lot, but my understanding
> is they often accept a certain amount of inaccuracy (for the sake of being
> more line-oriented) and also tend to be more lexing-oriented and very light
> on parsing.
This is a very interesting question.
I guess it may have to play with "diffs", as a required tool to identify
differences in-relation-to original source. The result may be a set of
intervals (each a pair of indices) in both original and modified sources. Then,
if ever nodes keep track of indices in original source, one may be able to
identify the one node covering (all of) a diven piece of diff. This would be
what needs be reparsed.
If ever this succeds, then one can pass to next diff, with an adjustment/offset
of indices which should normally be already given by the diff tool.
Well, this superficial view may be totally wrong, and/or biased toward PEG
parsing which I'm most familiar with. I guess things may well become more
complicated with the common approach of 2-separated-pass lexing + parsing; at
least, you'd need offset adjustment successively on character- and then on
lexeme- indices.
There may also be some similarity with the (apparently) simpler problem of
error recovery: restart parsing "somewhere" after a match failure.
Denis
--
_________________
vita es estrany
spir.wikidot.com
More information about the Digitalmars-d
mailing list