[Lazarus] Warning: FPDOC Editor can cause data loss

Graeme Geldenhuys graemeg.lists at gmail.com
Tue Jun 8 11:57:05 CEST 2010


On 2010-06-07 09:01, Hans-Peter Diettrich wrote:
> Adem schrieb:
>
>>> And finally we'll have to talk about parsing invalid code, during 
>>> editing. This can be handled by the same hack as for conditionally 
>>> excluded code, so that after an syntax error the parser stops 
>>> parsing, and simply returns the tokens provided by the scanner. The 
>>> only question: how to make the parser resume parsing, once enough 
>>> tokens have been skipped?
>> OTOH, two approaches come to mind:
>>
>> First one is, introduce another token kind (or several new token 
>> kinds, if we need to take care of degrees of severity) for error, and 
>> add an 'error node' every time an error occurs and contniue 
>> regardless. Then, let the calling application decide what to do.
>>
>> Second one could be something like this:
>>
>> Call an event wherever halting occurs:
>
> The Semantics class will have according method(s).
>
> But when the parser is in an error state, inside some procedure, how 
> can the parser be instructed to exit this and further procedures in 
> the call stack? Exception handling could implement such detailed 
> recovery, but the compiler code does not use SEH for speed reasons.
I haven't studied the actual code, so it is entirely possible that I am 
talking through my (or even someone else's) hat.

I expect, in the current code, there are exit points that emit a 
reasonably suitable message to the compiler. Could we not replace these 
exit points with procedure/function calls to that decides whether (in 
the case of compiler use) it should exit immediately or (in the case of 
non-compiler use) it should consult with the calling class?

But, then, it's probably not as easy as that.

-- 
Cheers,

Adem





More information about the Lazarus mailing list