├── tools ├── target │ ├── debug │ │ ├── .cargo-lock │ │ ├── incremental │ │ │ └── tools-t3jw15dwmmti │ │ │ │ ├── s-f6qk00gyj9-17rm34m.lock │ │ │ │ └── s-f6qk00gyj9-17rm34m-2eximjc0svb23 │ │ │ │ ├── dep-graph.bin │ │ │ │ ├── query-cache.bin │ │ │ │ ├── 109b5gn6knthet13.o │ │ │ │ ├── 10dll7l72157nrnw.o │ │ │ │ ├── 13f6lzi70u07ixoq.o │ │ │ │ ├── 14xltj6ai7l3lrp9.o │ │ │ │ ├── 1fxepin70bvigabk.o │ │ │ │ ├── 1g7phzydaaxfhmg9.o │ │ │ │ ├── 1ketvpvurdnuwkvh.o │ │ │ │ ├── 1kvh3q25syrctyip.o │ │ │ │ ├── 1lz74ictpiddlg3b.o │ │ │ │ ├── 1qhakxklu7pxs19s.o │ │ │ │ ├── 1sjsu1ufvdobqbbb.o │ │ │ │ ├── 1yoct5oo4iuh7awc.o │ │ │ │ ├── 22ai0cgvg8kdb7ht.o │ │ │ │ ├── 235s5uio6sx21mwi.o │ │ │ │ ├── 23ft15z8hqbbntm2.o │ │ │ │ ├── 251mhpcvrbg74obg.o │ │ │ │ ├── 27md4xs505qnz5v0.o │ │ │ │ ├── 27tsdyg1y5ymsdwv.o │ │ │ │ ├── 2cy1budn2f3b1bmn.o │ │ │ │ ├── 2hw7cwpxaxk86pkm.o │ │ │ │ ├── 2k97wmgy137t2h9w.o │ │ │ │ ├── 2kinwx4z883fqeyc.o │ │ │ │ ├── 2mbe7sexiryrar9u.o │ │ │ │ ├── 2qb9kskf87tsgidz.o │ │ │ │ ├── 2v3bb6v0ubfhennh.o │ │ │ │ ├── 2zj7mpfjzvzdlxlt.o │ │ │ │ ├── 33xfl3lbrmcnq2az.o │ │ │ │ ├── 36qqt24d5bg4q7tv.o │ │ │ │ ├── 36staoz5j65o419t.o │ │ │ │ ├── 36zf6rrj8hwv37d4.o │ │ │ │ ├── 383ntyjdpsxvhbks.o │ │ │ │ ├── 38umrwjegbweqahu.o │ │ │ │ ├── 3f6r6ro4dtclxbh3.o │ │ │ │ ├── 3h868pvrrzzaf1fq.o │ │ │ │ ├── 3hzyxngsvq54qpx.o │ │ │ │ ├── 3kdxkfaqbx9pn6wv.o │ │ │ │ ├── 3lipvedfvltrf8d8.o │ │ │ │ ├── 3m9dkovck2cye9o6.o │ │ │ │ ├── 3prg5n89fdynnmwb.o │ │ │ │ ├── 3qh5v5rjrodanc2n.o │ │ │ │ ├── 3rqdri40vndkmt6a.o │ │ │ │ ├── 3sptw8503oumvbs0.o │ │ │ │ ├── 3spxxivhdp3pqfoe.o │ │ │ │ ├── 3wao8e607w9q6746.o │ │ │ │ ├── 40baeh3y63htij08.o │ │ │ │ ├── 41483ypo5m974uu8.o │ │ │ │ ├── 42476lcqn2gqwgu8.o │ │ │ │ ├── 46wicaunkmq55i90.o │ │ │ │ ├── 48dr1l2bj2mnr345.o │ │ │ │ ├── 4f0pfgq0h9ywya6c.o │ │ │ │ ├── 4jbymbcy6egz19ao.o │ │ │ │ ├── 4lg1hntwuywsyxha.o │ │ │ │ ├── 4n417lu7pn7lssfm.o │ │ │ │ ├── 4p64qe3fkecbjl91.o │ │ │ │ ├── 4qt2boht09ub1zn1.o │ │ │ │ ├── 4ufota0w9qjpv2ks.o │ │ │ │ ├── 4vssgw4a3slb9js6.o │ │ │ │ ├── 4wey6hkd3obi38yp.o │ │ │ │ ├── 51v00mct9mxjv0lb.o │ │ │ │ ├── 52cnrze1n57luk4k.o │ │ │ │ ├── 53sc4nszj4wsjl0o.o │ │ │ │ ├── 584hph8j764q917f.o │ │ │ │ ├── 5coq5mn6uhbnnzq6.o │ │ │ │ ├── 5eb0ecnem2p0lkvj.o │ │ │ │ ├── 5f8lmrt3fj5hbpwq.o │ │ │ │ ├── 5yvz64lp4dt2cr9.o │ │ │ │ ├── 8l7q37gdvvd40so.o │ │ │ │ ├── 8u86t89urijz6f3.o │ │ │ │ ├── 9fumhgzbhq1wdvl.o │ │ │ │ ├── bgigvoe43gipwtr.o │ │ │ │ ├── cdl6sx96s10ew41.o │ │ │ │ ├── cka5ml4qvhgktra.o │ │ │ │ ├── e6ajg384j36spzv.o │ │ │ │ ├── ewzhx1ctrl7p6cq.o │ │ │ │ ├── imr30bjb07dqe0b.o │ │ │ │ ├── l2tdovqm6bq64hf.o │ │ │ │ ├── m9n9pnz7vzfdc3k.o │ │ │ │ ├── mfzvbj9x0o71ay1.o │ │ │ │ ├── mqqc27npuzozid4.o │ │ │ │ ├── px32e11z5fvr1ms.o │ │ │ │ ├── rrnhc01xlu06x1g.o │ │ │ │ ├── u70yxpa839h3uih.o │ │ │ │ ├── uhygc8ca6sqp2li.o │ │ │ │ ├── vxb9grdut9iqq5d.o │ │ │ │ ├── work-products.bin │ │ │ │ ├── x04obcxbraxrsts.o │ │ │ │ ├── 109b5gn6knthet13.bc.z │ │ │ │ ├── 10dll7l72157nrnw.bc.z │ │ │ │ ├── 13f6lzi70u07ixoq.bc.z │ │ │ │ ├── 14xltj6ai7l3lrp9.bc.z │ │ │ │ ├── 1fxepin70bvigabk.bc.z │ │ │ │ ├── 1g7phzydaaxfhmg9.bc.z │ │ │ │ ├── 1ketvpvurdnuwkvh.bc.z │ │ │ │ ├── 1kvh3q25syrctyip.bc.z │ │ │ │ ├── 1lz74ictpiddlg3b.bc.z │ │ │ │ ├── 1qhakxklu7pxs19s.bc.z │ │ │ │ ├── 1sjsu1ufvdobqbbb.bc.z │ │ │ │ ├── 1yoct5oo4iuh7awc.bc.z │ │ │ │ ├── 22ai0cgvg8kdb7ht.bc.z │ │ │ │ ├── 235s5uio6sx21mwi.bc.z │ │ │ │ ├── 23ft15z8hqbbntm2.bc.z │ │ │ │ ├── 251mhpcvrbg74obg.bc.z │ │ │ │ ├── 27md4xs505qnz5v0.bc.z │ │ │ │ ├── 27tsdyg1y5ymsdwv.bc.z │ │ │ │ ├── 2cy1budn2f3b1bmn.bc.z │ │ │ │ ├── 2hw7cwpxaxk86pkm.bc.z │ │ │ │ ├── 2k97wmgy137t2h9w.bc.z │ │ │ │ ├── 2kinwx4z883fqeyc.bc.z │ │ │ │ ├── 2mbe7sexiryrar9u.bc.z │ │ │ │ ├── 2qb9kskf87tsgidz.bc.z │ │ │ │ ├── 2v3bb6v0ubfhennh.bc.z │ │ │ │ ├── 2zj7mpfjzvzdlxlt.bc.z │ │ │ │ ├── 33xfl3lbrmcnq2az.bc.z │ │ │ │ ├── 36qqt24d5bg4q7tv.bc.z │ │ │ │ ├── 36staoz5j65o419t.bc.z │ │ │ │ ├── 36zf6rrj8hwv37d4.bc.z │ │ │ │ ├── 383ntyjdpsxvhbks.bc.z │ │ │ │ ├── 38umrwjegbweqahu.bc.z │ │ │ │ ├── 3f6r6ro4dtclxbh3.bc.z │ │ │ │ ├── 3h868pvrrzzaf1fq.bc.z │ │ │ │ ├── 3hzyxngsvq54qpx.bc.z │ │ │ │ ├── 3kdxkfaqbx9pn6wv.bc.z │ │ │ │ ├── 3lipvedfvltrf8d8.bc.z │ │ │ │ ├── 3m9dkovck2cye9o6.bc.z │ │ │ │ ├── 3prg5n89fdynnmwb.bc.z │ │ │ │ ├── 3qh5v5rjrodanc2n.bc.z │ │ │ │ ├── 3rqdri40vndkmt6a.bc.z │ │ │ │ ├── 3sptw8503oumvbs0.bc.z │ │ │ │ ├── 3spxxivhdp3pqfoe.bc.z │ │ │ │ ├── 3wao8e607w9q6746.bc.z │ │ │ │ ├── 40baeh3y63htij08.bc.z │ │ │ │ ├── 41483ypo5m974uu8.bc.z │ │ │ │ ├── 42476lcqn2gqwgu8.bc.z │ │ │ │ ├── 46wicaunkmq55i90.bc.z │ │ │ │ ├── 48dr1l2bj2mnr345.bc.z │ │ │ │ ├── 4f0pfgq0h9ywya6c.bc.z │ │ │ │ ├── 4jbymbcy6egz19ao.bc.z │ │ │ │ ├── 4lg1hntwuywsyxha.bc.z │ │ │ │ ├── 4n417lu7pn7lssfm.bc.z │ │ │ │ ├── 4p64qe3fkecbjl91.bc.z │ │ │ │ ├── 4qt2boht09ub1zn1.bc.z │ │ │ │ ├── 4ufota0w9qjpv2ks.bc.z │ │ │ │ ├── 4vssgw4a3slb9js6.bc.z │ │ │ │ ├── 4wey6hkd3obi38yp.bc.z │ │ │ │ ├── 51v00mct9mxjv0lb.bc.z │ │ │ │ ├── 52cnrze1n57luk4k.bc.z │ │ │ │ ├── 53sc4nszj4wsjl0o.bc.z │ │ │ │ ├── 584hph8j764q917f.bc.z │ │ │ │ ├── 5coq5mn6uhbnnzq6.bc.z │ │ │ │ ├── 5eb0ecnem2p0lkvj.bc.z │ │ │ │ ├── 5f8lmrt3fj5hbpwq.bc.z │ │ │ │ ├── 5yvz64lp4dt2cr9.bc.z │ │ │ │ ├── 8l7q37gdvvd40so.bc.z │ │ │ │ ├── 8u86t89urijz6f3.bc.z │ │ │ │ ├── 9fumhgzbhq1wdvl.bc.z │ │ │ │ ├── bgigvoe43gipwtr.bc.z │ │ │ │ ├── cdl6sx96s10ew41.bc.z │ │ │ │ ├── cka5ml4qvhgktra.bc.z │ │ │ │ ├── e6ajg384j36spzv.bc.z │ │ │ │ ├── ewzhx1ctrl7p6cq.bc.z │ │ │ │ ├── imr30bjb07dqe0b.bc.z │ │ │ │ ├── l2tdovqm6bq64hf.bc.z │ │ │ │ ├── m9n9pnz7vzfdc3k.bc.z │ │ │ │ ├── mfzvbj9x0o71ay1.bc.z │ │ │ │ ├── mqqc27npuzozid4.bc.z │ │ │ │ ├── px32e11z5fvr1ms.bc.z │ │ │ │ ├── rrnhc01xlu06x1g.bc.z │ │ │ │ ├── u70yxpa839h3uih.bc.z │ │ │ │ ├── uhygc8ca6sqp2li.bc.z │ │ │ │ ├── vxb9grdut9iqq5d.bc.z │ │ │ │ └── x04obcxbraxrsts.bc.z │ │ ├── .fingerprint │ │ │ └── tools-c24862c3a66e8f9e │ │ │ │ ├── lib-tools-c24862c3a66e8f9e │ │ │ │ ├── dep-lib-tools-c24862c3a66e8f9e │ │ │ │ └── lib-tools-c24862c3a66e8f9e.json │ │ ├── libtools.rlib │ │ ├── deps │ │ │ ├── libtools-c24862c3a66e8f9e.rlib │ │ │ └── tools-c24862c3a66e8f9e.d │ │ └── libtools.d │ └── .rustc_info.json ├── Cargo.lock ├── Cargo.toml └── src │ ├── lib.rs │ ├── logging.rs │ ├── io_tools.rs │ ├── string_tools.rs │ ├── preprocessor.rs │ └── evaluator.rs ├── examples ├── hello_world.m ├── importing │ ├── test_import.m │ ├── main.m │ ├── num.m │ ├── logging.m │ └── fib.m ├── eval.m ├── test_expr.m ├── adventure │ ├── io.m │ ├── num.m │ ├── main.m │ └── engine.m ├── main.m ├── string_tests.m ├── num.m ├── fib.m ├── collatz.m ├── rec.m ├── parse_test.m ├── logging.m └── tic-tac-toe.m ├── .gitignore ├── src ├── .DS_Store └── main.rs ├── Cargo.toml ├── Cargo.lock ├── LICENSE └── README.md /tools/target/debug/.cargo-lock: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/hello_world.m: -------------------------------------------------------------------------------- 1 | PutStrln["Hello world!"] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.vscode 3 | /.DS_Store 4 | **/*.rs.bk 5 | -------------------------------------------------------------------------------- /examples/importing/test_import.m: -------------------------------------------------------------------------------- 1 | a = 9 2 | 3 | PutStrln[ToStr[a]] -------------------------------------------------------------------------------- /tools/Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "tools" 3 | version = "0.1.0" 4 | 5 | -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m.lock: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/eval.m: -------------------------------------------------------------------------------- 1 | // "Putln[test]" @eval 2 | Eval[ 3 | "Putln[ToStr[Test]]" 4 | ] -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/src/.DS_Store -------------------------------------------------------------------------------- /examples/test_expr.m: -------------------------------------------------------------------------------- 1 | l1 = Pair["A"][Pair["B"]["C"]] 2 | PutStrln[ 3 | Tail[Tail[l1]] 4 | ] -------------------------------------------------------------------------------- /tools/target/debug/.fingerprint/tools-c24862c3a66e8f9e/lib-tools-c24862c3a66e8f9e: -------------------------------------------------------------------------------- 1 | e6c9e2f7aa6e4615 -------------------------------------------------------------------------------- /tools/target/debug/libtools.rlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/libtools.rlib -------------------------------------------------------------------------------- /tools/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tools" 3 | version = "0.1.0" 4 | authors = ["adam-mcdaniel "] 5 | 6 | [dependencies] 7 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "maroon" 3 | version = "1.1.0" 4 | authors = ["adam-mcdaniel "] 5 | 6 | [dependencies] 7 | tools = {path="tools"} -------------------------------------------------------------------------------- /tools/target/debug/deps/libtools-c24862c3a66e8f9e.rlib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/deps/libtools-c24862c3a66e8f9e.rlib -------------------------------------------------------------------------------- /tools/target/debug/.fingerprint/tools-c24862c3a66e8f9e/dep-lib-tools-c24862c3a66e8f9e: -------------------------------------------------------------------------------- 1 | src/lib.rssrc/evaluator.rssrc/io_tools.rssrc/logging.rssrc/preprocessor.rssrc/string_tools.rs -------------------------------------------------------------------------------- /examples/adventure/io.m: -------------------------------------------------------------------------------- 1 | PsuedoPrompt = Pipe_Fn_Early.Early_Pipe_Val.(v.()[Pipe_Fn_Early[_]] Early_Pipe_Val[_]) 2 | Prompt = Prompt_Str.(PsuedoPrompt[call_me.(PutStr[Prompt_Str])] [Input]) 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "maroon" 3 | version = "1.1.0" 4 | dependencies = [ 5 | "tools 0.1.0", 6 | ] 7 | 8 | [[package]] 9 | name = "tools" 10 | version = "0.1.0" 11 | 12 | -------------------------------------------------------------------------------- /examples/main.m: -------------------------------------------------------------------------------- 1 | // Import["hmm"] 2 | 3 | PutStrln["hello!()[] @input"] 4 | 5 | PutStr[">> "] 6 | RESPONSE = Input[_] 7 | PutStrln[ 8 | If[Eq[RESPONSE]["hello!()[] @input"]] 9 | [":)"] 10 | [":("] 11 | ] 12 | -------------------------------------------------------------------------------- /examples/importing/main.m: -------------------------------------------------------------------------------- 1 | Import["logging"] 2 | Import["fib"] 3 | Import["num"] 4 | 5 | Info["test"] 6 | Debug["test"] 7 | Warning["test"] 8 | Error["test"] 9 | 10 | 11 | map_fib[PrintNumln][Succ[Succ[Succ[Succ[Succ[1]]]]]] 12 | -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/dep-graph.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/dep-graph.bin -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/query-cache.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/query-cache.bin -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/109b5gn6knthet13.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/109b5gn6knthet13.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/10dll7l72157nrnw.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/10dll7l72157nrnw.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/13f6lzi70u07ixoq.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/13f6lzi70u07ixoq.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/14xltj6ai7l3lrp9.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/14xltj6ai7l3lrp9.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1fxepin70bvigabk.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1fxepin70bvigabk.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1g7phzydaaxfhmg9.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1g7phzydaaxfhmg9.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1ketvpvurdnuwkvh.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1ketvpvurdnuwkvh.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1kvh3q25syrctyip.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1kvh3q25syrctyip.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1lz74ictpiddlg3b.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1lz74ictpiddlg3b.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1qhakxklu7pxs19s.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1qhakxklu7pxs19s.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1sjsu1ufvdobqbbb.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1sjsu1ufvdobqbbb.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1yoct5oo4iuh7awc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1yoct5oo4iuh7awc.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/22ai0cgvg8kdb7ht.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/22ai0cgvg8kdb7ht.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/235s5uio6sx21mwi.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/235s5uio6sx21mwi.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/23ft15z8hqbbntm2.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/23ft15z8hqbbntm2.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/251mhpcvrbg74obg.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/251mhpcvrbg74obg.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27md4xs505qnz5v0.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27md4xs505qnz5v0.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27tsdyg1y5ymsdwv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27tsdyg1y5ymsdwv.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2cy1budn2f3b1bmn.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2cy1budn2f3b1bmn.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2hw7cwpxaxk86pkm.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2hw7cwpxaxk86pkm.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2k97wmgy137t2h9w.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2k97wmgy137t2h9w.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2kinwx4z883fqeyc.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2kinwx4z883fqeyc.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2mbe7sexiryrar9u.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2mbe7sexiryrar9u.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2qb9kskf87tsgidz.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2qb9kskf87tsgidz.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2v3bb6v0ubfhennh.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2v3bb6v0ubfhennh.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2zj7mpfjzvzdlxlt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2zj7mpfjzvzdlxlt.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/33xfl3lbrmcnq2az.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/33xfl3lbrmcnq2az.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36qqt24d5bg4q7tv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36qqt24d5bg4q7tv.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36staoz5j65o419t.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36staoz5j65o419t.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36zf6rrj8hwv37d4.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36zf6rrj8hwv37d4.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/383ntyjdpsxvhbks.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/383ntyjdpsxvhbks.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/38umrwjegbweqahu.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/38umrwjegbweqahu.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3f6r6ro4dtclxbh3.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3f6r6ro4dtclxbh3.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3h868pvrrzzaf1fq.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3h868pvrrzzaf1fq.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3hzyxngsvq54qpx.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3hzyxngsvq54qpx.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3kdxkfaqbx9pn6wv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3kdxkfaqbx9pn6wv.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3lipvedfvltrf8d8.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3lipvedfvltrf8d8.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3m9dkovck2cye9o6.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3m9dkovck2cye9o6.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3prg5n89fdynnmwb.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3prg5n89fdynnmwb.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3qh5v5rjrodanc2n.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3qh5v5rjrodanc2n.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3rqdri40vndkmt6a.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3rqdri40vndkmt6a.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3sptw8503oumvbs0.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3sptw8503oumvbs0.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3spxxivhdp3pqfoe.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3spxxivhdp3pqfoe.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3wao8e607w9q6746.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3wao8e607w9q6746.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/40baeh3y63htij08.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/40baeh3y63htij08.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/41483ypo5m974uu8.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/41483ypo5m974uu8.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/42476lcqn2gqwgu8.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/42476lcqn2gqwgu8.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/46wicaunkmq55i90.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/46wicaunkmq55i90.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/48dr1l2bj2mnr345.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/48dr1l2bj2mnr345.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4f0pfgq0h9ywya6c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4f0pfgq0h9ywya6c.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4jbymbcy6egz19ao.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4jbymbcy6egz19ao.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4lg1hntwuywsyxha.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4lg1hntwuywsyxha.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4n417lu7pn7lssfm.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4n417lu7pn7lssfm.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4p64qe3fkecbjl91.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4p64qe3fkecbjl91.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4qt2boht09ub1zn1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4qt2boht09ub1zn1.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4ufota0w9qjpv2ks.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4ufota0w9qjpv2ks.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4vssgw4a3slb9js6.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4vssgw4a3slb9js6.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4wey6hkd3obi38yp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4wey6hkd3obi38yp.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/51v00mct9mxjv0lb.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/51v00mct9mxjv0lb.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/52cnrze1n57luk4k.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/52cnrze1n57luk4k.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/53sc4nszj4wsjl0o.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/53sc4nszj4wsjl0o.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/584hph8j764q917f.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/584hph8j764q917f.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5coq5mn6uhbnnzq6.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5coq5mn6uhbnnzq6.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5eb0ecnem2p0lkvj.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5eb0ecnem2p0lkvj.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5f8lmrt3fj5hbpwq.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5f8lmrt3fj5hbpwq.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5yvz64lp4dt2cr9.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5yvz64lp4dt2cr9.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8l7q37gdvvd40so.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8l7q37gdvvd40so.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8u86t89urijz6f3.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8u86t89urijz6f3.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/9fumhgzbhq1wdvl.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/9fumhgzbhq1wdvl.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/bgigvoe43gipwtr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/bgigvoe43gipwtr.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cdl6sx96s10ew41.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cdl6sx96s10ew41.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cka5ml4qvhgktra.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cka5ml4qvhgktra.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/e6ajg384j36spzv.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/e6ajg384j36spzv.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/ewzhx1ctrl7p6cq.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/ewzhx1ctrl7p6cq.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/imr30bjb07dqe0b.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/imr30bjb07dqe0b.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/l2tdovqm6bq64hf.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/l2tdovqm6bq64hf.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/m9n9pnz7vzfdc3k.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/m9n9pnz7vzfdc3k.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mfzvbj9x0o71ay1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mfzvbj9x0o71ay1.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mqqc27npuzozid4.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mqqc27npuzozid4.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/px32e11z5fvr1ms.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/px32e11z5fvr1ms.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/rrnhc01xlu06x1g.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/rrnhc01xlu06x1g.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/u70yxpa839h3uih.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/u70yxpa839h3uih.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/uhygc8ca6sqp2li.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/uhygc8ca6sqp2li.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/vxb9grdut9iqq5d.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/vxb9grdut9iqq5d.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/work-products.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/work-products.bin -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/x04obcxbraxrsts.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/x04obcxbraxrsts.o -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/109b5gn6knthet13.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/109b5gn6knthet13.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/10dll7l72157nrnw.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/10dll7l72157nrnw.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/13f6lzi70u07ixoq.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/13f6lzi70u07ixoq.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/14xltj6ai7l3lrp9.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/14xltj6ai7l3lrp9.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1fxepin70bvigabk.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1fxepin70bvigabk.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1g7phzydaaxfhmg9.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1g7phzydaaxfhmg9.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1ketvpvurdnuwkvh.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1ketvpvurdnuwkvh.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1kvh3q25syrctyip.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1kvh3q25syrctyip.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1lz74ictpiddlg3b.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1lz74ictpiddlg3b.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1qhakxklu7pxs19s.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1qhakxklu7pxs19s.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1sjsu1ufvdobqbbb.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1sjsu1ufvdobqbbb.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1yoct5oo4iuh7awc.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/1yoct5oo4iuh7awc.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/22ai0cgvg8kdb7ht.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/22ai0cgvg8kdb7ht.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/235s5uio6sx21mwi.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/235s5uio6sx21mwi.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/23ft15z8hqbbntm2.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/23ft15z8hqbbntm2.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/251mhpcvrbg74obg.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/251mhpcvrbg74obg.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27md4xs505qnz5v0.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27md4xs505qnz5v0.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27tsdyg1y5ymsdwv.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/27tsdyg1y5ymsdwv.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2cy1budn2f3b1bmn.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2cy1budn2f3b1bmn.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2hw7cwpxaxk86pkm.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2hw7cwpxaxk86pkm.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2k97wmgy137t2h9w.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2k97wmgy137t2h9w.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2kinwx4z883fqeyc.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2kinwx4z883fqeyc.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2mbe7sexiryrar9u.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2mbe7sexiryrar9u.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2qb9kskf87tsgidz.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2qb9kskf87tsgidz.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2v3bb6v0ubfhennh.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2v3bb6v0ubfhennh.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2zj7mpfjzvzdlxlt.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/2zj7mpfjzvzdlxlt.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/33xfl3lbrmcnq2az.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/33xfl3lbrmcnq2az.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36qqt24d5bg4q7tv.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36qqt24d5bg4q7tv.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36staoz5j65o419t.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36staoz5j65o419t.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36zf6rrj8hwv37d4.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/36zf6rrj8hwv37d4.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/383ntyjdpsxvhbks.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/383ntyjdpsxvhbks.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/38umrwjegbweqahu.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/38umrwjegbweqahu.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3f6r6ro4dtclxbh3.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3f6r6ro4dtclxbh3.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3h868pvrrzzaf1fq.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3h868pvrrzzaf1fq.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3hzyxngsvq54qpx.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3hzyxngsvq54qpx.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3kdxkfaqbx9pn6wv.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3kdxkfaqbx9pn6wv.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3lipvedfvltrf8d8.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3lipvedfvltrf8d8.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3m9dkovck2cye9o6.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3m9dkovck2cye9o6.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3prg5n89fdynnmwb.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3prg5n89fdynnmwb.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3qh5v5rjrodanc2n.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3qh5v5rjrodanc2n.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3rqdri40vndkmt6a.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3rqdri40vndkmt6a.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3sptw8503oumvbs0.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3sptw8503oumvbs0.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3spxxivhdp3pqfoe.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3spxxivhdp3pqfoe.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3wao8e607w9q6746.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/3wao8e607w9q6746.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/40baeh3y63htij08.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/40baeh3y63htij08.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/41483ypo5m974uu8.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/41483ypo5m974uu8.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/42476lcqn2gqwgu8.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/42476lcqn2gqwgu8.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/46wicaunkmq55i90.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/46wicaunkmq55i90.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/48dr1l2bj2mnr345.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/48dr1l2bj2mnr345.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4f0pfgq0h9ywya6c.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4f0pfgq0h9ywya6c.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4jbymbcy6egz19ao.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4jbymbcy6egz19ao.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4lg1hntwuywsyxha.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4lg1hntwuywsyxha.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4n417lu7pn7lssfm.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4n417lu7pn7lssfm.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4p64qe3fkecbjl91.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4p64qe3fkecbjl91.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4qt2boht09ub1zn1.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4qt2boht09ub1zn1.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4ufota0w9qjpv2ks.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4ufota0w9qjpv2ks.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4vssgw4a3slb9js6.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4vssgw4a3slb9js6.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4wey6hkd3obi38yp.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/4wey6hkd3obi38yp.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/51v00mct9mxjv0lb.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/51v00mct9mxjv0lb.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/52cnrze1n57luk4k.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/52cnrze1n57luk4k.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/53sc4nszj4wsjl0o.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/53sc4nszj4wsjl0o.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/584hph8j764q917f.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/584hph8j764q917f.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5coq5mn6uhbnnzq6.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5coq5mn6uhbnnzq6.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5eb0ecnem2p0lkvj.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5eb0ecnem2p0lkvj.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5f8lmrt3fj5hbpwq.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5f8lmrt3fj5hbpwq.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5yvz64lp4dt2cr9.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/5yvz64lp4dt2cr9.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8l7q37gdvvd40so.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8l7q37gdvvd40so.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8u86t89urijz6f3.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/8u86t89urijz6f3.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/9fumhgzbhq1wdvl.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/9fumhgzbhq1wdvl.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/bgigvoe43gipwtr.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/bgigvoe43gipwtr.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cdl6sx96s10ew41.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cdl6sx96s10ew41.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cka5ml4qvhgktra.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/cka5ml4qvhgktra.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/e6ajg384j36spzv.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/e6ajg384j36spzv.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/ewzhx1ctrl7p6cq.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/ewzhx1ctrl7p6cq.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/imr30bjb07dqe0b.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/imr30bjb07dqe0b.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/l2tdovqm6bq64hf.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/l2tdovqm6bq64hf.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/m9n9pnz7vzfdc3k.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/m9n9pnz7vzfdc3k.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mfzvbj9x0o71ay1.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mfzvbj9x0o71ay1.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mqqc27npuzozid4.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/mqqc27npuzozid4.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/px32e11z5fvr1ms.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/px32e11z5fvr1ms.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/rrnhc01xlu06x1g.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/rrnhc01xlu06x1g.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/u70yxpa839h3uih.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/u70yxpa839h3uih.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/uhygc8ca6sqp2li.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/uhygc8ca6sqp2li.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/vxb9grdut9iqq5d.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/vxb9grdut9iqq5d.bc.z -------------------------------------------------------------------------------- /tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/x04obcxbraxrsts.bc.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adam-mcdaniel/maroon-lang/HEAD/tools/target/debug/incremental/tools-t3jw15dwmmti/s-f6qk00gyj9-17rm34m-2eximjc0svb23/x04obcxbraxrsts.bc.z -------------------------------------------------------------------------------- /examples/importing/num.m: -------------------------------------------------------------------------------- 1 | 2 | NumToStr = NumToStr_A.( 3 | Pred[NumToStr_A] 4 | [ 5 | thingy.(Concat["."][thingy]) 6 | ]["."] 7 | ) 8 | 9 | PrintNum = PipeFn[number.((number[PipeStr]["."]))] 10 | 11 | PrintNumln = num_ln.( 12 | Newln[PrintNum[num_ln]] 13 | ) 14 | -------------------------------------------------------------------------------- /tools/target/debug/.fingerprint/tools-c24862c3a66e8f9e/lib-tools-c24862c3a66e8f9e.json: -------------------------------------------------------------------------------- 1 | {"rustc":7311099760834594431,"features":"[]","target":693117022772599604,"profile":15576251821211832014,"path":10872709659218687626,"deps":[],"local":[{"MtimeBased":[[1542407016,224253848],".fingerprint/tools-c24862c3a66e8f9e/dep-lib-tools-c24862c3a66e8f9e"]}],"rustflags":[],"edition":"Edition2015"} -------------------------------------------------------------------------------- /tools/target/debug/libtools.d: -------------------------------------------------------------------------------- 1 | /home/adam/Desktop/maroon/tools/target/debug/libtools.rlib: /home/adam/Desktop/maroon/tools/src/evaluator.rs /home/adam/Desktop/maroon/tools/src/io_tools.rs /home/adam/Desktop/maroon/tools/src/lib.rs /home/adam/Desktop/maroon/tools/src/logging.rs /home/adam/Desktop/maroon/tools/src/preprocessor.rs /home/adam/Desktop/maroon/tools/src/string_tools.rs 2 | -------------------------------------------------------------------------------- /examples/importing/logging.m: -------------------------------------------------------------------------------- 1 | Log = Log_A.Log_B.( 2 | PipeFn[c.(PipeFn[a.(PipeStrln[Log_B])][PipeStr[Log_A]])][Log_B] 3 | ) 4 | 5 | Info = Info_A.(Log["=( INFO )====> "][Info_A]) 6 | Debug = Debug_A.(Log["=| DEBUG |===> "][Debug_A]) 7 | Warning = Warning_A.(Log["={ WARNING }=> "][Warning_A]) 8 | Error = Error_A.(Log["=[ ERROR ]===> "][Error_A]) 9 | 10 | Good = True 11 | Bad = Bad_A.Bad_B.Bad_B -------------------------------------------------------------------------------- /tools/src/lib.rs: -------------------------------------------------------------------------------- 1 | // #[cfg(test)] 2 | // mod tests { 3 | // #[test] 4 | // fn it_works() { 5 | // assert_eq!(2 + 2, 4); 6 | // } 7 | // } 8 | 9 | pub mod evaluator; 10 | pub mod io_tools; 11 | pub mod logging; 12 | pub mod preprocessor; 13 | pub mod string_tools; 14 | 15 | // pub use evaluator; 16 | // pub use io_tools; 17 | // pub use logging; 18 | // pub use preprocessor; 19 | // pub use string_tools; 20 | -------------------------------------------------------------------------------- /examples/string_tests.m: -------------------------------------------------------------------------------- 1 | 2 = Succ[1] 2 | 3 = Succ[2] 3 | 4 = Succ[3] 4 | 5 = Succ[4] 5 | 6 | PutStrln[ 7 | RangeStr["Test"][0][4] 8 | ] 9 | 10 | PutStrln[ 11 | IndexStr["Test"][3] 12 | ] 13 | 14 | PutStrln[ 15 | Replace[ 16 | Replace["Test :Thing:"] 17 | ["Thing"]["up"] 18 | ]["Test"][":hmm:"] 19 | ] 20 | 21 | PutStrln[ 22 | If[In["Test"]["es"]] 23 | ["True"] 24 | ["False"] 25 | ] -------------------------------------------------------------------------------- /examples/importing/fib.m: -------------------------------------------------------------------------------- 1 | Import["num"] 2 | 3 | 4 | fib = Fib_N.(Head[Fib_N[ 5 | old_pair.( 6 | Pair[Add[Head[old_pair]][Tail[old_pair]]][Head[old_pair]] 7 | ) 8 | ][Pair[1][0]]] 9 | ) 10 | 11 | 12 | map_fib = Map_Fib_F.Map_Fib_N.(Head[Map_Fib_N[ 13 | old_pair.( 14 | Pair[Add[Map_Fib_F[Head[old_pair]]][Tail[old_pair]]][Head[old_pair]] 15 | ) 16 | ][Pair[1][0]]] 17 | ) 18 | 19 | 20 | -------------------------------------------------------------------------------- /tools/target/debug/deps/tools-c24862c3a66e8f9e.d: -------------------------------------------------------------------------------- 1 | /home/adam/Desktop/maroon/tools/target/debug/deps/libtools-c24862c3a66e8f9e.rlib: src/lib.rs src/evaluator.rs src/io_tools.rs src/logging.rs src/preprocessor.rs src/string_tools.rs 2 | 3 | /home/adam/Desktop/maroon/tools/target/debug/deps/tools-c24862c3a66e8f9e.d: src/lib.rs src/evaluator.rs src/io_tools.rs src/logging.rs src/preprocessor.rs src/string_tools.rs 4 | 5 | src/lib.rs: 6 | src/evaluator.rs: 7 | src/io_tools.rs: 8 | src/logging.rs: 9 | src/preprocessor.rs: 10 | src/string_tools.rs: 11 | -------------------------------------------------------------------------------- /examples/num.m: -------------------------------------------------------------------------------- 1 | 2 = Succ[1] 2 | 3 = Succ[2] 3 | 4 = Succ[3] 4 | 5 = Succ[4] 5 | 6 = Succ[5] 6 | 7 = Succ[6] 7 | 8 = Succ[7] 8 | 9 = Succ[8] 9 | 10 = Succ[9] 10 | 11 | PrintNum = Num.( 12 | PipeFn[ 13 | number.((number[PipeStr]["."])) 14 | ][Num] 15 | ) 16 | 17 | PrintNumln = num_ln.( 18 | Newln[PrintNum[num_ln]] 19 | ) 20 | 21 | PrintNumln[ 22 | Sub[3][1] 23 | ] 24 | PrintNumln[ 25 | Sub[3][1] 26 | ] 27 | 28 | PrintNumln[ 29 | Mul[3][4] 30 | ] 31 | 32 | PrintNumln[ 33 | Mul[3][Mul[2][2]] 34 | ] 35 | 36 | 37 | 38 | PrintNumln[ 39 | Add[3][4] 40 | ] 41 | 42 | PrintNumln[ 43 | Add[3][Add[2][2]] 44 | ] 45 | 46 | 47 | 48 | PrintNumln[ 49 | Sub[10][Sub[6][2]] 50 | ] -------------------------------------------------------------------------------- /examples/fib.m: -------------------------------------------------------------------------------- 1 | 2 = Succ[1] 2 | 3 = Succ[2] 3 | 4 = Succ[3] 4 | 5 = Succ[4] 5 | 6 = Succ[5] 6 | 7 = Succ[6] 7 | 8 = Succ[7] 8 | 9 = Succ[8] 9 | 10 = Succ[9] 10 | 11 = Succ[10] 11 | 12 = Succ[11] 12 | 13 = Succ[12] 13 | 14 = Succ[13] 14 | 15 = Succ[14] 15 | 16 = Succ[15] 16 | 17 = Succ[16] 17 | 18 = Succ[17] 18 | 19 = Succ[18] 19 | 20 = Succ[19] 20 | 21 | PrintNum = Num.( 22 | PipeFn[pass.(PutStr[NumToStr[Num]])][Num] 23 | ) 24 | 25 | PrintNumln = num_ln.( 26 | Newln[PrintNum[num_ln]] 27 | ) 28 | 29 | fib = n.(Head[n[ 30 | old_pair.( 31 | Pair[Add[PrintNumln[Head[old_pair]]][Tail[old_pair]]][Head[old_pair]] 32 | ) 33 | ][Pair[1][0]]] 34 | ) 35 | 36 | 37 | PrintNumln[fib[ 38 | 14 39 | ]] 40 | -------------------------------------------------------------------------------- /examples/adventure/num.m: -------------------------------------------------------------------------------- 1 | Import["io"] 2 | 3 | GetNum = Str.(StrToNum[Prompt[Str]]) 4 | 5 | 2 = Succ[1] 6 | 3 = Succ[2] 7 | 4 = Succ[3] 8 | 5 = Succ[4] 9 | 6 = Succ[5] 10 | 7 = Succ[6] 11 | 8 = Succ[7] 12 | 9 = Succ[8] 13 | 14 | PrintNum = N.( 15 | StrToNum[PutStrln[NumToStr[N]]] 16 | ) 17 | 18 | Even = N.(Eq[Mod[N][2]][0]) 19 | 20 | Random = S.( 21 | If[Eq[S][0]][ 22 | StrToNum["165"] 23 | ][ 24 | If[Eq[S][1]][ 25 | StrToNum["131"] 26 | ][ 27 | If[Eq[S][3]][ 28 | StrToNum["169"] 29 | ][ 30 | If[Even[S]] 31 | [Add[Mul[S][3]][7]] 32 | [Div[Sub[S][3]][2]] 33 | ] 34 | ] 35 | ] 36 | ) -------------------------------------------------------------------------------- /tools/src/logging.rs: -------------------------------------------------------------------------------- 1 | use std::fmt::*; 2 | 3 | // def info(s): 4 | // print("=( INFO )====>", s) 5 | 6 | #[allow(dead_code)] 7 | pub fn info(s: T) { 8 | println!("=( INFO )====> {}", s); 9 | } 10 | 11 | // def debug(s): 12 | // print("=| DEBUG |===>", s) 13 | #[allow(dead_code)] 14 | pub fn debug(s: T) { 15 | println!("=| DEBUG |===> {}", s); 16 | } 17 | 18 | // def warning(s): 19 | // print("={ WARNING }=>", s) 20 | #[allow(dead_code)] 21 | pub fn warning(s: T) { 22 | println!("={{ WARNING }}=> {}", s); 23 | } 24 | 25 | // def error(s): 26 | // print("=[ ERROR ]===>", s) 27 | #[allow(dead_code)] 28 | pub fn error(s: T) { 29 | println!("=[ ERROR ]===> {}", s); 30 | } 31 | -------------------------------------------------------------------------------- /examples/collatz.m: -------------------------------------------------------------------------------- 1 | 2 = Succ[1] 2 | 3 = Succ[2] 3 | 4 = Succ[3] 4 | 5 = Succ[4] 5 | 6 = Succ[5] 6 | 7 = Succ[6] 7 | 8 = Succ[7] 8 | 9 = Succ[8] 9 | 10 = Succ[9] 10 | 11 = Succ[10] 11 | 12 = Succ[11] 12 | 13 = Succ[12] 13 | 14 | 15 | PrintNum = Num.( 16 | PipeFn[pass.(PutStr[NumToStr[Num]])][Num] 17 | ) 18 | 19 | PrintNumln = num_ln.( 20 | Newln[PrintNum[num_ln]] 21 | ) 22 | 23 | 24 | Even = N.( 25 | Eq[Mod[N][2]][0] 26 | ) 27 | 28 | Step_Collatz = N.( 29 | PipeFn[pass.(PrintNumln[N])][If[Even[N]] 30 | [pass.(Div[N][2])] 31 | [pass.(Add[Mul[N][3]][1])] 32 | [_]] 33 | ) 34 | 35 | Collatz = N.( 36 | If[Eq[N][1]] 37 | [pass.(PipeFn[pass.(PrintNumln[N])][Break[_]])] 38 | [Step_Collatz] 39 | [N] 40 | ) 41 | 42 | 43 | Rec[Collatz][Mul[13][3]] -------------------------------------------------------------------------------- /examples/rec.m: -------------------------------------------------------------------------------- 1 | 2 | Main = State.( 3 | USER.( 4 | If[Eq[State]["Run"]] 5 | [ 6 | If[Eq[USER]["okay"]] 7 | ["Come on"] 8 | ["Run"] 9 | ] 10 | [ 11 | If[Eq[State]["Come on"]] 12 | [ 13 | If[Eq[USER]["im trying"]] 14 | ["Youre almost there"] 15 | ["Run"] 16 | ] 17 | [ 18 | If[Eq[State]["Youre almost there"]] 19 | [Break[_]] 20 | ["Run"] 21 | ] 22 | ] 23 | )[Input[_]] 24 | ) 25 | 26 | starting_state = "Run" 27 | 28 | PutStrln[starting_state] 29 | Rec[(s.(PipeStrln[Main[s]]))][starting_state] 30 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::env; 2 | use std::process; 3 | 4 | extern crate tools; 5 | 6 | use tools::evaluator::*; 7 | use tools::io_tools::*; 8 | use tools::logging::*; 9 | // use tools::string_tools::*; 10 | use tools::preprocessor::*; 11 | 12 | fn main() { 13 | let args: Vec = env::args().collect(); 14 | 15 | if args.len() == 1 { 16 | error("No filename"); 17 | process::exit(0); 18 | } 19 | 20 | // println!("test: {}", remove_escape_codes(&add_escape_codes("hello![]()=\\.world!"))); 21 | 22 | let mut preprocessor = Preprocessor::new(); 23 | 24 | let script = readlines(&args[1]); 25 | let processed_script = Preprocessor::get_expressions(script); 26 | 27 | // println!("{:?}", processed_script); 28 | 29 | for line in Preprocessor::get_expressions(processed_script) { 30 | Evaluator::new(&preprocessor.process(&line), &line).eval(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /examples/parse_test.m: -------------------------------------------------------------------------------- 1 | PutStrln["AND Truth Table"] 2 | Putln[ 3 | And[True][True] 4 | ] 5 | Putln[ 6 | And[True][False] 7 | ] 8 | Putln[ 9 | And[False][True] 10 | ] 11 | Putln[ 12 | And[False][False] 13 | ] 14 | 15 | 16 | PutStrln["OR Truth Table"] 17 | Putln[ 18 | Or[True][True] 19 | ] 20 | Putln[ 21 | Or[True][False] 22 | ] 23 | Putln[ 24 | Or[False][True] 25 | ] 26 | Putln[ 27 | Or[False][False] 28 | ] 29 | 30 | 31 | PutStrln["NOT Truth Table"] 32 | Putln[ 33 | Not[True] 34 | ] 35 | Putln[ 36 | Not[False] 37 | ] 38 | 39 | 40 | PutStrln["NAND Truth Table"] 41 | Putln[ 42 | Nand[True][True] 43 | ] 44 | Putln[ 45 | Nand[True][False] 46 | ] 47 | Putln[ 48 | Nand[False][True] 49 | ] 50 | Putln[ 51 | Nand[False][False] 52 | ] 53 | 54 | 55 | PutStrln["XOR Truth Table"] 56 | Putln[ 57 | Xor[True][True] 58 | ] 59 | Putln[ 60 | Xor[True][False] 61 | ] 62 | Putln[ 63 | Xor[False][True] 64 | ] 65 | Putln[ 66 | Xor[False][False] 67 | ] 68 | -------------------------------------------------------------------------------- /examples/logging.m: -------------------------------------------------------------------------------- 1 | Log = Log_A.Log_B.( 2 | PipeFn[c.(PipeFn[a.(PipeStrln[Log_B])][PipeStr[Log_A]])][Log_B] 3 | ) 4 | 5 | Info = Info_A.(Log["=( INFO )====> "][Info_A]) 6 | Debug = Debug_A.(Log["=| DEBUG |===> "][Debug_A]) 7 | Warning = Warning_A.(Log["={ WARNING }=> "][Warning_A]) 8 | Error = Error_A.(Log["=[ ERROR ]===> "][Error_A]) 9 | 10 | 11 | Good = True 12 | Bad = Bad_A.Bad_B.Bad_B 13 | 14 | 15 | PrintNum = Num.( 16 | PipeFn[pass.(PutStr[NumToStr[Num]])][Num] 17 | ) 18 | 19 | PrintNumln = num_ln.( 20 | Newln[PrintNum[num_ln]] 21 | ) 22 | 23 | 2 = Succ[1] 24 | 3 = Succ[2] 25 | 4 = Succ[3] 26 | 5 = Succ[4] 27 | 28 | Plus = A.B.( 29 | Pair[Add[A][B]][Good] 30 | ) 31 | 32 | 33 | SafeToInt = StrN.( 34 | If[NotEq[ToInt[StrN]][Bad]] 35 | [ 36 | a.(PrintNumln[a]) 37 | ] 38 | [ 39 | a.(PipeFn[a.(Error["Not a single digit integer"])][0]) 40 | ][StrToNum[StrN]] 41 | ) 42 | 43 | PutStr[">> "] 44 | int = SafeToInt[Input[_]] 45 | 46 | Debug[ 47 | NumToStr[int] 48 | ] 49 | -------------------------------------------------------------------------------- /tools/target/.rustc_info.json: -------------------------------------------------------------------------------- 1 | {"rustc_fingerprint":1724395294950087815,"outputs":{"15337506775154344876":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/adam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\nunix\n",""],"1617349019360157463":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/adam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\nunix\n",""],"1164083562126845933":["rustc 1.30.0 (da5f414c2 2018-10-24)\nbinary: rustc\ncommit-hash: da5f414c2c0bfe5198934493f04c676e2b23ff2e\ncommit-date: 2018-10-24\nhost: x86_64-unknown-linux-gnu\nrelease: 1.30.0\nLLVM version: 8.0\n",""]},"successes":{}} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 adam mcdaniel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/adventure/main.m: -------------------------------------------------------------------------------- 1 | Import["engine"] 2 | 3 | // Main = N.( 4 | // StrToNum[ 5 | // PutStrln[ 6 | // NumToStr[Random[N]] 7 | // ] 8 | // ] 9 | // ) 10 | 11 | // Seed = GetNum["Enter a seed: "] 12 | 13 | // Rec[Main][Seed] 14 | 15 | 16 | 17 | 18 | 19 | Chain = A.B.( 20 | Pair[B][A] 21 | ) 22 | 23 | Monster = Name.Health.Treasure.( 24 | Chain[ 25 | Chain[ 26 | Chain[ 27 | _ 28 | ][ 29 | Name 30 | ] 31 | ][ 32 | Health 33 | ] 34 | ][ 35 | Treasure 36 | ] 37 | ) 38 | 39 | Name = Monster.( 40 | Index[Monster][2] 41 | ) 42 | 43 | Health = Monster.( 44 | Index[Monster][1] 45 | ) 46 | 47 | Treasure = Monster.( 48 | Index[Monster][0] 49 | ) 50 | 51 | PrintMonster = Monster.( 52 | PipeFn[pass.(Newln[PutTwo[ 53 | StrAndNum[" Treasure: "][Treasure[Monster]] 54 | ][ 55 | PutTwo[ 56 | StrAndNum[" - Health: "][Health[Monster]] 57 | ][ 58 | PutTwo[ 59 | Name[Monster] 60 | ][ 61 | _ 62 | ] 63 | ] 64 | ]])][Monster] 65 | ) 66 | 67 | Cards = Chain[ 68 | Chain[ 69 | Chain[ 70 | Chain[ 71 | Chain[ 72 | _ 73 | ][ 74 | Monster["Cthulu"][9][4] 75 | ] 76 | ][ 77 | Monster["Floating Nose"][4][2] 78 | ] 79 | ][ 80 | Monster["Gnome"][1][1] 81 | ] 82 | ][ 83 | Monster["Halfling"][7][3] 84 | ] 85 | ][ 86 | Monster["Cultist"][5][2] 87 | ] 88 | 89 | 90 | 91 | DrawCard = N.( 92 | Index[Cards][Mod[N][5]] 93 | ) 94 | 95 | 96 | Fight = M.P.( 97 | If[Eq[Sub[Health[M]][Tail[P]]][0]] 98 | [pass.(PipeFn[pass.(Newln[Newln[PutTwo[" was defeated!"][PutTwo[Name[M]][_]]]])] 99 | [ 100 | Pair[Add[Head[P]][1]][Add[Tail[P]][Treasure[M]]] 101 | ] 102 | )] 103 | [pass.(Pair[Sub[Head[P]][1]][Tail[P]])][_] 104 | ) 105 | 106 | // Main = N.( 107 | // PipeFn[N.( 108 | // PrintMonster[DrawCard[N]] 109 | // )][Random[N]] 110 | // ) 111 | 112 | // Seed = GetNum["Enter a seed: "] 113 | 114 | PutStrln["Entering the dungeon..."] 115 | PutStrln["It's dark and eerie. With only the light of your torch, you can barely see in front of you."] 116 | PutStrln["Here are the players' stats."] 117 | 118 | // PrintState[StartState] 119 | 120 | Main = SeedAndState.( 121 | Newln[Pair[Random[Head[SeedAndState]]][ 122 | PrintState[ModPlayerOne[Tail[SeedAndState]] 123 | [ 124 | Fight[PrintMonster[DrawCard[Head[SeedAndState]]]] 125 | [PlayerOne[Tail[SeedAndState]]] 126 | ] 127 | ] 128 | ] 129 | ] 130 | ) 131 | 132 | Seed = StrToNum["221"] 133 | 134 | Rec[Main][Pair[Seed][StartState]] -------------------------------------------------------------------------------- /tools/src/io_tools.rs: -------------------------------------------------------------------------------- 1 | use std::fs::File; 2 | use std::io; 3 | use std::io::*; 4 | use std::process; 5 | 6 | use logging::*; 7 | use string_tools::*; 8 | 9 | pub fn stdin() -> String { 10 | io::stdout().flush().unwrap(); 11 | 12 | let mut input = String::new(); 13 | 14 | io::stdin() 15 | .read_line(&mut input) 16 | .expect("Couldn't read line"); 17 | 18 | let line = input[..input.len() - 1].to_string(); 19 | 20 | let mut result = "\\.".to_string(); 21 | 22 | for c in line.chars() { 23 | match c { 24 | ' ' => { 25 | result += "\\. \\_ \\."; 26 | } 27 | 28 | '=' => { 29 | result += "\\.\\e\\."; 30 | } 31 | '!' => { 32 | result += "\\.\\x\\."; 33 | } 34 | '(' => { 35 | result += "\\.\\lp\\."; 36 | } 37 | ')' => { 38 | result += "\\.\\rp\\."; 39 | } 40 | '[' => { 41 | result += "\\.\\lb\\."; 42 | } 43 | ']' => { 44 | result += "\\.\\rb\\."; 45 | } 46 | '\\' => { 47 | result += "\\.\\\\\\."; 48 | } 49 | '@' => { 50 | result += "\\.@\\."; 51 | } 52 | 53 | 54 | some_char => { 55 | result += &some_char.to_string(); 56 | } 57 | } 58 | } 59 | return result+"\\."; 60 | } 61 | 62 | #[allow(dead_code)] 63 | pub fn read(file_name: &str) -> String { 64 | let mut file = BufReader::new(File::open(file_name).unwrap()); 65 | 66 | let mut s = String::new(); 67 | file.read_to_string(&mut s).unwrap(); 68 | 69 | return s; 70 | } 71 | 72 | pub fn readlines(file_name: &str) -> Vec { 73 | let file = match File::open(file_name) { 74 | Ok(f) => BufReader::new(f), 75 | Err(_) => { 76 | error("Could not open file."); 77 | process::exit(0); 78 | } 79 | }; 80 | let lines: Vec<_> = file 81 | .lines() 82 | .map(|line| remove_comments(&line.unwrap())) 83 | .filter(|line| remove_whitespace(line) != "") 84 | .collect(); 85 | 86 | return lines; 87 | } 88 | 89 | 90 | pub fn readstring(contents: &str) -> Vec { 91 | let lines: Vec<_> = contents 92 | .lines() 93 | .map(|line| remove_comments(&line)) 94 | .filter(|line| remove_whitespace(line) != "") 95 | .collect(); 96 | return lines; 97 | } 98 | 99 | pub fn import(file_name: &str, module_name: &str) -> Vec { 100 | let file = match File::open(file_name) { 101 | Ok(f) => BufReader::new(f), 102 | Err(_) => { 103 | // error( 104 | // format!("Could not open file: {}", e.to_string()) 105 | // ); 106 | error(format!("Could not import \"{}\"", module_name)); 107 | process::exit(0); 108 | } 109 | }; 110 | let lines: Vec<_> = file 111 | .lines() 112 | .map(|line| remove_comments(&line.unwrap())) 113 | .collect(); 114 | 115 | return lines; 116 | } 117 | -------------------------------------------------------------------------------- /examples/tic-tac-toe.m: -------------------------------------------------------------------------------- 1 | PsuedoPrompt = Pipe_Fn_Early.Early_Pipe_Val.(v.()[Pipe_Fn_Early[_]] Early_Pipe_Val[_]) 2 | Prompt = Prompt_Str.(PsuedoPrompt[call_me.(PutStr[Prompt_Str])] [Input]) 3 | 4 | 2 = Succ[1] 5 | 6 | 7 | None = _ 8 | 9 | StartBoard = Pair[ 10 | Pair[None][Pair[None][Pair[None][_]]] 11 | ][ 12 | Pair[ 13 | Pair[None][Pair[None][Pair[None][_]]] 14 | ][ 15 | Pair[ 16 | Pair[None][Pair[None][Pair[None][_]]] 17 | ][_]]] 18 | 19 | 20 | GetPoint = B.X.Y.( 21 | Index[Index[B][Y]][X] 22 | ) 23 | GetRow = B.Y.( 24 | Index[B][Y] 25 | ) 26 | GetColumn = B.X.( 27 | Pair[Index[Index[B][0]][X]][Pair[Index[Index[B][1]][X]][Pair[Index[Index[B][2]][X]][_]]] 28 | ) 29 | GetForwardDiagonal = B.( 30 | Pair[Index[Index[B][0]][2]][Pair[Index[Index[B][1]][1]][Pair[Index[Index[B][2]][0]][_]]] 31 | ) 32 | GetBackDiagonal = B.( 33 | Pair[Index[Index[B][0]][0]][Pair[Index[Index[B][1]][1]][Pair[Index[Index[B][2]][2]][_]]] 34 | ) 35 | 36 | PrintBoard = Board.( 37 | PipeFn[pass.( 38 | PipeFn[pass.(Putln[ GetPoint[Board][2][2] ])] 39 | [PipeFn[pass.(Put[ GetPoint[Board][1][2] ])] 40 | [PipeFn[pass.(Put[ GetPoint[Board][0][2] ])] 41 | [PipeFn[pass.(Putln[ GetPoint[Board][2][1] ])] 42 | [PipeFn[pass.(Put[ GetPoint[Board][1][1] ])] 43 | [PipeFn[pass.(Put[ GetPoint[Board][0][1] ])] 44 | [PipeFn[pass.(Putln[ GetPoint[Board][2][0] ])] 45 | [PipeFn[pass.(Put[ GetPoint[Board][1][0] ])] 46 | [PipeFn[pass.(Put[ GetPoint[Board][0][0] ])][_] 47 | ]]]]]]]] 48 | )][Board] 49 | ) 50 | 51 | Row = Name.( 52 | Pair[Name][Pair[Name][Pair[Name][_]]] 53 | ) 54 | Column = Row 55 | Diagonal = Row 56 | 57 | 58 | IsWinner? = B.N.( 59 | If[ Eq[Column[N]][ GetColumn[B][0] ] ][ 60 | True 61 | ][ 62 | If[ Eq[Column[N]][ GetColumn[B][1] ] ][ 63 | True 64 | ][ 65 | If[ Eq[Column[N]][ GetColumn[B][2] ] ][ 66 | True 67 | ][ 68 | If[ Eq[Row[N]][ GetRow[B][0] ] ][ 69 | True 70 | ][ 71 | If[ Eq[Row[N]][ GetRow[B][1] ] ][ 72 | True 73 | ][ 74 | If[ Eq[Row[N]][ GetRow[B][2] ] ][ 75 | True 76 | ][ 77 | If[ Eq[Diagonal[N]][ GetForwardDiagonal[B] ] ][ 78 | True 79 | ][ 80 | If[ Eq[Diagonal[N]][ GetBackDiagonal[B] ] ][ 81 | True 82 | ][ 83 | False 84 | ]]]]]]]] 85 | ) 86 | 87 | 88 | GetX = pass.(StrToNum[Prompt["X position: "]]) 89 | GetY = pass.(StrToNum[Prompt["Y position: "]]) 90 | 91 | 92 | CheckIfFree = Board.X.Y.( 93 | Eq[GetPoint[Board][X][Y]][None] 94 | ) 95 | 96 | ChangePoint = B.N.X.Y.x.y.( 97 | If[And[Eq[X][x]][Eq[Y][y]]][ 98 | N 99 | ][ 100 | GetPoint[B][x][y] 101 | ] 102 | ) 103 | 104 | ChangeBoard = B.N.X.Y.( 105 | Pair[ 106 | Pair[ChangePoint[B][N][X][Y][0][0]][Pair[ChangePoint[B][N][X][Y][1][0]][Pair[ChangePoint[B][N][X][Y][2][0]][_]]] 107 | ][ 108 | Pair[ 109 | Pair[ChangePoint[B][N][X][Y][0][1]][Pair[ChangePoint[B][N][X][Y][1][1]][Pair[ChangePoint[B][N][X][Y][2][1]][_]]] 110 | ][ 111 | Pair[ 112 | Pair[ChangePoint[B][N][X][Y][0][2]][Pair[ChangePoint[B][N][X][Y][1][2]][Pair[ChangePoint[B][N][X][Y][2][2]][_]]] 113 | ][_]]] 114 | ) 115 | 116 | 117 | MakeMove = Board.CurrentPlayer.OtherPlayer.X.Y.( 118 | If[CheckIfFree[Board][X][Y]][ 119 | pass.( 120 | PipeFn[pass.(PutStrln["Good move."])][Pair[ChangeBoard[Board][CurrentPlayer][X][Y]][Pair[OtherPlayer][CurrentPlayer]]] 121 | ) 122 | ][ 123 | pass.( 124 | PipeFn[pass.(PutStrln["Not a valid move."])][Pair[Board][Pair[CurrentPlayer][OtherPlayer]]] 125 | ) 126 | ][_] 127 | ) 128 | 129 | CheckWinner = Board.CurrentPlayer.OtherPlayer.( 130 | If[IsWinner?[Board][CurrentPlayer]][ 131 | pass.(Exit[PutStrln[Concat[ToStr[CurrentPlayer]][" wins!"]]]) 132 | ][ 133 | If[IsWinner?[Board][OtherPlayer]][ 134 | pass.(Exit[PutStrln[Concat[ToStr[OtherPlayer]][" wins!"]]]) 135 | ][ 136 | pass.(pass.()) 137 | ]][_] 138 | ) 139 | 140 | Main = BoardAndPlayers.( 141 | PipeFn 142 | [ 143 | BoardAndPlayers.(CheckWinner[Head[BoardAndPlayers]][Head[Tail[BoardAndPlayers]]][Tail[Tail[BoardAndPlayers]]]) 144 | ][ 145 | PipeFn[BoardAndPlayers.(PrintBoard[Head[BoardAndPlayers]])] 146 | [ 147 | MakeMove[ 148 | Head[BoardAndPlayers] 149 | ][ 150 | Head[Tail[BoardAndPlayers]] 151 | ][ 152 | Tail[Tail[BoardAndPlayers]] 153 | ][GetX[_]][GetY[_]] 154 | ] 155 | ] 156 | ) 157 | 158 | 159 | Rec[Main][ 160 | Pair[PrintBoard[StartBoard]][Pair[A][B]] 161 | ] -------------------------------------------------------------------------------- /examples/adventure/engine.m: -------------------------------------------------------------------------------- 1 | Import["num"] 2 | 3 | PutTwo = A.B.( 4 | PutStr[A] 5 | ) 6 | 7 | GameState = PlayerOneLevel.PlayerOneAttack.( 8 | PlayerTwoLevel.PlayerTwoAttack.( 9 | PlayerThreeLevel.PlayerThreeAttack.( 10 | Pair[PlayerOneLevel][ 11 | Pair[PlayerOneAttack][ 12 | Pair[PlayerTwoLevel][ 13 | Pair[PlayerTwoAttack][ 14 | Pair[PlayerThreeLevel][ 15 | Pair[PlayerThreeAttack][_] 16 | ]]]]] 17 | ) 18 | ) 19 | ) 20 | 21 | P1Level = S.( 22 | Index[S][0] 23 | ) 24 | P1Attack = S.( 25 | Index[S][1] 26 | ) 27 | 28 | P2Level = S.( 29 | Index[S][2] 30 | ) 31 | P2Attack = S.( 32 | Index[S][3] 33 | ) 34 | 35 | P3Level = S.( 36 | Index[S][4] 37 | ) 38 | P3Attack = S.( 39 | Index[S][5] 40 | ) 41 | 42 | 43 | 44 | ModP1Level = S.N.( 45 | GameState[ 46 | N 47 | ][ 48 | P1Attack[S] 49 | ][ 50 | P2Level[S] 51 | ][ 52 | P2Attack[S] 53 | ][ 54 | P3Level[S] 55 | ][ 56 | P3Attack[S] 57 | ] 58 | ) 59 | 60 | ModP1Attack = S.N.( 61 | GameState[ 62 | P1Level[S] 63 | ][ 64 | N 65 | ][ 66 | P2Level[S] 67 | ][ 68 | P2Attack[S] 69 | ][ 70 | P3Level[S] 71 | ][ 72 | P3Attack[S] 73 | ] 74 | ) 75 | 76 | ModP2Level = S.N.( 77 | GameState[ 78 | P1Level[S] 79 | ][ 80 | P1Attack[S] 81 | ][ 82 | N 83 | ][ 84 | P2Attack[S] 85 | ][ 86 | P3Level[S] 87 | ][ 88 | P3Attack[S] 89 | ] 90 | ) 91 | 92 | ModP2Attack = S.N.( 93 | GameState[ 94 | P1Level[S] 95 | ][ 96 | P1Attack[S] 97 | ][ 98 | P2Level[S] 99 | ][ 100 | N 101 | ][ 102 | P3Level[S] 103 | ][ 104 | P3Attack[S] 105 | ] 106 | ) 107 | 108 | ModP3Level = S.N.( 109 | GameState[ 110 | P1Level[S] 111 | ][ 112 | P1Attack[S] 113 | ][ 114 | P2Level[S] 115 | ][ 116 | P2Attack[S] 117 | ][ 118 | N 119 | ][ 120 | P3Attack[S] 121 | ] 122 | ) 123 | 124 | ModP3Attack = S.N.( 125 | GameState[ 126 | P1Level[S] 127 | ][ 128 | P1Attack[S] 129 | ][ 130 | P2Level[S] 131 | ][ 132 | P2Attack[S] 133 | ][ 134 | P3Level[S] 135 | ][ 136 | N 137 | ] 138 | ) 139 | 140 | IncP1Level = S.( 141 | ModP1Level[S][Add[P1Level[S]][1]] 142 | ) 143 | 144 | IncP1Attack = S.( 145 | ModP1Attack[S][Add[P1Attack[S]][1]] 146 | ) 147 | 148 | IncP2Level = S.( 149 | ModP2Level[S][Add[P2Level[S]][1]] 150 | ) 151 | 152 | IncP2Attack = S.( 153 | ModP2Attack[S][Add[P2Attack[S]][1]] 154 | ) 155 | 156 | IncP3Level = S.( 157 | ModP3Level[S][Add[P3Level[S]][1]] 158 | ) 159 | 160 | IncP3Attack = S.( 161 | ModP3Attack[S][Add[P3Attack[S]][1]] 162 | ) 163 | 164 | 165 | DecP1Level = S.( 166 | ModP1Level[S][Sub[P1Level[S]][1]] 167 | ) 168 | 169 | DecP1Attack = S.( 170 | ModP1Attack[S][Sub[P1Attack[S]][1]] 171 | ) 172 | 173 | DecP2Level = S.( 174 | ModP2Level[S][Sub[P2Level[S]][1]] 175 | ) 176 | 177 | DecP2Attack = S.( 178 | ModP2Attack[S][Sub[P2Attack[S]][1]] 179 | ) 180 | 181 | DecP3Level = S.( 182 | ModP3Level[S][Sub[P3Level[S]][1]] 183 | ) 184 | 185 | DecP3Attack = S.( 186 | ModP3Attack[S][Sub[P3Attack[S]][1]] 187 | ) 188 | 189 | 190 | 191 | PlayerOne = S.( 192 | Pair[P1Level[S]][P1Attack[S]] 193 | ) 194 | 195 | PlayerTwo = S.( 196 | Pair[P2Level[S]][P2Attack[S]] 197 | ) 198 | 199 | PlayerThree = S.( 200 | Pair[P3Level[S]][P3Attack[S]] 201 | ) 202 | 203 | 204 | ModPlayerOne = S.P.( 205 | ModP1Level[ModP1Attack[S][Tail[P]]][Head[P]] 206 | ) 207 | ModPlayerTwo = S.P.( 208 | ModP2Level[ModP2Attack[S][Tail[P]]][Head[P]] 209 | ) 210 | ModPlayerThree = S.P.( 211 | ModP3Level[ModP3Attack[S][Tail[P]]][Head[P]] 212 | ) 213 | 214 | 215 | 216 | 217 | 218 | 219 | StrAndNum = S.N.( 220 | Concat[S][NumToStr[N]] 221 | ) 222 | 223 | 224 | PrintState = S.( 225 | PipeFn[pass.(Newln[ 226 | PutTwo[ 227 | StrAndNum["Player Three Attack: "][P3Attack[S]] 228 | ][ 229 | Newln[PutTwo[ 230 | StrAndNum["Player Three Level: "][P3Level[S]] 231 | ][ 232 | Newln[Newln[PutTwo[ 233 | StrAndNum["Player Two Attack: "][P2Attack[S]] 234 | ][ 235 | Newln[PutTwo[ 236 | StrAndNum["Player Two Level: "][P2Level[S]] 237 | ][ 238 | Newln[Newln[PutTwo[ 239 | StrAndNum["Player One Attack: "][P1Attack[S]] 240 | ][ 241 | Newln[PutTwo[ 242 | StrAndNum["Player One Level: "][P1Level[S]] 243 | ][_]]] 244 | ] 245 | ]] 246 | ] 247 | ] 248 | ]] 249 | ] 250 | ] 251 | ]])][S] 252 | ) 253 | 254 | StartState = GameState[1][3][2][5][2][5] 255 | 256 | 257 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # maroon-lang 2 | 3 | maroon is my attempt at a functional programming language. I wanted to become more familiar with the Lambda Calculus, so I made this! It's very simple to use. 4 | 5 | ## Syntax 6 | 7 | --- 8 | 9 | ### Calling a function 10 | 11 | Functions are called the same way as in other languages, but using square brackets `[]` instead of parentheses `()`. I used this to reduce the confusion between grouping and calling functions. Also, it's very aesthetically pleasing. 12 | 13 | ```fs 14 | PutStrln["Test"] 15 | ``` 16 | 17 | Parentheses are instead used for grouping things under one scope. 18 | 19 | ### Defining a function 20 | 21 | The `=` operator is used to bind one side of the equals sign to the other. The left side becomes equal to the right side. 22 | 23 | ```fs 24 | If = C.A.B.( 25 | C[A][B] // im a comment 26 | ) 27 | 28 | PutStrln[ 29 | If[False] 30 | ["a"] 31 | ["b"] 32 | ] // This will print "b" 33 | ``` 34 | 35 | A function takes and returns exactly one argument. However, you can curry functions, meaning that you can effectively take multiple arguments to a function by returning a function to take the second argument, or a third argument or so on. 36 | 37 | ```fs 38 | 2 = Succ[1] // 2 is the successor to 1 39 | 3 = Succ[2] // 3 is the successor to 2 40 | 4 = Succ[3] // 4 is the successor to 3 41 | 42 | Exp = M.N.( 43 | Div[N[Mul[M]][M]][M] 44 | ) // Returns M^N 45 | 46 | two_to_the_nth_power = Exp[2] 47 | // Returns N.( 48 | // Div[N[Mul[2]][2]][2] 49 | // ) 50 | 51 | PutStrln[ 52 | NumToStr[two_to_the_nth_power[3]] 53 | // Is Div[2[Mul[2]][2]][2] 54 | ] 55 | ``` 56 | 57 | ## Standard Library 58 | 59 | --- 60 | 61 | These functions are predefined for you in the language, there's no need to define these yourself. Also, if you see something like this: `@something_here`, it's a flag to the interpreter. These are used to talk to the programming language itself. You don't need to use these flags because each of them have interfaces through which you can use them indirectly, such as the Add function. 62 | 63 | ### Import 64 | 65 | ```fs 66 | Import = Import_A.(Import_A @import) 67 | ``` 68 | 69 | Import runs a script by name and imports all of its assignments. 70 | 71 | #### Example 72 | 73 | ```fs 74 | Import["test"] // will import test.m 75 | ``` 76 | 77 | ### Logic 78 | 79 | ```fs 80 | True = A.B.(A) // Takes two arguments, returns first 81 | False = A.B.(B) // Takes two arguments, returns second 82 | And = P.Q.(P[Q][P]) // A AND B 83 | Or = P.Q.(P[P][Q]) // A OR B 84 | Not = P.(P[False][True]) // NOT A 85 | Nand = A.B.(Not[And[A][B]]) // A NAND B 86 | If = C.A.B.(C[A][B]) // Returns A if C is True. Else, return B. 87 | 88 | Eq = A.B.(A B @eq) 89 | Eq = A.B.(C.A.B.(C[A][B]) [Eq[A][B]] [True][False]) 90 | NotEq = A.B.(Not[Eq[A][B]]) 91 | // Ignore the weird stuff, just know that Eq[A][B] is A == B 92 | 93 | Xor = A.(B.(And[Or[A][B]][Not[Eq[A][B]]])) // A XOR B 94 | ``` 95 | 96 | ### IO 97 | 98 | ```fs 99 | ToStr = A.( none.(A) ) 100 | // Converts an Identifier to a string 101 | // For example, ToStr[Hello] returns "Hello" 102 | 103 | ToVal = ToValA.( ToValA[none] ) 104 | // Reverses ToStr 105 | 106 | 107 | Newln = NewlnA.(\\_ @println NewlnA) 108 | // Takes an argument, prints new line, returns argument 109 | 110 | Pipe = PipeA.(PipeA @print_pipe) 111 | // Takes an argument, prints the argument, returns argument 112 | 113 | Pipeln = PipelnA.(PipelnA @print_pipe \\_ @println) 114 | // Takes an argument, prints the argument and a new line, returns argument 115 | 116 | PipeStr = PipeStrA.(PipeStrA @print_pipe*) 117 | // Takes a String, prints the String, returns String 118 | 119 | PipeStrln = PipeStrlnA.(PipeStrlnA @print_pipe* \\_ @println) 120 | // Takes a String, prints the String and a new line, returns String 121 | 122 | Input = InputA.(ToStr[@input]) 123 | // Takes an argument and returns user input 124 | 125 | // Other names for pipe functions, more intuitive to user 126 | Put = Pipe 127 | Putln = Pipeln 128 | PutStr = PipeStr 129 | PutStrln = PipeStrln 130 | ``` 131 | 132 | ### Strings 133 | 134 | ```fs 135 | Concat = Concat_A.Concat_B.(Concat_B Concat_A @concat) 136 | // Concatenates two strings 137 | Replace = A.B.C.(C B A @replace_string) 138 | // (Substitutes substring B for string C) in string A 139 | 140 | IndexStr = S.N.(S N @index_string) 141 | // Returns a character in a string S at index N 142 | RangeStr = S.A.B.(S B A @range_string) 143 | // Returns a substring from a string S starting index A with length B 144 | In = A.B.(If[B A @in_string][True][False]) 145 | // Returns True if B is in A, otherwise False 146 | 147 | ``` 148 | 149 | ### Pairs (lists) 150 | 151 | ```fs 152 | Pair = Pair_X.Pair_Y.(Pair_Z.(Pair_Z[Pair_X][Pair_Y])) 153 | // Takes two arguments and returns a pair of the two 154 | Cons = Pair 155 | 156 | 157 | Nil = False 158 | // Nil is False 159 | IsNil = N.(Eq[N][False]) 160 | 161 | Head = P.(P[True]) 162 | First = Head 163 | // Takes a pair and returns the first object in the pair 164 | 165 | Tail = P.(P[False]) 166 | Second = Tail 167 | // Takes a pair and returns the second object in the pair 168 | 169 | Index = Index_P.Index_N.(Head[Index_N[Tail][Index_P]]) 170 | // Takes a linked pair (a chain of pairs within pairs) 171 | // and returns the Nth recursion depth 172 | ``` 173 | 174 | ### Kind of IO? 175 | 176 | ```fs 177 | PipeFn = Pipe_function.Pipe_x.(v.()[Pipe_function[Pipe_x]] Pipe_x) 178 | // Takes a function and a value, and calls the function with the value 179 | // Then returns the original value. 180 | // Used purely to call the function for its side effects 181 | 182 | Exit = Exit_A.(@exit) 183 | // Exits program 184 | 185 | Eval = S.(S @eval) 186 | // Evaluates string 187 | 188 | Rec = Rec_Function.Rec_Argument.(Rec_Argument Rec_Function @rec) 189 | // Recursively calls function, like a church numeral infinity 190 | // (If you dont know what church numerals are, google them) 191 | Break = Break_A.(@break) 192 | // Takes an argument and breaks from Rec function 193 | ``` 194 | 195 | ### Math 196 | 197 | ```fs 198 | Succ = N.(N @succ) 199 | // N + 1 200 | Pred = N.(N @pred) 201 | // N - 1 202 | Add = M.N.(N M @add) 203 | // M + N 204 | Sub = M.N.(N M @sub) 205 | // M - N 206 | Mul = M.N.(N M @mul) 207 | // M * N 208 | Div = M.N.(N M @div) 209 | // M / N 210 | Mod = M.N.(N M @mod) 211 | // M % N 212 | 213 | StrToNum = N.(N @to_fun) 214 | // Converts "1" to the church numeral for 1, or "99" to the church numeral for 99 215 | 216 | NumToStr = N.(N @num) 217 | // Converts the church numeral for 1 to "1", or the church numeral for 99 to "99" 218 | 219 | 220 | 0 = F.X.( X) 221 | // Definition of Zero 222 | 1 = Succ[0] 223 | // One comes after Zero 224 | // You have to define the rest of the numbers yourself! 225 | ``` 226 | 227 | ## Install Rust and Compile Maroon 228 | 229 | --- 230 | 231 | It's super easy. 232 | 233 | For \*nix 234 | 235 | ```bash 236 | cd ~/Desktop 237 | curl https://sh.rustup.rs -sSf | sh 238 | git clone https://github.com/adam-mcdaniel/maroon-lang 239 | cd maroon-lang 240 | cargo build --release 241 | ./target/release/maroon examples/hello_world.m 242 | ``` 243 | 244 | The path to the maroon executable is "target/release/maroon". It's statically linked, so you can move it where ever youd like without worrying about dependencies :) 245 | -------------------------------------------------------------------------------- /tools/src/string_tools.rs: -------------------------------------------------------------------------------- 1 | #[allow(unused_imports)] 2 | use logging::*; 3 | 4 | pub fn remove_escape_codes(line: &str) -> String { 5 | line.replace(" ","") 6 | .replace("\\rp", ")") 7 | .replace("\\lp", "(") 8 | .replace("\\rb", "]") 9 | .replace("\\lb", "[") 10 | .replace("\\x", "!") 11 | .replace("\\e", "=") 12 | .replace("\\_", " ") 13 | .replace("\\\\", "\\\\.") 14 | .replace("@", "\\.@") 15 | .replace("\\.", "") 16 | } 17 | 18 | pub fn add_escape_codes(line: &str) -> String { 19 | line.replace("\\", "\\.\\\\\\.") 20 | .replace(")", "\\.\\rp\\.") 21 | .replace("(", "\\.\\lp\\.") 22 | .replace("]", "\\.\\rb\\.") 23 | .replace("[", "\\.\\lb\\.") 24 | .replace("!", "\\.\\x\\.") 25 | .replace("=", "\\.\\e\\.") 26 | .replace(" ", "\\. \\_ \\.") 27 | .replace("@", "\\.@\\.") 28 | } 29 | 30 | 31 | pub fn from_maroon_string(string: &str) -> String { 32 | let result = remove_escape_codes(&string[6..string.len()-1]); 33 | return result; 34 | } 35 | 36 | 37 | // remove none.() from string 38 | pub fn get_inside_string(string: &str) -> String { 39 | return string[6..string.len()-1].to_string(); 40 | } 41 | 42 | // function used to insert one string into another string at a specific index. 43 | pub fn insert(string: &str, str_to_insert: &str, index: usize) -> String { 44 | let s = string[..index].to_owned() + str_to_insert + &string[index..]; 45 | s 46 | } 47 | 48 | 49 | 50 | // remove a character from a string at a specific index 51 | pub fn remove(string: &str, index: usize) -> String { 52 | string[..index].to_owned() + &string[index+1..] 53 | } 54 | 55 | 56 | // remove whitespace 57 | pub fn remove_whitespace(string: &str) -> String { 58 | // string[..index].to_owned() + &string[index+1..] 59 | let mut s = "".to_string(); 60 | 61 | for c in string.chars() { 62 | if c != ' ' && c != '\t' { 63 | s.push(c); 64 | } 65 | } 66 | 67 | return s; 68 | } 69 | 70 | // return the index of the first instance of a substring in a string 71 | pub fn find(string: &str, substring: &str) -> usize { 72 | let i = match (&string).find(substring) { 73 | Some(n) => n, 74 | None => 0 as usize, 75 | }; 76 | return i; 77 | } 78 | 79 | 80 | pub fn remove_comments(line: &str) -> String { 81 | // removes comments from string 82 | 83 | 84 | // if line.len() > 2 { 85 | // if &line[..2] == "//" { 86 | // return "".to_string(); 87 | // } 88 | // } 89 | // return line.to_string(); 90 | if line.contains("//") { 91 | return line[..find(&line, "//")].to_string(); 92 | } 93 | 94 | return line.to_string(); 95 | } 96 | 97 | 98 | 99 | // returns a called function 100 | // takes a lambda function as a string 101 | // replaces all instances of the parameter with the applied argument 102 | pub fn call(function: &str, arg: &str) -> String { 103 | // debug(format!("CALL: {}[{}]", function, arg)); 104 | let parameter_name = &function[..find(&function, ".")]; 105 | let mut result = (&function[find(&function, ".")+1..]).to_string(); 106 | 107 | let mut token = "".to_string(); 108 | let mut n: i32 = 0; 109 | 110 | let mut reached_space = false; 111 | let mut new_scope = false; 112 | let mut parentheses = 0; 113 | 114 | let mut first_mutable = false; 115 | loop { 116 | 117 | // if the index of the current character in the string is greater 118 | // or equal to the length of the string, break the loop and return 119 | if n as usize >= result.len() { 120 | break; 121 | } 122 | 123 | // iterate over each token and check if that token is the parameter 124 | // if that token is the parameter, replace it. 125 | for c in (result.to_owned() + " ").chars() { 126 | n += 1; 127 | 128 | 129 | if new_scope { 130 | if c == '(' { 131 | parentheses += 1; 132 | } else if c == ')' { 133 | parentheses -= 1; 134 | } else if c == ' ' { 135 | reached_space = true; 136 | } 137 | 138 | if parentheses < 1 && reached_space { 139 | reached_space = false; 140 | new_scope = false; 141 | parentheses = 0; 142 | } else { 143 | continue; 144 | } 145 | } 146 | 147 | if !([' ', '(', ')', '.'].contains(&c)) { 148 | token.push(c); 149 | } else { 150 | if token == parameter_name.to_string() && c != '.' { 151 | for _ in 0..(token.len()) { 152 | result = remove(&result, (n as usize)-token.len()-1); 153 | } 154 | result = insert(&result, &arg, (n as usize)-token.len()-1); 155 | n += ((arg.len()-1) as i32 - (token.len() as i32))+ 1; 156 | } else if token == parameter_name.to_string() && c == '.' { 157 | new_scope = true; 158 | reached_space = false; 159 | parentheses = 0; 160 | } else if token == parameter_name.to_string() + "&" && !first_mutable { 161 | first_mutable = true; 162 | result = remove(&result, n as usize - 2 as usize); 163 | n -= 1; 164 | token = token[..token.len()-1].to_string(); 165 | 166 | for _ in 0..(token.len()) { 167 | result = remove(&result, (n as usize)-token.len()-1); 168 | } 169 | result = insert(&result, &arg, (n as usize)-token.len()-1); 170 | n += ((arg.len()-1) as i32 - (token.len() as i32))+ 1; 171 | } 172 | 173 | 174 | token = "".to_string(); 175 | } 176 | } 177 | } 178 | 179 | // println!("{}({}) -> {}", function, arg, result); 180 | 181 | return result 182 | } 183 | 184 | 185 | 186 | // Grouper 187 | pub fn unfold(s: &str) -> String { 188 | // remove parentheses from a substring 189 | let mut result: String = "".to_string(); 190 | let mut n = 0; 191 | 192 | if s.contains("(") { 193 | let mut pars = 1; 194 | for (i, c) in s[find(&s, "(")..].chars().enumerate() { 195 | match c{ 196 | '(' => pars += 1, 197 | ')' => pars -= 1, 198 | _ => {} 199 | } 200 | 201 | if pars == 0 { break; } 202 | 203 | n = i; 204 | } 205 | 206 | result = remove(s, n + find(s, "(")); 207 | result = remove(&result, find(&result, "(")); 208 | } 209 | 210 | return result; 211 | } 212 | 213 | 214 | pub fn between_pars(s: &str, i: usize) -> bool { 215 | let mut in_pars = true; 216 | let mut begin = 0; 217 | 218 | let mut pars = 0; 219 | 220 | for (j, c) in s.chars().enumerate() { 221 | if c == '(' { 222 | if pars == 0 { 223 | begin = j; 224 | } 225 | pars += 1; 226 | } else if c == ')' { 227 | pars -= 1; 228 | } 229 | 230 | if pars > 0 { 231 | in_pars = true; 232 | } 233 | 234 | if pars == 0 { 235 | if begin < i && i < j && in_pars { 236 | return true; 237 | } 238 | in_pars = false; 239 | } 240 | } 241 | return false; 242 | } 243 | 244 | 245 | #[allow(unused_assignments)] 246 | pub fn split(s: &str) -> Vec { 247 | let mut head_list: Vec = vec![]; 248 | let mut head_string = ""; 249 | 250 | let mut tail = ""; 251 | 252 | let mut pars = 0; 253 | 254 | for (i, c) in s.chars().enumerate() { 255 | if i == s.len()-1 { 256 | head_list = vec![s.to_string()]; 257 | break; 258 | } else if c == ' ' && !between_pars(&s, i) { 259 | head_list = vec![s[..i].to_string()]; 260 | tail = &s[i+1..]; 261 | break; 262 | } else if c == '(' && i == 0 { 263 | pars = 0; 264 | for (j, par_test) in s.chars().enumerate() { 265 | if par_test == '(' { pars += 1; } 266 | else if par_test == ')' { pars -= 1; } 267 | 268 | if pars == 0 { 269 | head_string = &s[..j]; 270 | tail = &s[j+1..]; 271 | break; 272 | } 273 | } 274 | 275 | head_list = split(unfold( 276 | &(" ".to_owned() + head_string + " ") 277 | ).trim()); 278 | 279 | break; 280 | } 281 | } 282 | 283 | if tail == "" { 284 | return head_list; 285 | } 286 | 287 | else if head_list.len() == 0 { 288 | return split(tail); 289 | } 290 | 291 | else { 292 | head_list.append(&mut split(tail)); 293 | return head_list 294 | .iter() 295 | .filter(|x| x != &"") 296 | .cloned() 297 | .collect() 298 | } 299 | } 300 | -------------------------------------------------------------------------------- /tools/src/preprocessor.rs: -------------------------------------------------------------------------------- 1 | use evaluator::*; 2 | use io_tools::*; 3 | use std::collections::HashMap; 4 | use std::env; 5 | use std::path::Path; 6 | use string_tools::*; 7 | 8 | pub struct Preprocessor { 9 | context: HashMap, 10 | } 11 | 12 | impl Preprocessor { 13 | pub fn new() -> Self { 14 | let mut p = Preprocessor { 15 | context: HashMap::new(), 16 | }; 17 | 18 | p.process("Import = Import_A.(Import_A @import)"); 19 | p.process("True = (True_A.(True_B.(True_A)))"); 20 | p.process("False = (False_A.(False_B.(False_B)))"); 21 | p.process("And = (And_P.And_Q.(And_P [And_Q] [And_P]))"); 22 | p.process("Or = (Or_P.Or_Q.(Or_P [Or_P] [Or_Q]))"); 23 | p.process("Not = (Not_P.(Not_P[False][True]))"); 24 | p.process("Nand = Nand_A.Nand_B.(Not[And[Nand_A][Nand_B]])"); 25 | p.process("If = If_P.(If_A.(If_B.(If_P[If_A][If_B])))"); 26 | p.process("Eq = Eq_A.Eq_B.(Eq_A Eq_B @eq)"); 27 | p.process("Eq = Eq_A.Eq_B.(C.A.B.(C[A][B]) [Eq[Eq_A][Eq_B]] [True][False])"); 28 | 29 | p.process("NotEq = NotEq_A.NotEq_B.(Not[Eq[NotEq_A][NotEq_B]])"); 30 | p.process("Xor = Xor_A.(Xor_B.(And[Or[Xor_A][Xor_B]][Not[Eq[Xor_A][Xor_B]]]))"); 31 | 32 | p.process("Pair = Pair_X.Pair_Y.(Pair_Z.(Pair_Z[Pair_X][Pair_Y]))"); 33 | p.process("Cons = Pair"); 34 | p.process("Nil = False"); 35 | p.process("IsNil = L.(Eq[L[H.T.D.(False)][True]][True])"); 36 | p.process("Head = First_P.(First_P[True])"); 37 | p.process("Tail = Second_P.(Second_P[False])"); 38 | p.process("First = Head"); 39 | p.process("Second = Tail"); 40 | p.process("Index = Index_P.Index_N.(Head[Index_N[Tail][Index_P]])"); 41 | // p.process("Cons = H.T.(Pair[False][Pair[H][T]])"); 42 | 43 | p.process("ToStr = ToStrA.( none.(ToStrA) )"); 44 | p.process("ToVal = ToValA.( ToValA[none] )"); 45 | 46 | p.process("Newln = NewlnA.(\\_ @println NewlnA)"); 47 | p.process("Pipe = PipeA.(PipeA @print_pipe)"); 48 | p.process("Pipeln = PipelnA.(PipelnA @print_pipe \\_ @println)"); 49 | p.process("PipeStr = PipeStrA.(PipeStrA @print_pipe*)"); 50 | p.process("PipeStrln = PipeStrlnA.(PipeStrlnA @print_pipe* \\_ @println)"); 51 | p.process("Input = InputA.(ToStr[@input])"); 52 | 53 | p.process("Put = Pipe"); 54 | p.process("Putln = Pipeln"); 55 | p.process("PutStr = PipeStr"); 56 | p.process("PutStrln = PipeStrln"); 57 | 58 | p.process("PipeFn = Pipe_function.Pipe_x.(v.()[Pipe_function[Pipe_x]] Pipe_x)"); 59 | 60 | p.process("Rec = Rec_Function.Rec_Argument.(Rec_Argument Rec_Function @rec)"); 61 | p.process("Break = Break_A.(@break)"); 62 | p.process("Exit = Exit_A.(@exit)"); 63 | p.process("Eval = S.(S @eval)"); 64 | 65 | // p.process("Succ = Succ_N.Succ_F.Succ_X.( Succ_F[Succ_N[Succ_F][Succ_X] ] )"); 66 | // p.process("Add = Plus_M.(Plus_N.(Plus_F.(Plus_X.( Plus_M[Plus_F][Plus_N[Plus_F][Plus_X]] ))))"); 67 | 68 | p.process("Succ = N.(N @succ)"); 69 | p.process("Pred = N.(N @pred)"); 70 | p.process("Add = M.N.(N M @add)"); 71 | p.process("Sub = M.N.(N M @sub)"); 72 | p.process("Mul = M.N.(N M @mul)"); 73 | p.process("Div = M.N.(N M @div)"); 74 | p.process("Mod = M.N.(N M @mod)"); 75 | 76 | p.process("StrToNum = N.(N @to_fun)"); 77 | p.process("NumToStr = N.(N @num)"); 78 | 79 | p.process("Concat = Concat_A.Concat_B.(Concat_B Concat_A @concat)"); 80 | p.process("IndexStr = S.N.(S N @index_string)"); 81 | p.process("RangeStr = S.A.B.(S B A @range_string)"); 82 | p.process("Replace = A.B.C.(C B A @replace_string)"); 83 | p.process("In = A.B.(If[B A @in_string][True][False])"); 84 | 85 | p.process("0 = F.X.( X)"); 86 | p.process("1 = Succ[0]"); 87 | 88 | return p; 89 | } 90 | 91 | pub fn get_expressions(program_lines: Vec) -> Vec { 92 | let mut expressions: Vec = vec!["".to_string()]; 93 | let mut skip = 0; 94 | 95 | let mut edited_program = program_lines; 96 | edited_program.append(&mut vec!["".to_string()]); 97 | let trimmed_program: Vec = edited_program 98 | .iter() 99 | .map(|x: &String| x.trim().to_string()) 100 | .collect(); 101 | 102 | for trimmed_line in trimmed_program.iter() { 103 | if skip > 0 { 104 | skip -= 1; 105 | continue; 106 | } 107 | 108 | let mut i = expressions.len() - 1; 109 | 110 | { 111 | // trimmed_line.chars().nth(trimmed_line.len()-1) 112 | let mut s = &mut expressions[i]; 113 | 114 | if s.chars().nth(s.len() - 1) == Some('[') { 115 | *s = s.to_owned() + trimmed_line; 116 | continue; 117 | } else if trimmed_line.chars().nth(0) == Some(']') { 118 | *s = s.to_owned() + trimmed_line; 119 | continue; 120 | } else if s.chars().nth(0) == Some('[') { 121 | *s = s.to_owned() + trimmed_line; 122 | continue; 123 | } else if trimmed_line.chars().nth(0) == Some('[') { 124 | *s = s.to_owned() + trimmed_line; 125 | continue; 126 | } else if s.chars().nth(s.len() - 1) == Some('(') { 127 | *s = s.to_owned() + trimmed_line; 128 | continue; 129 | } else if trimmed_line.chars().nth(0) == Some(')') { 130 | *s = s.to_owned() + trimmed_line; 131 | continue; 132 | } else if s.chars().nth(0) == Some('(') { 133 | *s = s.to_owned() + trimmed_line; 134 | continue; 135 | } else if trimmed_line.chars().nth(0) == Some('(') { 136 | *s = s.to_owned() + trimmed_line; 137 | continue; 138 | } else if s.chars().nth(0) == Some('.') { 139 | *s = s.to_owned() + trimmed_line; 140 | continue; 141 | } else if trimmed_line.chars().nth(0) == Some('.') { 142 | *s = s.to_owned() + trimmed_line; 143 | continue; 144 | } 145 | } 146 | 147 | expressions.append(&mut vec![trimmed_line.to_string()]); 148 | } 149 | return expressions; 150 | } 151 | 152 | pub fn to_primitive_call(&mut self, line: &str) -> String { 153 | line.replace("[", " ").replace("]", " !") 154 | } 155 | 156 | #[allow(dead_code)] 157 | pub fn replace_strings(&mut self, line: &str) -> String { 158 | let mut result: String = "".to_string(); 159 | 160 | let mut quote_count = 0; 161 | for c in line.chars() { 162 | match c { 163 | '"' => { 164 | if quote_count == 1 { 165 | result += "\\.)"; 166 | // close quote 167 | quote_count = 0; 168 | } else { 169 | result += "none.(\\."; 170 | quote_count += 1; 171 | } 172 | } 173 | 174 | ' ' => { 175 | if quote_count == 1 { 176 | result += "\\. \\_ \\."; 177 | } else { 178 | result += " "; 179 | } 180 | } 181 | 182 | '=' => { 183 | if quote_count == 1 { 184 | result += "\\.\\e\\."; 185 | } else { 186 | result += "="; 187 | } 188 | } 189 | '!' => { 190 | if quote_count == 1 { 191 | result += "\\.\\x\\."; 192 | } else { 193 | result += "!"; 194 | } 195 | } 196 | '(' => { 197 | if quote_count == 1 { 198 | result += "\\.\\lp\\."; 199 | } else { 200 | result += "("; 201 | } 202 | } 203 | ')' => { 204 | if quote_count == 1 { 205 | result += "\\.\\rp\\."; 206 | } else { 207 | result += ")"; 208 | } 209 | } 210 | '[' => { 211 | if quote_count == 1 { 212 | result += "\\.\\lb\\."; 213 | } else { 214 | result += "["; 215 | } 216 | } 217 | ']' => { 218 | if quote_count == 1 { 219 | result += "\\.\\rb\\."; 220 | } else { 221 | result += "]"; 222 | } 223 | } 224 | '\\' => { 225 | if quote_count == 1 { 226 | result += "\\.\\\\\\."; 227 | } else { 228 | result += "\\"; 229 | } 230 | } 231 | '@' => { 232 | if quote_count == 1 { 233 | result += "\\.@\\."; 234 | } else { 235 | result += "@"; 236 | } 237 | } 238 | 239 | some_char => { 240 | result += &some_char.to_string(); 241 | } 242 | } 243 | } 244 | return result; 245 | } 246 | 247 | // maps left of = to right of = 248 | pub fn bind(&mut self, line: &str) -> String { 249 | if line.contains('=') { 250 | let line_vec = split(line); 251 | let value = "(".to_owned() 252 | + &Evaluator::new( 253 | &self.process(&line[find(&line, "=") + 1..]), 254 | &line[find(&line, "=") + 1..], 255 | ).eval() 256 | .join(" ") 257 | + ")"; 258 | self.context.insert(line_vec[0].clone(), value.to_string()); 259 | 260 | return "".to_string(); 261 | } else { 262 | let mut replaced_line: String = line.to_string(); 263 | let mut replacement: &str; 264 | 265 | for key in self.context.keys() { 266 | replacement = match self.context.get(key).to_owned() { 267 | Some(n) => n, 268 | None => "", 269 | }; 270 | replaced_line = call(&(key.to_owned() + ".(" + &replaced_line + ")"), replacement); 271 | } 272 | 273 | return replaced_line.to_string(); 274 | } 275 | } 276 | 277 | pub fn import(&mut self, line: &str) { 278 | let args: Vec = env::args().collect(); 279 | 280 | if line.contains(&"@import".to_string()) { 281 | let evaluated_expr = Evaluator::new(line, line).eval(); 282 | if evaluated_expr.len() == 2 && evaluated_expr[1] == "@import" { 283 | let name_in_stack = Evaluator::new( 284 | &self.process(&("ToVal[".to_owned() + &evaluated_expr[0] + "]")), 285 | line, 286 | ).eval(); 287 | 288 | let name = remove_escape_codes(&name_in_stack.join("")); 289 | 290 | for line in Preprocessor::get_expressions(import( 291 | &(Path::new(&args[1]) 292 | .parent() 293 | .unwrap() 294 | .to_str() 295 | .unwrap() 296 | .to_owned() 297 | + "/" 298 | + &name 299 | + ".m"), 300 | &name, 301 | )) { 302 | Evaluator::new(&self.process(&line), &line).eval(); 303 | } 304 | } 305 | } 306 | } 307 | 308 | pub fn process(&mut self, line: &str) -> String { 309 | let line = &self.replace_strings(line); 310 | 311 | let calls_checked = &self.to_primitive_call(line); 312 | 313 | let bounded = self.bind(calls_checked); 314 | self.import(&bounded); 315 | 316 | // println!("{} -> {}", line, bounded); 317 | return bounded; 318 | } 319 | } 320 | -------------------------------------------------------------------------------- /tools/src/evaluator.rs: -------------------------------------------------------------------------------- 1 | use io_tools::*; 2 | use logging::*; 3 | use preprocessor::*; 4 | use std::process; 5 | use string_tools::*; 6 | use std::cmp; 7 | 8 | pub struct Evaluator { 9 | preserved_program: String, 10 | data: Vec, 11 | logging: bool, 12 | } 13 | 14 | impl Evaluator { 15 | pub fn new(program: &str, actual_line: &str) -> Self { 16 | Self { 17 | preserved_program: actual_line.to_string(), 18 | data: split(program), 19 | logging: false, 20 | // logging: true, 21 | } 22 | } 23 | 24 | pub fn next(&mut self) -> Option { 25 | let result: Option; 26 | 27 | if self.data.len() > 0 { 28 | result = Some(self.data[0].clone()); 29 | self.data = self.data[1..].to_vec(); 30 | } else { 31 | result = None; 32 | } 33 | 34 | return result; 35 | } 36 | 37 | pub fn pop(&mut self) -> Option { 38 | let result: Option; 39 | 40 | if self.data.len() > 0 { 41 | result = self.data.pop(); 42 | } else { 43 | result = None; 44 | } 45 | 46 | return result; 47 | } 48 | 49 | 50 | pub fn push(&mut self, n: Vec) { 51 | if n.len() > 0 { 52 | self.data.extend(n); 53 | } 54 | } 55 | 56 | pub fn push_front(&mut self, n: Vec) { 57 | if n.len() > 0 { 58 | let mut val = n.clone(); 59 | val.append(&mut self.data); 60 | self.data = val; 61 | } 62 | } 63 | 64 | pub fn end(&mut self) -> bool { 65 | let mut is_end = true; 66 | for s in &self.data { 67 | if [ 68 | "!".to_string(), 69 | "@exit".to_string(), 70 | "@rec".to_string(), 71 | "@eval".to_string(), 72 | "@input".to_string(), 73 | "@print".to_string(), 74 | "@print*".to_string(), 75 | "@print_pipe".to_string(), 76 | "@print_pipe*".to_string(), 77 | "@println".to_string(), 78 | "@println*".to_string(), 79 | "@println_raw".to_string(), 80 | ] 81 | .contains(s) 82 | { 83 | is_end = false; 84 | } 85 | } 86 | 87 | return is_end; 88 | } 89 | 90 | pub fn safe_pop(&mut self) -> String { 91 | match self.pop() { 92 | Some(n) => n, 93 | None => { 94 | self.error("Attempted to call function with too few parameters,\nor call a function using an improper amount of braces") 95 | } 96 | } 97 | } 98 | 99 | pub fn error(&self, message: &str) -> String { 100 | error(format!( 101 | "{}: \n\n\"{}\"", 102 | message, 103 | self.preserved_program 104 | )); 105 | process::exit(1); 106 | // return "".to_string() 107 | } 108 | 109 | pub fn step(&mut self) { 110 | let instruction = self.next(); 111 | 112 | match instruction { 113 | Some(n) => { 114 | if n == "!".to_string() { 115 | let argument = &self.safe_pop(); 116 | let function = &self.safe_pop(); 117 | self.push_front(split(&call(function, argument))); 118 | } else if n == "@input".to_string() { 119 | self.push(vec![stdin()]); 120 | } else if n == "@exit".to_string() { 121 | process::exit(0); 122 | } else if n == "@to_fun".to_string() { 123 | let num_a = &self.safe_pop(); 124 | 125 | let str_num = unfold(&call(&remove_escape_codes(num_a), "none")); 126 | let num = match str_num.parse::() { 127 | Ok(n) => n, 128 | Err(_) => 0 129 | } as usize; 130 | 131 | self.push( 132 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 133 | ); 134 | } else if n == "@num".to_string() { 135 | let num_a = &self.safe_pop(); 136 | 137 | let num = cmp::max(num_a 138 | .matches("!") 139 | .count(), 0); 140 | 141 | self.push( 142 | vec!["none.(\\.".to_owned() + &num.to_string()+"\\.)"] 143 | ); 144 | } else if n == "@index_string".to_string() { 145 | let num_a = &self.safe_pop(); 146 | let string_a = &self.safe_pop(); 147 | 148 | let num = cmp::max(num_a 149 | .matches("!") 150 | .count(), 0); 151 | 152 | let inserted_value = &(match &from_maroon_string(string_a).chars().nth(num) { 153 | Some(n) => n, 154 | None => { 155 | self.error("Index not in range"); 156 | &' ' 157 | } 158 | }).to_string(); 159 | 160 | self.push( 161 | vec!["none.(\\.".to_owned() + inserted_value +"\\.)"] 162 | ); 163 | } else if n == "@in_string".to_string() { 164 | let string_a = &from_maroon_string(&self.safe_pop()); 165 | let string_b = &from_maroon_string(&self.safe_pop()); 166 | 167 | self.push(vec![match string_a.contains(string_b) { 168 | true => "a.b.a".to_string(), 169 | false => "a.b.b".to_string() 170 | }]); 171 | } else if n == "@replace_string".to_string() { 172 | let string_a = &self.safe_pop(); 173 | let string_b = &remove_escape_codes(&self.safe_pop()); 174 | let string_c = &remove_escape_codes(&self.safe_pop()); 175 | // println!("{} {} {}", string_a, string_b, string_c); 176 | self.push(vec![ 177 | "none.(\\.".to_owned() + &get_inside_string(&string_a).replace( 178 | &get_inside_string(&remove_escape_codes(&string_b)), 179 | &get_inside_string(&remove_escape_codes(&string_c)), 180 | ) + "\\.)" 181 | ]); 182 | } else if n == "@range_string".to_string() { 183 | let num_a = &self.safe_pop(); 184 | let num_b = &self.safe_pop(); 185 | let string_a = &self.safe_pop(); 186 | 187 | let num_first = cmp::max(num_a 188 | .matches("!") 189 | .count(), 0); 190 | let num_last = cmp::max(num_b 191 | .matches("!") 192 | .count(), 0); 193 | if &from_maroon_string(string_a).len() < &num_last { 194 | self.error("Range out of bounds"); 195 | } 196 | self.push( 197 | vec!["none.(\\.".to_owned() + &from_maroon_string(string_a)[num_first..num_last] + "\\.)"] 198 | ); 199 | } else if n == "@pred".to_string() { 200 | let num_a = &self.safe_pop(); 201 | 202 | let num = cmp::max(num_a 203 | .matches("!") 204 | .count() - 1, 0); 205 | 206 | self.push( 207 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 208 | ); 209 | } else if n == "@succ".to_string() { 210 | let num_a = &self.safe_pop(); 211 | 212 | let num = cmp::max(num_a 213 | .matches("!") 214 | .count() + 1, 0); 215 | 216 | self.push( 217 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 218 | ); 219 | } else if n == "@add".to_string() { 220 | let num_a = &self.safe_pop(); 221 | let num_b = &self.safe_pop(); 222 | 223 | let num = cmp::max(num_a 224 | .matches("!") 225 | .count() + num_b 226 | .matches("!") 227 | .count(), 0); 228 | 229 | self.push( 230 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 231 | ); 232 | } else if n == "@sub".to_string() { 233 | let num_a = &self.safe_pop(); 234 | let num_b = &self.safe_pop(); 235 | 236 | let num = cmp::max(num_a 237 | .matches("!") 238 | .count() as i32 - num_b 239 | .matches("!") 240 | .count() as i32, 0) as usize; 241 | 242 | self.push( 243 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 244 | ); 245 | } else if n == "@mul".to_string() { 246 | let num_a = &self.safe_pop(); 247 | let num_b = &self.safe_pop(); 248 | 249 | let num = cmp::max(num_a 250 | .matches("!") 251 | .count() * num_b 252 | .matches("!") 253 | .count(), 0); 254 | 255 | self.push( 256 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 257 | ); 258 | } else if n == "@div".to_string() { 259 | let num_a = &self.safe_pop(); 260 | let num_b = &self.safe_pop(); 261 | 262 | let num = cmp::max(num_a 263 | .matches("!") 264 | .count() as i32 / num_b 265 | .matches("!") 266 | .count() as i32, 0) as usize; 267 | 268 | self.push( 269 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 270 | ); 271 | } else if n == "@mod".to_string() { 272 | let num_a = &self.safe_pop(); 273 | let num_b = &self.safe_pop(); 274 | 275 | let num = cmp::max(num_a 276 | .matches("!") 277 | .count() % num_b 278 | .matches("!") 279 | .count(), 0); 280 | 281 | self.push( 282 | vec![("F.X.(".to_owned() + &" F".repeat(num) + &" X" + &" !".repeat(num) + &")")] 283 | ); 284 | } else if n == "@eq".to_string() { 285 | let arg1 = &self.safe_pop(); 286 | let arg2 = &self.safe_pop(); 287 | 288 | let result = match arg1 == arg2 { 289 | true => "a.b.a", 290 | false => "a.b.b", 291 | }; 292 | self.push(vec![result.to_string()]); 293 | } else if n == "@concat".to_string() { 294 | let arg1 = &self.safe_pop(); 295 | let arg2 = &self.safe_pop(); 296 | 297 | self.push( 298 | vec!["none.(".to_string() + &(unfold(&call(arg1, "none")) + &unfold(&call(arg2, "none"))) + ")"] 299 | ) 300 | 301 | } else if n == "@rec".to_string() { 302 | let function = &self.safe_pop(); 303 | let mut argument = self.safe_pop(); 304 | loop { 305 | let my_line = self.preserved_program.clone(); 306 | argument = 307 | Evaluator::new(&format!("({}) ({}) !", function, argument), &my_line) 308 | .eval() 309 | .join(""); 310 | if argument == "@break".to_string() { 311 | break; 312 | } 313 | } 314 | } else if n == "@eval".to_string() { 315 | let mut preprocessor = Preprocessor::new(); 316 | let arg = &self.safe_pop(); 317 | let my_line = self.preserved_program.clone(); 318 | 319 | // println!("{} none !", preprocessor.process(&Preprocessor::get_expressions(vec![remove_escape_codes(&arg)]).join(" "))); 320 | self.push(vec![ 321 | Evaluator::new(&format!("{} none !", preprocessor.process(&Preprocessor::get_expressions(vec![remove_escape_codes(&arg)]).join(" "))), &my_line) 322 | .eval() 323 | .join(""), 324 | ]); 325 | } else if n == "@print".to_string() { 326 | print!( 327 | "{}", 328 | remove_escape_codes(&(self.safe_pop())) 329 | ); 330 | } else if n == "@print*".to_string() { 331 | print!( 332 | "{}", 333 | remove_escape_codes( 334 | &self.data 335 | .clone() 336 | .join("") 337 | ) 338 | ); 339 | } else if n == "@println".to_string() { 340 | println!( 341 | "{}", 342 | remove_escape_codes(&(self.safe_pop())) 343 | ); 344 | } else if n == "@println_raw".to_string() { 345 | println!( 346 | "{}", 347 | &(self.safe_pop()) 348 | ); 349 | } else if n == "@println*".to_string() { 350 | println!( 351 | "{}", 352 | remove_escape_codes( 353 | &self.data 354 | .clone() 355 | .join("") 356 | ) 357 | ); 358 | } else if n == "@print_pipe".to_string() { 359 | let popped = self.safe_pop(); 360 | print!( 361 | "{}", 362 | remove_escape_codes(&popped) 363 | ); 364 | self.push(vec![popped]); 365 | } else if n == "@print_pipe*".to_string() { 366 | let popped = self.safe_pop(); 367 | print!( 368 | "{}", 369 | remove_escape_codes( 370 | &(unfold(&call(&popped, "_"))) 371 | ) 372 | ); 373 | self.push(vec![popped]); 374 | } else { 375 | self.push(split(&n)); 376 | } 377 | } 378 | None => { 379 | process::exit(1); 380 | } 381 | }; 382 | 383 | if self.logging { 384 | debug(format!("{:?}", self.data)); 385 | } 386 | } 387 | 388 | pub fn eval(&mut self) -> Vec { 389 | while self.data.len() > 0 && !self.end() { 390 | self.step(); 391 | } 392 | return self.data.clone(); 393 | } 394 | 395 | #[allow(dead_code)] 396 | pub fn display(&self) { 397 | println!("{:?}", self.data); 398 | } 399 | } 400 | --------------------------------------------------------------------------------