1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// #![feature(trivial_bounds)]
// #![feature(never_type)]
//
// use serde::{Deserialize, Serialize};
//
// use valkyrie_errors::FileSpan;
//
// pub use crate::{
//     control_flow::{
//         for_loop::ForLoop, match_case::MatchCase, pattern::ValkyriePattern, which_case::WhichCase, while_loop::WhileLoop,
//     },
//     expression_level::{
//         binary::BinaryExpression, decimal::ValkyrieDecimalNode, dict::HeterogeneousDict, identifier::ValkyrieIdentifier,
//         integer::ValkyrieIntegerNode, list::HeterogeneousList, string::ValkyrieStringNode, unary::UnaryExpression,
//     },
//     operators::{
//         annotaiton::ValkyrieAnnotation, keywords::ValkyrieKeyword, resolver::ExpressionOrderResolver, OperatorKind,
//         UnknownOrder, ValkyrieOperator,
//     },
//     package_level::{
//         class_field::ClassFieldDeclare, class_method::ClassMethodDeclare, classes::ClassDeclare, NamespaceDeclare,
//         NamespaceKind,
//     },
// };
//
// mod control_flow;
// mod display;
// mod expression_level;
mod operators;

pub use crate::operators::{ValkyrieOperator, ValkyrieOperatorKind};

// mod package_level;
//
// #[derive(Clone, Debug, Serialize, Deserialize)]
// pub struct ValkyrieASTNode {
//     pub kind: ValkyrieASTKind,
//     pub span: FileSpan,
// }
//
// #[derive(Clone, Serialize, Deserialize)]
// pub enum ValkyrieASTKind {
//     Statement(Vec<ValkyrieASTNode>),
//     Namespace(Box<NamespaceDeclare>),
//     Class(Box<ClassDeclare>),
//     For(Box<ForLoop>),
//     While(Box<WhileLoop>),
//     Match(Box<MatchCase>),
//     Which(Box<WhichCase>),
//     Binary(Box<BinaryExpression>),
//     Unary(Box<UnaryExpression>),
//     // ()
//     // (1, )
//     // (1, 2, 3)
//     HList(Box<HeterogeneousList>),
//     HDict(Box<HeterogeneousDict>),
//     StringInterpolation(Box<ValkyrieStringNode>),
//     String(String),
//     Namepath(Vec<ValkyrieIdentifier>),
//     Integer(Box<ValkyrieIntegerNode>),
//     Decimal(Box<ValkyrieDecimalNode>),
//     Bytes(Vec<u8>),
//     Boolean(bool),
//     Null,
// }