cairo-lang-parser 2.18.0

Cairo parser.
Documentation
//! > Test comment types

//! > test_runner_name
test_partial_parser_tree_with_trivia(expect_diagnostics: false)

//! > cairo_code
// Regular comment
//! Inner documentation comment
/// Documentation comment
fn foo() {}

//! > top_level_kind

//! > ignored_kinds
TerminalIdentifier
FunctionSignature
ExprBlock

//! > expected_diagnostics

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   ├── child #0 (kind: ItemHeaderDoc)
    │   │   └── empty (kind: TerminalEmpty)
    │   │       ├── leading_trivia (kind: Trivia)
    │   │       │   ├── child #0 (kind: TokenSingleLineComment): '// Regular comment'
    │   │       │   ├── child #1 (kind: TokenNewline).
    │   │       │   ├── child #2 (kind: TokenSingleLineInnerComment): '//! Inner documentation comment'
    │   │       │   └── child #3 (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)
    │       │   │   │   ├── child #0 (kind: TokenSingleLineDocComment): '/// Documentation comment'
    │       │   │   │   └── child #1 (kind: TokenNewline).
    │       │   │   ├── 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>
    └── eof (kind: TerminalEndOfFile)
        ├── leading_trivia (kind: Trivia) []
        ├── token (kind: TokenEndOfFile).
        └── trailing_trivia (kind: Trivia) []

//! > ==========================================================================

//! > Test comment types not on first item

//! > test_runner_name
test_partial_parser_tree_with_trivia(expect_diagnostics: false)

//! > cairo_code
fn bar() {}
// Regular comment
/// Documentation comment
//! Inner documentation comment
fn foo() {}

//! > top_level_kind

//! > ignored_kinds
TerminalIdentifier
FunctionSignature
ExprBlock

//! > expected_diagnostics

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   ├── child #0 (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 #1 (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: TokenSingleLineComment): '// Regular comment'
    │       │   │   │   ├── child #1 (kind: TokenNewline).
    │       │   │   │   ├── child #2 (kind: TokenSingleLineDocComment): '/// Documentation comment'
    │       │   │   │   ├── child #3 (kind: TokenNewline).
    │       │   │   │   ├── child #4 (kind: TokenSingleLineInnerComment): '//! Inner documentation comment'
    │       │   │   │   └── child #5 (kind: TokenNewline).
    │       │   │   ├── 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>
    └── eof (kind: TerminalEndOfFile)
        ├── leading_trivia (kind: Trivia) []
        ├── token (kind: TokenEndOfFile).
        └── trailing_trivia (kind: Trivia) []

//! > ==========================================================================

//! > Test doc comment on top

//! > test_runner_name
test_partial_parser_tree_with_trivia(expect_diagnostics: false)

//! > cairo_code
fn bar() {}
/// Documentation comment
// Regular comment
//! Inner documentation comment
fn foo() {}

//! > top_level_kind

//! > ignored_kinds
TerminalIdentifier
FunctionSignature
ExprBlock

//! > expected_diagnostics

//! > expected_tree
└── root (kind: SyntaxFile)
    ├── items (kind: ModuleItemList)
    │   ├── child #0 (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 #1 (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: TokenSingleLineDocComment): '/// Documentation comment'
    │       │   │   │   ├── child #1 (kind: TokenNewline).
    │       │   │   │   ├── child #2 (kind: TokenSingleLineComment): '// Regular comment'
    │       │   │   │   ├── child #3 (kind: TokenNewline).
    │       │   │   │   ├── child #4 (kind: TokenSingleLineInnerComment): '//! Inner documentation comment'
    │       │   │   │   └── child #5 (kind: TokenNewline).
    │       │   │   ├── 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>
    └── eof (kind: TerminalEndOfFile)
        ├── leading_trivia (kind: Trivia) []
        ├── token (kind: TokenEndOfFile).
        └── trailing_trivia (kind: Trivia) []