4 files changed,
23 insertions(+),
9 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2025-10-17 16:29:09 +0300
Change ID:
wqolmwwlpvmuvqzsvtotvszuxytqkxvw
Parent:
a3c25d0
jump to
| M | README.md |
| M | gleam.toml |
| M | manifest.toml |
| M | src/run.gleam |
M
README.md
@@ -22,5 +22,7 @@ }
``` ### As CLI tool - -TODO: yet to be implemented +```bash +gleam run -m run ./examples/helloworld.bf +#> Hello World! +```
M
gleam.toml
@@ -7,6 +7,8 @@
[dependencies] gleam_stdlib = ">= 0.44.0 and < 2.0.0" splitter = ">= 1.1.0 and < 2.0.0" +argv = ">= 1.0.2 and < 2.0.0" +simplifile = ">= 2.3.0 and < 3.0.0" [dev-dependencies] gleeunit = ">= 1.0.0 and < 2.0.0"
M
manifest.toml
@@ -2,12 +2,17 @@ # This file was generated by Gleam
# You typically do not need to edit this file packages = [ + { name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" }, + { name = "filepath", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "B06A9AF0BF10E51401D64B98E4B627F1D2E48C154967DA7AF4D0914780A6D40A" }, { name = "gleam_stdlib", version = "0.65.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "7C69C71D8C493AE11A5184828A77110EB05A7786EBF8B25B36A72F879C3EE107" }, { name = "gleeunit", version = "1.6.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "FDC68A8C492B1E9B429249062CD9BAC9B5538C6FBF584817205D0998C42E1DAC" }, + { name = "simplifile", version = "2.3.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0A868DAC6063D9E983477981839810DC2E553285AB4588B87E3E9C96A7FB4CB4" }, { name = "splitter", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "splitter", source = "hex", outer_checksum = "05564A381580395DCDEFF4F88A64B021E8DAFA6540AE99B4623962F52976AA9D" }, ] [requirements] +argv = { version = ">= 1.0.2 and < 2.0.0" } gleam_stdlib = { version = ">= 0.44.0 and < 2.0.0" } gleeunit = { version = ">= 1.0.0 and < 2.0.0" } +simplifile = { version = ">= 2.3.0 and < 3.0.0" } splitter = { version = ">= 1.1.0 and < 2.0.0" }
M
src/run.gleam
@@ -1,13 +1,18 @@
+import argv import gbf import gleam/io +import simplifile pub fn main() -> Nil { - let input = - "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++." + case argv.load().arguments { + [filename] -> { + let assert Ok(source) = simplifile.read(filename) + let assert Ok(virtual_machine) = gbf.run(source) - let assert Ok(virtual_machine) = gbf.run(input) - - virtual_machine - |> gbf.output - |> io.println + virtual_machine + |> gbf.output + |> io.println + } + _ -> io.println("usage: ./program filename.bf") + } }