[erlang-questions] Erlang PP Question

Kannan <>
Wed May 30 12:17:31 CEST 2012


Also, is there a way to expand a single macro into multiple macros, before
a final replacement?



On Wed, May 30, 2012 at 3:42 PM, Kannan <> wrote:

> My bad, please read the second PP as -define.
>
>
> On Wed, May 30, 2012 at 3:41 PM, Kannan <> wrote:
>
>> Isn't PP takes place before parsing? Isn't PP is simply a string
>> replacement?
>>
>>
>>
>> On Wed, May 30, 2012 at 3:03 PM, Richard Carlsson <
>> > wrote:
>>
>>> On 05/30/2012 11:26 AM, Kannan wrote:
>>>
>>>> Hi There,
>>>>
>>>> If -define does just string replacement, why it does not let me do the
>>>> following?
>>>>
>>>> -define(Z, z() -> io:fwrite("z")).
>>>> -define(Y, y() -> io:fwrite("y")).
>>>> -define(X, ?Y. ?Z.).
>>>>
>>>
>>> In the last line, you have ?Y. followed by whitespace. This ends the
>>> define declaration. Erlang source code is divided into "forms", where each
>>> form ends with . followed by whitespace (usually newline, but any
>>> whitespace or even a comment can be used). So you have two forms at the
>>> end: '-define(X, ?Y.' and '?Z.).' and none of these are syntactically
>>> valid. It is not possible to make a single macro expand into two forms.
>>>
>>>   /Richard
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120530/be3aa3af/attachment.html>


More information about the erlang-questions mailing list