cairo-lang-parser 2.21.0

Cairo parser.
Documentation
//! > Test header doc trivia not aliasing same-width indentation

//! > test_runner_name
test_partial_parser_tree_with_trivia(expect_diagnostics: false)

//! > cairo_code
#[cairofmt::skip]
mod m
        {
// abc
fn foo() {}
       fn bar() {}
}

//! > top_level_kind

//! > ignored_kinds
TerminalIdentifier
FunctionSignature
ExprBlock

//! > expected_diagnostics

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   └── child #0 (kind: ItemModule)
    │       ├── attributes (kind: AttributeList)
    │       │   └── child #0 (kind: Attribute)
    │       │       ├── hash (kind: TerminalHash)
    │       │       │   ├── leading_trivia (kind: Trivia) []
    │       │       │   ├── token (kind: TokenHash): '#'
    │       │       │   └── trailing_trivia (kind: Trivia) []
    │       │       ├── lbrack (kind: TerminalLBrack)
    │       │       │   ├── leading_trivia (kind: Trivia) []
    │       │       │   ├── token (kind: TokenLBrack): '['
    │       │       │   └── trailing_trivia (kind: Trivia) []
    │       │       ├── attr (kind: ExprPath)
    │       │       │   ├── dollar (kind: OptionTerminalDollarEmpty) []
    │       │       │   └── segments (kind: ExprPathInner)
    │       │       │       ├── item #0 (kind: PathSegmentSimple)
    │       │       │       │   └── ident (kind: TerminalIdentifier) <ignored>
    │       │       │       ├── separator #0 (kind: TerminalColonColon)
    │       │       │       │   ├── leading_trivia (kind: Trivia) []
    │       │       │       │   ├── token (kind: TokenColonColon): '::'
    │       │       │       │   └── trailing_trivia (kind: Trivia) []
    │       │       │       └── item #1 (kind: PathSegmentSimple)
    │       │       │           └── ident (kind: TerminalIdentifier) <ignored>
    │       │       ├── arguments (kind: OptionArgListParenthesizedEmpty) []
    │       │       └── rbrack (kind: TerminalRBrack)
    │       │           ├── leading_trivia (kind: Trivia) []
    │       │           ├── token (kind: TokenRBrack): ']'
    │       │           └── trailing_trivia (kind: Trivia)
    │       │               └── child #0 (kind: TokenNewline).
    │       ├── visibility (kind: VisibilityDefault) []
    │       ├── module_kw (kind: TerminalModule)
    │       │   ├── leading_trivia (kind: Trivia) []
    │       │   ├── token (kind: TokenModule): 'mod'
    │       │   └── trailing_trivia (kind: Trivia)
    │       │       └── child #0 (kind: TokenWhitespace).
    │       ├── name (kind: TerminalIdentifier) <ignored>
    │       └── body (kind: ModuleBody)
    │           ├── lbrace (kind: TerminalLBrace)
    │           │   ├── leading_trivia (kind: Trivia)
    │           │   │   └── child #0 (kind: TokenWhitespace).
    │           │   ├── token (kind: TokenLBrace): '{'
    │           │   └── trailing_trivia (kind: Trivia)
    │           │       └── child #0 (kind: TokenNewline).
    │           ├── items (kind: ModuleItemList)
    │           │   ├── child #0 (kind: ItemHeaderDoc)
    │           │   │   └── empty (kind: TerminalEmpty)
    │           │   │       ├── leading_trivia (kind: Trivia)
    │           │   │       │   ├── child #0 (kind: TokenSingleLineComment): '// abc'
    │           │   │       │   └── child #1 (kind: TokenNewline).
    │           │   │       ├── token (kind: TokenEmpty): ''
    │           │   │       └── trailing_trivia (kind: Trivia) []
    │           │   ├── child #1 (kind: FunctionWithBody)
    │           │   │   ├── attributes (kind: AttributeList) []
    │           │   │   ├── visibility (kind: VisibilityDefault) []
    │           │   │   ├── declaration (kind: FunctionDeclaration)
    │           │   │   │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │           │   │   │   ├── function_kw (kind: TerminalFunction)
    │           │   │   │   │   ├── leading_trivia (kind: Trivia) []
    │           │   │   │   │   ├── token (kind: TokenFunction): 'fn'
    │           │   │   │   │   └── trailing_trivia (kind: Trivia)
    │           │   │   │   │       └── child #0 (kind: TokenWhitespace).
    │           │   │   │   ├── name (kind: TerminalIdentifier) <ignored>
    │           │   │   │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │           │   │   │   └── signature (kind: FunctionSignature) <ignored>
    │           │   │   └── body (kind: ExprBlock) <ignored>
    │           │   └── child #2 (kind: FunctionWithBody)
    │           │       ├── attributes (kind: AttributeList) []
    │           │       ├── visibility (kind: VisibilityDefault) []
    │           │       ├── declaration (kind: FunctionDeclaration)
    │           │       │   ├── optional_const (kind: OptionTerminalConstEmpty) []
    │           │       │   ├── function_kw (kind: TerminalFunction)
    │           │       │   │   ├── leading_trivia (kind: Trivia)
    │           │       │   │   │   └── child #0 (kind: TokenWhitespace).
    │           │       │   │   ├── token (kind: TokenFunction): 'fn'
    │           │       │   │   └── trailing_trivia (kind: Trivia)
    │           │       │   │       └── child #0 (kind: TokenWhitespace).
    │           │       │   ├── name (kind: TerminalIdentifier) <ignored>
    │           │       │   ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
    │           │       │   └── signature (kind: FunctionSignature) <ignored>
    │           │       └── body (kind: ExprBlock) <ignored>
    │           └── rbrace (kind: TerminalRBrace)
    │               ├── leading_trivia (kind: Trivia) []
    │               ├── token (kind: TokenRBrace): '}'
    │               └── trailing_trivia (kind: Trivia) []
    └── eof (kind: TerminalEndOfFile)
        ├── leading_trivia (kind: Trivia) []
        ├── token (kind: TokenEndOfFile).
        └── trailing_trivia (kind: Trivia) []