[Lazarus] Using FPC parser/tokenizer for code formatting

Michael Van Canneyt michael at freepascal.org
Sat May 29 18:05:26 CEST 2010



On Sat, 29 May 2010, Marco van de Voort wrote:

> On Fri, May 28, 2010 at 10:06:37PM +0300, Adem wrote:
>> On 2010-05-28 21:50, Florian Klaempfl wrote:
>>>
>>> It might be possible but the fpc scanner/parser are rather interwinded
>>> with other parts of the compiler, just to name an example: pmodules.pas
>>> parses units and programs but controls also code generation and handles
>>> symtables etc. for them.
>>
>> I can only --barely at that-- guess the amount of work and effort you
>> have put into FPC and I appreciate it all immensely.
>> [No, this isn't grovelling. It is sincere. But, I just wanted to say it,
>> before moving on to the next paragraph.]
>>
>> Would I have your blessing if I proposed a bounty to unentwine them so
>> that each one of those major modules becomes objects in tehir own right
>> --commnicating with one another through public/published events and
>> properties.
>
> Personally I think the bounty is better spent on improving fcl-passrc and
> giving it some regular work and maintainance.
>
> That doesn't mean the various parsers could be better synchronized, and I
> think something can be done there.  But I think it would yield more to
> integrating fcl-passrc into the testsuite, and thus document the boundery
> conditions of implemented constructs.

Well, given the recent breakage because of the support for 'deprecated',
I started on a test file, but I think that a better and more fundamental
approach is needed. My idea was to create a large number of small files
with code fragments. The test application reads the fragments and puts
them in a unit (interface/implementation) and attempts to scan/parse it.
After that, it's just a matter of creating the code fragments.

Michael.




More information about the Lazarus mailing list