Re: Parsing partial sentences

Kaz Kylheku <686-678-9105@kylheku.com>
Sun, 30 Apr 2017 16:31:52 +0000 (UTC)

          From comp.compilers

Related articles
[14 earlier articles]
Re: Parsing partial sentences gneuner2@comcast.net (George Neuner) (2017-04-21)
Re: Parsing partial sentences walter@bytecraft.com (Walter Banks) (2017-04-27)
Re: Parsing partial sentences 686-678-9105@kylheku.com (Kaz Kylheku) (2017-04-27)
Re: Parsing partial sentences DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2017-04-28)
Re: Parsing partial sentences rugxulo@gmail.com (2017-04-28)
Re: Parsing partial sentences marcov@toad.stack.nl (Marco van de Voort) (2017-04-29)
Re: Parsing partial sentences 686-678-9105@kylheku.com (Kaz Kylheku) (2017-04-30)
| List of all articles for this month |

From: Kaz Kylheku <686-678-9105@kylheku.com>
Newsgroups: comp.compilers
Date: Sun, 30 Apr 2017 16:31:52 +0000 (UTC)
Organization: Aioe.org NNTP Server
References: 17-04-001 17-04-023 17-04-024 17-04-027
Injection-Info: miucha.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="77038"; mail-complaints-to="abuse@iecc.com"
Keywords: translator, C, Pascal
Posted-Date: 30 Apr 2017 15:38:44 EDT

On 2017-04-29, Marco van de Voort <marcov@toad.stack.nl> wrote:
> On 2017-04-27, Kaz Kylheku <686-678-9105@kylheku.com> wrote:
>>> In a word NO. #defines are always strings even when they look like
>>> constants, something I have found out the hard way. There have only been
>>> two ways that I have successfully dealt with #defines: a preprocessor
>>> pass or later and much faster pipeline the processing of C source and
>>> add the defined definition processing into part of the source fetch
>>> handling.
>>
>> If we allow Pascal to be extended with a macro preprocessor,
>
> I think most interest in C->Pascal header translators is for (semi)automated
> translation of 3rd party library headers, not converting complete programs.


OP wrote that he's writing a C to Pascal translator. The face value
interpretation of that is that it handles programs.


Handling only headers would be the likely focus of a project for
automatically generating Pascal foreign function interface bindings
for C libraries: C to Pascal interface translation (C à la SWIG and
whatnot).


> This means that it cannot be considered a given that a program exists that
> uses all macros in the header.


A macro that is not used by a C program might be complete gibberish;
yet that program may still be well-formed.


      #define ABC { ( 42 -> * "foo" ]


A C to Pascal translator which tries to treat unused macros might
needlessly choke on such a thing.


It is reasonable, nay wise, for a whole-program C to Pascal translator
to ignore C macros that are unused by the C program.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.