Skip to main content

Module ast

Module ast 

Source
Expand description

Abstract Syntax Tree definitions for Shape

This module defines the complete AST for the Shape language, supporting all features from the language specification.

Re-exports§

pub use span::Span;
pub use span::Spanned;
pub use literals::Duration;
pub use literals::DurationUnit;
pub use literals::InterpolationMode;
pub use literals::Literal;
pub use operators::BinaryOp;
pub use operators::RangeKind;
pub use operators::UnaryOp;
pub use time::DateTimeExpr;
pub use time::NamedTime;
pub use time::RelativeTime;
pub use time::TimeDirection;
pub use time::TimeReference;
pub use time::TimeUnit;
pub use time::TimeWindow;
pub use time::Timeframe;
pub use time::TimeframeUnit;
pub use data_refs::DataDateTimeRef;
pub use data_refs::DataIndex;
pub use data_refs::DataRef;
pub use docs::DocComment;
pub use docs::DocEntry;
pub use docs::DocTag;
pub use docs::DocTagKind;
pub use docs::DocTarget;
pub use docs::DocTargetKind;
pub use docs::ProgramDocs;
pub use docs::extend_method_doc_path;
pub use docs::impl_method_doc_path;
pub use docs::qualify_doc_owner_path;
pub use docs::type_annotation_doc_path;
pub use docs::type_name_doc_path;
pub use type_path::TypePath;
pub use types::EnumDef;
pub use types::EnumMember;
pub use types::EnumMemberKind;
pub use types::EnumValue;
pub use types::ExtendStatement;
pub use types::FunctionParam;
pub use types::ImplBlock;
pub use types::MethodDef;
pub use types::NativeLayoutBinding;
pub use types::ObjectTypeField;
pub use types::StructField;
pub use types::StructTypeDef;
pub use types::TraitDef;
pub use types::TraitMember;
pub use types::TraitMemberSignature;
pub use types::TypeAliasDef;
pub use types::TypeAnnotation;
pub use types::TypeName;
pub use types::TypeParam;
pub use patterns::DecompositionBinding;
pub use patterns::DestructurePattern;
pub use patterns::ObjectPatternField;
pub use patterns::Pattern;
pub use patterns::PatternConstructorFields;
pub use patterns::SweepParam;
pub use expressions::EnumConstructorPayload;
pub use expressions::Expr;
pub use expressions::ObjectEntry;
pub use expr_helpers::AssignExpr;
pub use expr_helpers::AsyncLetExpr;
pub use expr_helpers::BlockExpr;
pub use expr_helpers::BlockItem;
pub use expr_helpers::ComprehensionClause;
pub use expr_helpers::ComptimeForExpr;
pub use expr_helpers::ForExpr;
pub use expr_helpers::FromQueryExpr;
pub use expr_helpers::IfExpr;
pub use expr_helpers::JoinBranch;
pub use expr_helpers::JoinExpr;
pub use expr_helpers::JoinKind;
pub use expr_helpers::LetExpr;
pub use expr_helpers::ListComprehension;
pub use expr_helpers::LoopExpr;
pub use expr_helpers::MatchArm;
pub use expr_helpers::MatchExpr;
pub use expr_helpers::OrderBySpec;
pub use expr_helpers::QueryClause;
pub use expr_helpers::WhileExpr;
pub use statements::Block;
pub use statements::ForInit;
pub use statements::ForLoop;
pub use statements::IfStatement;
pub use statements::Statement;
pub use statements::WhileLoop;
pub use functions::Annotation;
pub use functions::AnnotationDef;
pub use functions::AnnotationHandler;
pub use functions::AnnotationHandlerParam;
pub use functions::AnnotationHandlerType;
pub use functions::AnnotationTargetKind;
pub use functions::ForeignFunctionDef;
pub use functions::FunctionDef;
pub use functions::FunctionParameter;
pub use functions::NativeAbiBinding;
pub use modules::ExportItem;
pub use modules::ExportSpec;
pub use modules::ExportStmt;
pub use modules::ImportItems;
pub use modules::ImportSpec;
pub use modules::ImportStmt;
pub use modules::ModuleDecl;
pub use queries::AlertQuery;
pub use queries::BacktestQuery;
pub use queries::Cte;
pub use queries::Query;
pub use queries::QueryModifiers;
pub use queries::WithQuery;
pub use joins::JoinClause;
pub use joins::JoinCondition;
pub use joins::JoinSource;
pub use joins::JoinType;
pub use windows::OrderByClause;
pub use windows::SortDirection;
pub use windows::WindowBound;
pub use windows::WindowExpr;
pub use windows::WindowFrame;
pub use windows::WindowFrameType;
pub use windows::WindowFunction;
pub use windows::WindowSpec;
pub use streams::StreamConfig;
pub use streams::StreamDef;
pub use streams::StreamOnError;
pub use streams::StreamOnEvent;
pub use streams::StreamOnWindow;
pub use tests::AssertStatement;
pub use tests::ExpectStatement;
pub use tests::ExpectationMatcher;
pub use tests::ShouldMatcher;
pub use tests::ShouldStatement;
pub use tests::TestCase;
pub use tests::TestDef;
pub use tests::TestFixture;
pub use tests::TestMatchOptions;
pub use tests::TestStatement;
pub use data_sources::DataSourceDecl;
pub use data_sources::QueryDecl;
pub use program::Assignment;
pub use program::BuiltinFunctionDecl;
pub use program::BuiltinTypeDecl;
pub use program::Item;
pub use program::OptimizationMetric;
pub use program::OptimizeStatement;
pub use program::OwnershipModifier;
pub use program::Program;
pub use program::VarKind;
pub use program::VariableDecl;

Modules§

data_refs
Data reference types for Shape AST
data_sources
Data source and query declaration types for Shape AST
docs
expr_helpers
Helper types for expressions in Shape AST
expressions
Core expression types for Shape AST
functions
Function definition and parameter types for Shape AST
joins
JOIN operation types for Shape AST
literals
Literal types for Shape AST
modules
Module system types for Shape AST
operators
Operator types for Shape AST
patterns
Pattern matching and destructuring types for Shape AST
program
Program structure types for Shape AST
queries
Query types for Shape AST
span
Source span tracking for AST nodes
statements
Statement types for Shape AST
streams
Stream processing types for Shape AST
tests
Test framework types for Shape AST
time
Time-related types for Shape AST
type_path
Module-qualified type path for Shape AST
types
Type system definitions for Shape AST
windows
Window function types for Shape AST