Skip to content

Commit 8caa4a7

Browse files
committed
Add FreestandingMacroSyntax trait for freestanding macros.
1 parent 0283ae6 commit 8caa4a7

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

gyb_syntax_support/DeclNodes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -924,6 +924,7 @@
924924
# e.g., "#embed("filename.txt")"
925925
Node('MacroExpansionDecl',
926926
name_for_diagnostics="pound literal declaration", kind='Decl',
927+
traits=['FreestandingMacroExpansion'],
927928
children=[
928929
Child('PoundToken', kind='PoundToken',
929930
description='The `#` sign.'),

gyb_syntax_support/ExprNodes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,7 @@
653653
# e.g., "#embed("filename.txt")"
654654
Node('MacroExpansionExpr',
655655
name_for_diagnostics="pound literal expression", kind='Expr',
656+
traits=['FreestandingMacroExpansion'],
656657
children=[
657658
Child('PoundToken', kind='PoundToken',
658659
description='The `#` sign.'),

gyb_syntax_support/Traits.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,26 @@ def __init__(self, trait_name, description=None, children=None):
4343
Child('RightParen', kind='RightParenToken'),
4444
]),
4545

46+
Trait('FreestandingMacroExpansion',
47+
children=[
48+
Child('PoundToken', kind='PoundToken'),
49+
Child('Macro', kind='IdentifierToken'),
50+
Child('GenericArguments', kind='GenericArgumentClause',
51+
is_optional=True),
52+
Child('LeftParen', kind='LeftParenToken',
53+
is_optional=True),
54+
Child('ArgumentList', kind='TupleExprElementList',
55+
collection_element_name='Argument'),
56+
Child('RightParen', kind='RightParenToken',
57+
is_optional=True),
58+
Child('TrailingClosure', kind='ClosureExpr',
59+
is_optional=True),
60+
Child('AdditionalTrailingClosures',
61+
kind='MultipleTrailingClosureElementList',
62+
collection_element_name='AdditionalTrailingClosure',
63+
is_optional=True),
64+
]),
65+
4666
Trait('WithTrailingComma',
4767
children=[
4868
Child('TrailingComma', kind='CommaToken', is_optional=True),

0 commit comments

Comments
 (0)