mech_interpreter/
lib.rs

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
#![allow(warnings)]
#![feature(step_trait)]

extern crate nalgebra as na;
#[macro_use]
extern crate mech_core;

use mech_core::matrix::{Matrix, ToMatrix};
use mech_core::kind::Kind;
use mech_core::{Value, ValueKind, ValRef, ToValue};
use mech_core::{MechMap, MechFunction, MechRecord, MechTable, MechSet, MechTuple, MechEnum};
use mech_core::{F64, F32};
use mech_core::{Functions, FunctionsRef, FunctionDefinition, NativeFunctionCompiler, Plan, UserFunction, SymbolTableRef, SymbolTable};
use crate::stdlib::{
                    access::*,
                    assign::*,
                    convert::*,
                    horzcat::*,
                    vertcat::*,
                    math::*,
                    compare::*,
                  };
use mech_core::{MechError, MechErrorKind, hash_str, new_ref, MResult, nodes::Kind as NodeKind, nodes::Matrix as Mat, nodes::*};

use mech_matrix::*;
use mech_stats::*;
use mech_math::*;
use mech_logic::*;
use mech_range::{
  inclusive::RangeInclusive,
  exclusive::RangeExclusive,
};

use na::DMatrix;
use indexmap::set::IndexSet;
use indexmap::map::IndexMap;

pub mod literals;
pub mod structures;
pub mod interpreter;
pub mod stdlib;
pub mod functions;
pub mod statements;
pub mod expressions;
pub mod mechdown;

pub use crate::interpreter::*;
pub use crate::literals::*;
pub use crate::structures::*;
pub use crate::functions::*;
pub use crate::statements::*;
pub use crate::expressions::*;
pub use crate::mechdown::*;