valkyrie-ast 0.0.11

Strong typed abstract syntax tree of valkyrie language
Documentation
#![no_std]
#![allow(incomplete_features)]
#![feature(adt_const_params)]
#![feature(try_blocks)]

extern crate alloc;

mod control_flow;
mod expression_level;
mod helper;
mod package_level;
mod utils;

pub use crate::{
    control_flow::{
        control::{ControlNode, ControlType},
        if_else::{ConditionNode, ConditionType, ElsePart, IfStatementNode},
        looping::{ForLoopNode, PatternType, WhileLoopNode},
    },
    expression_level::{
        apply::{ApplyArgumentNode, ApplyArgumentTerm, ApplyCallNode, ApplyCallTerm, ApplyDotNode, ArgumentKeyNode},
        common::{ArgumentTermNode, CallNode, CallTermNode},
        ctor::NewConstructNode,
        generic::{GenericArgumentNode, GenericArgumentTerm, GenericCallNode, GenericCallTerm},
        lambda::{LambdaArgumentNode, LambdaCallNode, LambdaDotNode, LambdaNode},
        number::NumberLiteralNode,
        operators::{InfixNode, OperatorNode, PostfixNode, PrefixNode, ValkyrieOperator},
        string::StringLiteralNode,
        symbol::{IdentifierNode, MacroKind, MacroPathNode, NamePathNode},
        table::{TableKeyType, TableKind, TableNode, TableTermNode},
        view::{SubscriptNode, SubscriptSliceNode, SubscriptTermNode},
        ExpressionBody, ExpressionContext, ExpressionNode, PostfixCallPart,
    },
    helper::ValkyrieNode,
    package_level::{
        classes::{ClassDeclaration, ClassKind},
        documentation::DocumentationNode,
        function::{
            FunctionBodyPart, FunctionCommonPart, FunctionDeclaration, FunctionDeclarationInline, FunctionType, ModifierPart,
        },
        import::{ImportAliasNode, ImportGroupNode, ImportResolvedItem, ImportStatementNode, ImportTermNode},
        let_bind::LetBindNode,
        namespace::{NamespaceDeclarationNode, NamespaceKind},
        StatementContext, StatementNode, StatementType,
    },
};
#[cfg(feature = "pretty-print")]
pub use pretty_print::{PrettyPrint, PrettyProvider, PrettyTree};