Skip to main content

yog_script_analyze/ast/
mod.rs

1//! The syntax tree of a Yog Script source (`docs/design/ys-grammar.md`).
2
3mod decl;
4mod expr;
5mod patch;
6mod pattern;
7mod stmt;
8
9pub use decl::{
10    Accessor, Attribute, Ctor, Decl, DeclKind, Field, Method, MethodBody, Modifier, Param, Prop,
11    TypeHeader, Variant, VersionCond,
12};
13pub use expr::{Arg, Arm, BinOp, Element, Expr, ExprKind, LambdaBody, LambdaParam, StrSeg, UnOp};
14pub use patch::{Callee, Local, Patch, PatchItem, Point, Selector, Target};
15pub use pattern::{Pattern, Type, TypeKind};
16pub use stmt::{Binding, Block, Stmt};
17
18use crate::source::token::Span;
19
20/// A name as written, and where.
21#[derive(Debug, Clone, PartialEq)]
22pub struct Name {
23    pub text: String,
24    pub span: Span,
25}
26
27/// A source file.
28#[derive(Debug, Clone, PartialEq, Default)]
29pub struct File {
30    pub decls: Vec<Decl>,
31}