Skip to content

Commit bec060c

Browse files
committed
Add syntax node for macro declaration
1 parent 54e4440 commit bec060c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

gyb_syntax_support/DeclNodes.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,36 @@
916916
'''),
917917
]),
918918

919+
Node('MacroDecl', name_for_diagnostics='macro', kind='Decl',
920+
traits=['IdentifiedDecl'],
921+
children=[
922+
Child('Attributes', kind='AttributeList', name_for_diagnostics='attributes',
923+
collection_element_name='Attribute', is_optional=True),
924+
Child('Modifiers', kind='ModifierList', name_for_diagnostics='modifiers',
925+
collection_element_name='Modifier', is_optional=True),
926+
Child('MacroKeyword', kind='ContextualKeywordToken',
927+
text_choices=['macro']),
928+
Child('Identifier', kind='IdentifierToken'),
929+
Child('GenericParameterClause', kind='GenericParameterClause', name_for_diagnostics='generic parameter clause',
930+
is_optional=True),
931+
Child('Signature', kind='Syntax', name_for_diagnostics='macro signature',
932+
node_choices=[
933+
Child('FunctionLike', kind='FunctionSignature', name_for_diagnostics="macro signature"),
934+
Child('ValueLike', kind='TypeAnnotation', name_for_diagnostics="macro signature"),
935+
]),
936+
Child('Equal', kind='EqualToken'),
937+
Child('ExternalName', kind='ExternalMacroName', name_for_diagnostics='external macro name', is_optional = True),
938+
Child('GenericWhereClause', kind='GenericWhereClause', name_for_diagnostics='generic where clause',
939+
is_optional=True),
940+
]),
941+
942+
Node('ExternalMacroName', name_for_diagnostics='external macro name', kind='Syntax',
943+
children=[
944+
Child('ModuleName', kind='IdentifierToken', name_for_diagnostics='module name'),
945+
Child('Period', kind='PeriodToken'),
946+
Child('MacroTypeName', kind='IdentifierToken', name_for_diagnostics='macro type name'),
947+
]),
948+
919949
# e.g., "#embed("filename.txt")"
920950
Node('MacroExpansionDecl',
921951
name_for_diagnostics="pound literal declaration", kind='Decl',

0 commit comments

Comments
 (0)