separate ayin-game and ayin interpreter
This commit is contained in:
parent
c3bd60f475
commit
bdf9816bda
6 changed files with 39 additions and 5 deletions
|
|
@ -12,9 +12,13 @@ default-run = "ayin"
|
||||||
name = "ayin"
|
name = "ayin"
|
||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "ayin-game"
|
||||||
|
path = "src/game.rs"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "ayin"
|
name = "ayin"
|
||||||
path = "src/main.rs"
|
path = "src/ayin.rs"
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "benchmark"
|
name = "benchmark"
|
||||||
|
|
|
||||||
6
Makefile
6
Makefile
|
|
@ -12,7 +12,7 @@ test:
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run:
|
run:
|
||||||
cargo run -- games/there-she-is.ayin
|
cargo run --bin ayin-game -- games/there-she-is.ayin
|
||||||
|
|
||||||
.PHONY: review
|
.PHONY: review
|
||||||
review:
|
review:
|
||||||
|
|
@ -20,7 +20,7 @@ review:
|
||||||
|
|
||||||
.PHONY: wasm
|
.PHONY: wasm
|
||||||
wasm:
|
wasm:
|
||||||
cargo build --target wasm32-unknown-unknown --release
|
cargo build --bin ayin-game --target wasm32-unknown-unknown --release
|
||||||
cp target/wasm32-unknown-unknown/release/ayin.wasm html/
|
cp target/wasm32-unknown-unknown/release/ayin-game.wasm html/
|
||||||
cp -r assets/ html/
|
cp -r assets/ html/
|
||||||
(cd html/ && wget https://not-fl3.github.io/miniquad-samples/mq_js_bundle.js -O mq_js_bundle.js)
|
(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
16
programs/map.ayin
Normal 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
15
src/ayin.rs
Normal 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)
|
||||||
|
}
|
||||||
|
|
@ -141,7 +141,6 @@ let main = fn() {
|
||||||
#[test]
|
#[test]
|
||||||
fn direction() {
|
fn direction() {
|
||||||
let program = "
|
let program = "
|
||||||
|
|
||||||
let main = fn() {
|
let main = fn() {
|
||||||
let state = setup()
|
let state = setup()
|
||||||
update(state)
|
update(state)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue