Where is pragma Declaration in the grammar?
Stefan Koch
uplink.coder at googlemail.com
Sat Dec 5 03:55:52 UTC 2020
On Saturday, 5 December 2020 at 02:59:58 UTC, Paul Backus wrote:
> On Saturday, 5 December 2020 at 00:57:04 UTC, Stefan Koch wrote:
>> Hi,
>>
>> today I've been dusting my SDC fork and implemented a
>> rudimentary version of pragma(msg).
>>
>> I could pragmaStatement
>>
>> as in void f()
>> {
>> pragma(msg, typeof(f));
>> }
>>
>> but not a declaration as in
>> pragma(msg, typeof(f))
>> without a function body.
>
> They're under Attribute:
>
> https://dlang.org/spec/grammar.html#Attribute
>
> The syntax tree for `pragma(msg, typeof(f))` in a declaration
> context would be:
>
> DeclDef
> AttributeSpecifier
> Attribute
> Pragma
> pragma(msg, typeof(f))
> DeclarationBlock
> DeclDef
> ;
The Decldef is not optional.
This is for pragmas like pragma mangle that affect symbols.
More information about the Digitalmars-d-learn
mailing list