Trait ezno_parser::ASTNode

source ·
pub trait ASTNode: Sized + Clone + PartialEq + Debug + Sync + Send + 'static {
    // Required methods
    fn get_position(&self) -> Cow<'_, Span>;
    fn from_reader(
        reader: &mut impl TokenReader<TSXToken, Span>,
        state: &mut ParsingState,
        settings: &ParseSettings
    ) -> ParseResult<Self>;
    fn to_string_from_buffer<T: ToString>(
        &self,
        buf: &mut T,
        settings: &ToStringSettingsAndData,
        depth: u8
    );

    // Provided methods
    fn from_string(
        source: String,
        settings: ParseSettings,
        source_id: SourceId,
        offset: Option<usize>,
        cursors: Vec<(usize, EmptyCursorId)>
    ) -> ParseResult<ParseOutput<Self>> { ... }
    fn to_string(&self, settings: &ToStringSettingsAndData) -> String { ... }
}
Expand description

Defines common methods that would exist on a AST part include position in source, creation from reader and serializing to string from settings.

TODO remove partial eq

Required Methods§

source

fn get_position(&self) -> Cow<'_, Span>

Returns position of node as span AS IT WAS PARSED. May be none if AST was doesn’t match anything in source

source

fn from_reader( reader: &mut impl TokenReader<TSXToken, Span>, state: &mut ParsingState, settings: &ParseSettings ) -> ParseResult<Self>

source

fn to_string_from_buffer<T: ToString>( &self, buf: &mut T, settings: &ToStringSettingsAndData, depth: u8 )

Provided Methods§

source

fn from_string( source: String, settings: ParseSettings, source_id: SourceId, offset: Option<usize>, cursors: Vec<(usize, EmptyCursorId)> ) -> ParseResult<ParseOutput<Self>>

From string, with default impl to call abstract method from_reader

source

fn to_string(&self, settings: &ToStringSettingsAndData) -> String

Returns structure as valid string

Implementors§

source§

impl ASTNode for JSXAttribute

source§

impl ASTNode for JSXNode

source§

impl ASTNode for JSXRoot

source§

impl ASTNode for StatementOrDeclaration

source§

impl ASTNode for VariableIdentifier

source§

impl ASTNode for ClassMember

source§

impl ASTNode for Declaration

source§

impl ASTNode for ExportDeclaration

source§

impl ASTNode for ImportPart

source§

impl ASTNode for VariableDeclaration

source§

impl ASTNode for BlockOrSingleStatement

source§

impl ASTNode for PropertyKey

source§

impl ASTNode for TypeDefinitionModuleDeclaration

source§

impl ASTNode for ExpressionOrBlock

source§

impl ASTNode for VariableOrPropertyAccess

source§

impl ASTNode for Expression

source§

impl ASTNode for SpreadExpression

source§

impl ASTNode for ObjectLiteralMember

source§

impl ASTNode for FunctionHeader

source§

impl ASTNode for ForLoopCondition

source§

impl ASTNode for Statement

source§

impl ASTNode for EnumMember

source§

impl ASTNode for InterfaceMember

source§

impl ASTNode for GenericTypeConstraint

source§

impl ASTNode for TypeConditionResult

source§

impl ASTNode for TypeReference

source§

impl ASTNode for JSXElement

source§

impl ASTNode for JSXFragment

source§

impl ASTNode for ImportDeclaration

source§

impl ASTNode for ObjectLiteral

source§

impl ASTNode for MultipleExpression

source§

impl ASTNode for TemplateLiteral

source§

impl ASTNode for IsExpression

source§

impl ASTNode for FunctionParameters

source§

impl ASTNode for ConditionalElseStatement

source§

impl ASTNode for DoWhileStatement

source§

impl ASTNode for ForLoopStatement

source§

impl ASTNode for IfStatement

source§

impl ASTNode for SwitchStatement

source§

impl ASTNode for UnconditionalElseStatement

source§

impl ASTNode for VarVariableStatement

source§

impl ASTNode for WhileStatement

source§

impl ASTNode for Block

source§

impl ASTNode for Decorator

source§

impl ASTNode for Module

source§

impl ASTNode for DeclareClassDeclaration

source§

impl ASTNode for DeclareFunctionDeclaration

source§

impl ASTNode for DeclareVariableDeclaration

source§

impl ASTNode for EnumDeclaration

source§

impl ASTNode for InterfaceDeclaration

source§

impl ASTNode for InterfaceMemberBody

source§

impl ASTNode for Namespace

source§

impl ASTNode for TypeAlias

source§

impl ASTNode for TypeDeclaration

source§

impl ASTNode for TypeReferenceFunctionParameters

source§

impl<N: ASTNode> ASTNode for Decorated<N>

source§

impl<T: FunctionBased + 'static> ASTNode for FunctionBase<T>

source§

impl<T: ASTNode> ASTNode for WithComment<T>

source§

impl<TExpr: DeclarationExpression + 'static> ASTNode for VariableDeclarationItem<TExpr>

source§

impl<U: ExpressionOrStatementPosition + Debug + PartialEq + Eq + Clone + 'static> ASTNode for ClassDeclaration<U>

source§

impl<U: VariableFieldTypes> ASTNode for VariableField<U>

source§

impl<U: VariableFieldTypes> ASTNode for ArrayDestructuringField<U>

source§

impl<U: VariableFieldTypes> ASTNode for ObjectDestructuringField<U>