Splitting vasm and vasm_core

This commit is contained in:
2023-01-01 17:25:00 -06:00
parent 25afdb8890
commit 63d58b63e3
13 changed files with 47 additions and 13 deletions
+2
View File
@@ -8,6 +8,8 @@
<sourceFolder url="file://$MODULE_DIR$/vtest/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/vtest/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/vlua/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/vlua/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/vasm_core/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/vasm_core/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/vasm/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/vweb/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/target" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
Generated
+20 -2
View File
@@ -412,8 +412,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"js-sys",
"libc", "libc",
"wasi 0.10.2+wasi-snapshot-preview1", "wasi 0.10.2+wasi-snapshot-preview1",
"wasm-bindgen",
] ]
[[package]] [[package]]
@@ -1254,6 +1256,13 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]] [[package]]
name = "vasm" name = "vasm"
version = "0.1.0" version = "0.1.0"
dependencies = [
"vasm_core",
]
[[package]]
name = "vasm_core"
version = "0.1.0"
dependencies = [ dependencies = [
"pest", "pest",
"pest_derive", "pest_derive",
@@ -1264,6 +1273,7 @@ dependencies = [
name = "vcore" name = "vcore"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"getrandom",
"rand", "rand",
] ]
@@ -1273,7 +1283,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"pixels", "pixels",
"rand", "rand",
"vasm", "vasm_core",
"vcore", "vcore",
"winit", "winit",
] ]
@@ -1296,10 +1306,18 @@ dependencies = [
name = "vtest" name = "vtest"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"vasm", "vasm_core",
"vcore", "vcore",
] ]
[[package]]
name = "vweb"
version = "0.1.0"
dependencies = [
"vcore",
"wasm-bindgen",
]
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.10.2+wasi-snapshot-preview1" version = "0.10.2+wasi-snapshot-preview1"
+3 -1
View File
@@ -4,6 +4,8 @@ members = [
"vcore", "vcore",
"vemu", "vemu",
"vasm_core", "vasm_core",
"vasm",
"vtest", "vtest",
"vlua" "vlua",
"vweb"
] ]
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "vasm"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
vasm_core = { path = "../vasm_core" }
+3
View File
@@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}
+1 -1
View File
@@ -1,5 +1,5 @@
[package] [package]
name = "vasm" name = "vasm_core"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
+2 -3
View File
@@ -1,8 +1,8 @@
use std::collections::btree_map::BTreeMap;
use crate::ast::{Label, Scope, VASMLine}; use crate::ast::{Label, Scope, VASMLine};
use crate::parse_error::{AssembleError, Location}; use crate::parse_error::{AssembleError, Location};
use crate::vasm_evaluator::eval; use crate::vasm_evaluator::eval;
use crate::vasm_preprocessor::{Line, LineSource}; use crate::vasm_preprocessor::{Line, LineSource};
use std::collections::BTreeMap;
use std::fs; use std::fs;
/// This will solve all the .equ directives and return a symbol table of them. /// This will solve all the .equ directives and return a symbol table of them.
@@ -163,7 +163,7 @@ fn code_bounds(
/// bytes long and index 0 will represent 0x400. /// bytes long and index 0 will represent 0x400.
/// ``` /// ```
/// assert_eq!( /// assert_eq!(
/// vasm::assemble_snippet(".org 0x400 \n push 5 \n add 7".lines().map(String::from)), /// vasm_core::assemble_snippet(".org 0x400 \n push 5 \n add 7".lines().map(String::from)),
/// Ok(vec![0x01, 0x05, 0x05, 0x07]) /// Ok(vec![0x01, 0x05, 0x05, 0x07])
/// ) /// )
/// ``` /// ```
@@ -186,7 +186,6 @@ pub fn assemble_snippet<T: IntoIterator<Item = String>>(
pub fn assemble_file(filename: &str) -> Result<Vec<u8>, AssembleError> { pub fn assemble_file(filename: &str) -> Result<Vec<u8>, AssembleError> {
let lines = lines_from_file(filename)?; let lines = lines_from_file(filename)?;
let line_results: Vec<Result<Line, AssembleError>> = LineSource::new(filename, lines, |file| { let line_results: Vec<Result<Line, AssembleError>> = LineSource::new(filename, lines, |file| {
println!("Including {}", file);
lines_from_file(file.as_str()) lines_from_file(file.as_str())
}) })
.collect(); .collect();
+1 -1
View File
@@ -1,7 +1,7 @@
use std::collections::vec_deque::VecDeque;
use crate::ast::{Macro, VASMLine}; use crate::ast::{Macro, VASMLine};
use crate::parse_error::{AssembleError, Location}; use crate::parse_error::{AssembleError, Location};
use crate::vasm_parser::parse_vasm_line; use crate::vasm_parser::parse_vasm_line;
use std::collections::VecDeque;
use std::iter::Enumerate; use std::iter::Enumerate;
#[derive(Debug, PartialEq, Clone)] #[derive(Debug, PartialEq, Clone)]
+1
View File
@@ -6,4 +6,5 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
getrandom = { version = "0.2", features = ["js"] }
rand = "0.8.0" rand = "0.8.0"
+1 -1
View File
@@ -7,7 +7,7 @@ edition = "2021"
[dependencies] [dependencies]
vcore = { path = "../vcore" } vcore = { path = "../vcore" }
vasm = { path = "../vasm_core" } vasm_core = { path = "../vasm_core" }
rand = "0.8.0" rand = "0.8.0"
winit = "0.26.1" winit = "0.26.1"
pixels = "0.9.0" pixels = "0.9.0"
+1 -1
View File
@@ -14,7 +14,7 @@ use std::collections::VecDeque;
use std::fs::File; use std::fs::File;
use std::io::Read; use std::io::Read;
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
use vasm::{assemble_file, assemble_snippet}; use vasm_core::{assemble_file, assemble_snippet};
use vcore::cpu::CPU; use vcore::cpu::CPU;
use vcore::memory::{Memory, PeekPoke}; use vcore::memory::{Memory, PeekPoke};
use vcore::word::Word; use vcore::word::Word;
+1 -1
View File
@@ -7,4 +7,4 @@ edition = "2021"
[dependencies] [dependencies]
vcore = { path = "../vcore" } vcore = { path = "../vcore" }
vasm = { path = "../vasm_core" } vasm_core = { path = "../vasm_core" }
+2 -2
View File
@@ -1,5 +1,5 @@
use std::collections::BTreeMap; use std::collections::btree_map::BTreeMap;
use vasm::assemble_snippet; use vasm_core::assemble_snippet;
use vcore::memory::{Memory, PeekPokeExt}; use vcore::memory::{Memory, PeekPokeExt};
use vcore::word::Word; use vcore::word::Word;
use vcore::CPU; use vcore::CPU;