cairo-lang-parser 2.18.0

Cairo parser.
Documentation
//! > Test enum

//! > test_runner_name
test_partial_parser_tree(expect_diagnostics: false)

//! > cairo_code
enum MyEnum {
    A: felt252,
    B: felt252,
    MissingComma,
}

//! > top_level_kind
ItemEnum

//! > ignored_kinds

//! > expected_diagnostics

//! > expected_tree
└── Top level kind: ItemEnum
    ├── attributes (kind: AttributeList) []
    ├── visibility (kind: VisibilityDefault) []
    ├── enum_kw (kind: TokenEnum): 'enum'
    ├── name (kind: TokenIdentifier): 'MyEnum'
    ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    ├── lbrace (kind: TokenLBrace): '{'
    ├── variants (kind: VariantList)
    │   ├── item #0 (kind: Variant)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── name (kind: TokenIdentifier): 'A'
    │   │   └── type_clause (kind: TypeClause)
    │   │       ├── colon (kind: TokenColon): ':'
    │   │       └── ty (kind: ExprPath)
    │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │           └── segments (kind: ExprPathInner)
    │   │               └── item #0 (kind: PathSegmentSimple)
    │   │                   └── ident (kind: TokenIdentifier): 'felt252'
    │   ├── separator #0 (kind: TokenComma): ','
    │   ├── item #1 (kind: Variant)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── name (kind: TokenIdentifier): 'B'
    │   │   └── type_clause (kind: TypeClause)
    │   │       ├── colon (kind: TokenColon): ':'
    │   │       └── ty (kind: ExprPath)
    │   │           ├── dollar (kind: OptionTerminalDollarEmpty) []
    │   │           └── segments (kind: ExprPathInner)
    │   │               └── item #0 (kind: PathSegmentSimple)
    │   │                   └── ident (kind: TokenIdentifier): 'felt252'
    │   ├── separator #1 (kind: TokenComma): ','
    │   ├── item #2 (kind: Variant)
    │   │   ├── attributes (kind: AttributeList) []
    │   │   ├── name (kind: TokenIdentifier): 'MissingComma'
    │   │   └── type_clause (kind: OptionTypeClauseEmpty) []
    │   └── separator #2 (kind: TokenComma): ','
    └── rbrace (kind: TokenRBrace): '}'