Skip to main content

endbasic_core/
lib.rs

1// EndBASIC
2// Copyright 2020 Julio Merino
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU Affero General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU Affero General Public License for more details.
13//
14// You should have received a copy of the GNU Affero General Public License
15// along with this program.  If not, see <https://www.gnu.org/licenses/>.
16
17//! The EndBASIC core language parser, compiler, and virtual machine.
18
19mod ast;
20mod bytecode;
21mod callable;
22mod compiler;
23mod image;
24mod lexer;
25mod mem;
26mod num;
27mod parser;
28mod reader;
29mod vm;
30
31pub use ast::{ArgSep, ExprType};
32pub use bytecode::{ExitCode, InvalidExitCodeError, VarArgTag};
33pub use callable::*;
34pub use compiler::{
35    Compiler, Error as CompilerError, GlobalDef, GlobalDefKind, SymbolKey, only_metadata,
36};
37pub use image::Image;
38pub use mem::ConstantDatum;
39pub use num::U24;
40pub use reader::LineCol;
41pub use vm::{GetGlobalError, GetGlobalResult, Limits, StopReason, Vm};
42
43#[cfg(test)]
44mod testutils;