Crate oq3_syntax

source ·
Expand description

Syntax Tree library used throughout the rust-analyzer.

Properties:

  • easy and fast incremental re-parsing. (Removed for OpenQASM 3, GJL)
  • graceful handling of errors
  • full-fidelity representation (any text can be precisely represented as a syntax tree)

For more information, see the RFC. Current implementation is inspired by the Swift one.

The most interesting modules here are syntax_node (which defines concrete syntax tree) and ast (which defines abstract syntax tree on top of the CST). The actual parser live in a separate parser crate, though the lexer lives in this crate.

See api_walkthrough test in this file for a quick API tour!

Re-exports§

Modules§

  • Abstract Syntax Tree, layered on top of untyped SyntaxNodes
  • This module defines Concrete Syntax Tree (CST), used by rust-analyzer.
  • Primitive tree editor, ed for trees.

Macros§

  • Matches a SyntaxNode against an ast type.

Structs§

  • Like SyntaxNodePtr, but remembers the type of node.
  • Internal node in the immutable tree. It has other nodes and tokens as children.
  • Parse is the result of the parsing: a syntax tree and a collection of errors.
  • A SmolStr is a string type that has the following properties:
  • Represents the result of unsuccessful tokenization, parsing or tree validation.
  • A range in text, represented as a pair of TextSize.
  • A measure of text length. Also, equivalently, an index into text.

Enums§

Traits§

Functions§

Type Aliases§