22 Commits

Author SHA1 Message Date
James Eversole
63504ba939 Rough draft of modules
This includes a naive implementation of a module system where imported
files have their imports recursively handled, strips the module/import
AST nodes, and then evals everything into a flat environment using
namespace prefixes like "Module.function".
2025-01-27 12:24:30 -06:00
James Eversole
79317bf4e3 Use reserved bang sym for env result 2025-01-27 08:46:40 -06:00
James Eversole
918d929c09 # File eval mode now relies on main function
All checks were successful
Test, Build, and Release / test (push) Successful in 1m26s
Test, Build, and Release / build (push) Successful in 1m15s
To encourage organizing code in a way that helps in understanding, I
have implemented the common idiom of requiring a `main` function. In
tricu and other functional languages, it is usually placed near the top
of the module. The evaluator gracefully handles the situation of passing
multiple files where the intermediary "library" files do not have main functions.
2025-01-26 15:33:12 -06:00
James Eversole
ad02c8b86a General refactor for legibility
Priming to update all source to lhs and document extensively
2025-01-19 14:41:25 -06:00
James Eversole
3eb28a2c62 Drop parseVarWithoutAssignment
Additionally sorts gitignore and adds attempted decoding of lists back
to the REPL
2025-01-03 10:31:35 -06:00
James Eversole
8c33e5ce66 Fix critical list evaluation bug and REPL updates 2025-01-02 19:08:14 -06:00
James Eversole
a2c459b148 Provide "library" via tricu file directly
Allows easier loading of other files and drops the list of Haskell
strings containing the basic tools included
2025-01-01 18:53:56 -06:00
James Eversole
39be66a4d1 Fixes identifier lexing; support REPL file loading 2025-01-01 18:05:21 -06:00
James Eversole
5e2a4dff50 Expands CLI support with output forms and decoding
Adds CLI options for compiling to a Tree Calculus, AST, Ternary, and
ASCII tree view. Adds CLI command for attempted decoding of a compiled
result to Number/String/List.
2024-12-30 14:22:37 -06:00
James Eversole
2abeab9c04 Adds "compiler" and CLI argument handling 2024-12-29 21:49:57 -06:00
James Eversole
a8f72290a2 Resolves issue with parsing comments 2024-12-29 21:02:38 -06:00
James Eversole
60a9e3c1ee Expansion of testing suite to cover incl. library
Expands the testing suite to verify behavior of provided library
functions. Updates the README further for clarification on important
concepts.
2024-12-29 10:28:32 -06:00
James Eversole
c30f17367f Rename from sapling to tricu 2024-12-29 08:29:25 -06:00
James Eversole
e376d13a93 Stop using to/of conventions backwards 2024-12-28 07:24:19 -06:00
James Eversole
2e539eb545 Support for single line comment syntax using -- 2024-12-28 07:15:34 -06:00
James Eversole
14b95f90b5 Update README and REPL formatting for list outputs 2024-12-27 20:54:30 -06:00
James Eversole
d804a114bb Update lambda handling; better default decode out 2024-12-27 20:46:30 -06:00
James Eversole
44e2169cdb Further library additions and REPL updates 2024-12-27 19:27:04 -06:00
James Eversole
e835caabbc Minor fix to REPL output for numbers
Uses # instead of text output. Adds several basic library functions.
2024-12-27 16:09:54 -06:00
James Eversole
0dd14a3aea Automatic decoding of supported literals in REPL
Automatic decoding & display of string, number, and list types in REPL.
General updates to README, style, and comments.
2024-12-27 15:40:50 -06:00
James Eversole
4495f8eba0 Tests and better default REPL behavior 2024-12-27 14:10:13 -06:00
James Eversole
c16c48b22c 0.2.0
Includes better error handling, additional tests, parsing and lexing
fixes to match the desired behavior defined by the new tests, and a very
basic REPL implementation.
2024-12-20 12:58:06 -06:00