separate ayin-game and ayin interpreter

This commit is contained in:
me 2025-12-26 00:32:46 +02:00
parent c3bd60f475
commit bdf9816bda
6 changed files with 39 additions and 5 deletions

View file

@ -12,9 +12,13 @@ default-run = "ayin"
name = "ayin"
path = "src/lib.rs"
[[bin]]
name = "ayin-game"
path = "src/game.rs"
[[bin]]
name = "ayin"
path = "src/main.rs"
path = "src/ayin.rs"
[[bench]]
name = "benchmark"

View file

@ -12,7 +12,7 @@ test:
.PHONY: run
run:
cargo run -- games/there-she-is.ayin
cargo run --bin ayin-game -- games/there-she-is.ayin
.PHONY: review
review:
@ -20,7 +20,7 @@ review:
.PHONY: wasm
wasm:
cargo build --target wasm32-unknown-unknown --release
cp target/wasm32-unknown-unknown/release/ayin.wasm html/
cargo build --bin ayin-game --target wasm32-unknown-unknown --release
cp target/wasm32-unknown-unknown/release/ayin-game.wasm html/
cp -r assets/ html/
(cd html/ && wget https://not-fl3.github.io/miniquad-samples/mq_js_bundle.js -O mq_js_bundle.js)

16
programs/map.ayin Normal file
View file

@ -0,0 +1,16 @@
let map = fn(f,array) {
let mut index = 0
loop {
if index >= array.len {
break
}
array.index = f(array.index)
index = index + 1
}
array
}
let main = fn() {
map(fn (x) { x + 1 }, [1,2,3])
}

15
src/ayin.rs Normal file
View file

@ -0,0 +1,15 @@
fn main() {
match read_file() {
Err(err) => println!("Error: {err:#?}"),
Ok(txt) => match ayin::run_main(&txt) {
Err(err) => println!("Error: {err:#?}"),
Ok(e) => println!("{e:#?}"),
},
}
}
fn read_file() -> std::io::Result<String> {
let args: Vec<String> = std::env::args().collect();
let file = args[1].clone();
std::fs::read_to_string(file)
}

View file

@ -141,7 +141,6 @@ let main = fn() {
#[test]
fn direction() {
let program = "
let main = fn() {
let state = setup()
update(state)