| from Child import Child |
| |
| |
| class Trait(object): |
| def __init__(self, trait_name, description=None, children=None): |
| self.trait_name = trait_name |
| self.children = children |
| self.description = description |
| |
| |
| TRAITS = [ |
| Trait('DeclGroup', |
| children=[ |
| Child('Attributes', kind='AttributeList', is_optional=True), |
| Child('AccessLevelModifier', kind='DeclModifier', |
| is_optional=True), |
| Child('Members', kind='MemberDeclBlock'), |
| ]), |
| |
| Trait('Braced', |
| children=[ |
| Child('LeftBrace', kind='LeftBraceToken'), |
| Child('RightBrace', kind='RightBraceToken'), |
| ]), |
| |
| Trait('IdentifiedDecl', |
| children=[ |
| Child('Identifier', kind='IdentifierToken'), |
| ]), |
| |
| Trait('WithCodeBlock', |
| children=[ |
| Child('Body', kind='CodeBlock'), |
| ]), |
| |
| Trait('Parenthesized', |
| children=[ |
| Child('LeftParen', kind='LeftParenToken'), |
| Child('RightParen', kind='RightParenToken'), |
| ]), |
| |
| Trait('WithTrailingComma', |
| children=[ |
| Child('TrailingComma', kind='CommaToken', is_optional=True), |
| ]), |
| |
| Trait('Labeled', |
| children=[ |
| Child('LabelName', kind='IdentifierToken', is_optional=True), |
| Child('LabelColon', kind='ColonToken', is_optional=True), |
| ]), |
| |
| Trait('WithStatements', |
| children=[ |
| Child('Statements', kind='CodeBlockItemList'), |
| ]), |
| ] |