cairo-lang-parser 0.1.0

Cairo parser.
Documentation
//! > Test function call syntax tree

//! > test_function_name
test_partial_parser_tree

//! > cairo_code
fn test() {
    f::<felt, 7>(12, a + 3, b);
}

//! > top_level_kind
ExprFunctionCall

//! > ignored_kinds

//! > expected_diagnostics

//! > expected_tree
└── Top level kind: ExprFunctionCall
    ├── path (kind: ExprPath)
    │   └── item #0 (kind: PathSegmentWithGenericArgs)
    │       ├── ident (kind: TokenIdentifier): 'f'
    │       ├── separator (kind: TokenColonColon): '::'
    │       └── generic_args (kind: GenericArgs)
    │           ├── langle (kind: TokenLT): '<'
    │           ├── generic_args (kind: GenericArgList)
    │           │   ├── item #0 (kind: ExprPath)
    │           │   │   └── item #0 (kind: PathSegmentSimple)
    │           │   │       └── ident (kind: TokenIdentifier): 'felt'
    │           │   ├── separator #0 (kind: TokenComma): ','
    │           │   └── item #1 (kind: TokenLiteralNumber): '7'
    │           └── rangle (kind: TokenGT): '>'
    └── arguments (kind: ExprListParenthesized)
        ├── lparen (kind: TokenLParen): '('
        ├── expressions (kind: ExprList)
        │   ├── item #0 (kind: TokenLiteralNumber): '12'
        │   ├── separator #0 (kind: TokenComma): ','
        │   ├── item #1 (kind: ExprBinary)
        │   │   ├── lhs (kind: ExprPath)
        │   │   │   └── item #0 (kind: PathSegmentSimple)
        │   │   │       └── ident (kind: TokenIdentifier): 'a'
        │   │   ├── op (kind: TokenPlus): '+'
        │   │   └── rhs (kind: TokenLiteralNumber): '3'
        │   ├── separator #1 (kind: TokenComma): ','
        │   └── item #2 (kind: ExprPath)
        │       └── item #0 (kind: PathSegmentSimple)
        │           └── ident (kind: TokenIdentifier): 'b'
        └── rparen (kind: TokenRParen): ')'