+4
-2
README.md
+4
-2
README.md
+2
gleam.toml
+2
gleam.toml
+5
manifest.toml
+5
manifest.toml
···
2
2
# You typically do not need to edit this file
3
3
4
4
packages = [
5
+
{ name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" },
6
+
{ name = "filepath", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "B06A9AF0BF10E51401D64B98E4B627F1D2E48C154967DA7AF4D0914780A6D40A" },
5
7
{ name = "gleam_stdlib", version = "0.65.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "7C69C71D8C493AE11A5184828A77110EB05A7786EBF8B25B36A72F879C3EE107" },
6
8
{ name = "gleeunit", version = "1.6.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "FDC68A8C492B1E9B429249062CD9BAC9B5538C6FBF584817205D0998C42E1DAC" },
9
+
{ name = "simplifile", version = "2.3.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0A868DAC6063D9E983477981839810DC2E553285AB4588B87E3E9C96A7FB4CB4" },
7
10
{ name = "splitter", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "splitter", source = "hex", outer_checksum = "05564A381580395DCDEFF4F88A64B021E8DAFA6540AE99B4623962F52976AA9D" },
8
11
]
9
12
10
13
[requirements]
14
+
argv = { version = ">= 1.0.2 and < 2.0.0" }
11
15
gleam_stdlib = { version = ">= 0.44.0 and < 2.0.0" }
12
16
gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
17
+
simplifile = { version = ">= 2.3.0 and < 3.0.0" }
13
18
splitter = { version = ">= 1.1.0 and < 2.0.0" }
+12
-7
src/run.gleam
+12
-7
src/run.gleam
···
1
+
import argv
1
2
import gbf
2
3
import gleam/io
4
+
import simplifile
3
5
4
6
pub fn main() -> Nil {
5
-
let input =
6
-
"++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."
7
+
case argv.load().arguments {
8
+
[filename] -> {
9
+
let assert Ok(source) = simplifile.read(filename)
10
+
let assert Ok(virtual_machine) = gbf.run(source)
7
11
8
-
let assert Ok(virtual_machine) = gbf.run(input)
9
-
10
-
virtual_machine
11
-
|> gbf.output
12
-
|> io.println
12
+
virtual_machine
13
+
|> gbf.output
14
+
|> io.println
15
+
}
16
+
_ -> io.println("usage: ./program filename.bf")
17
+
}
13
18
}