[fpc-devel] Dumping the syntax tree

Kostas Michalopoulos badsectoracula at gmail.com
Thu Oct 23 18:45:32 CEST 2014


Lazarus has a Pascal tokenizer unit under components\mpaslex\mpaslex.pp. It
seems old and doesn't look like it supports the full FPC syntax, but it
might be a starting point since most likely you can convert the code to C++
with GNU GCC extensions (nested functions, etc) straightforward.

On Thu, Oct 23, 2014 at 6:25 PM, Vsevolod Alekseyev <sevaa at sprynet.com>
wrote:

> I don't see local variable definitions there, either...
>
>
> On 10/23/2014 12:15 PM, Nikolay Nikolov wrote:
>
>> On 23.10.2014 г. 18:59, Vsevolod Alekseyev wrote:
>>
>>> On second look, no, the -vp tree is not sufficient. It doesn't have
>>> datatype definitions, doesn't have interface definitions...
>>>
>> True. I guess, you can try to use ppudump in order to dump these
>> definitions. It'll only work for units though, but I guess it shouldn't be
>> too hard to make the compiler output ppu files for programs as well.
>>
>> Nikolay
>>
>>
>>> On 10/22/2014 4:44 AM, Nikolay Nikolov wrote:
>>>
>>>> On 10/22/2014 12:23 AM, Vsevolod Alekseyev wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I wonder where in the FPC compilation flow would be a good spot to
>>>>> dump the parsed syntax tree of a source?
>>>>>
>>>>> Here's why I'm asking. For a while now, I've been struggling to adapt
>>>>> a bunch of Pascal code to various mobile platforms. It's been painful. The
>>>>> code itself is pretty conservative feature-wise, almost K&R C-like (except
>>>>> sets and ansistrings). I wonder if I could slap together a quick and dirty
>>>>> Pascal-to-C converter just for this codebase to work, but I'd rather reuse
>>>>> the existing parsing logic.
>>>>>
>>>>> So if anyone could point me at a spot in the FPC source where the
>>>>> source tree is more or less ready, that's be nice. Thanks in advance.
>>>>>
>>>> The compiler already supports dumping the parse tree when you use the
>>>> -vp option. But it's more intended for debugging the compiler - I don't
>>>> know if it'll work for you.
>>>>
>>>> Nikolay
>>>> _______________________________________________
>>>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>>>
>>>>
>>> _______________________________________________
>>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>>
>>
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20141023/d1019869/attachment.html>


More information about the fpc-devel mailing list