20 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
03e2f6b93e Some special characters in ids; new demos
All checks were successful
Test and Build / test (push) Successful in 4m39s
Test and Build / build (push) Successful in 1m44s
Adds support for several special characters in identifiers. Adds a demo
for converting values to source code and another for checking equality.
Updates the existing demo and tests to reflect new names for functions
returning booleans.
2025-01-23 15:46:40 -06:00
James Eversole
35163a5d54 Allow multiline expressions 2025-01-20 19:20:29 -06:00
James Eversole
8c33e5ce66 Fix critical list evaluation bug and REPL updates 2025-01-02 19:08:14 -06:00
James Eversole
39be66a4d1 Fixes identifier lexing; support REPL file loading 2025-01-01 18:05:21 -06:00
James Eversole
493ef51a6a Add "SimpleT" t output form
This new output form allows easy piping to the decode function of the
tricu executable. Includes a new test for roundtrip evaluation of map,
compilation to tree calculus terms, and decoding back to a human
readable string.
2024-12-31 10:00:52 -06:00
James Eversole
8622af9ad2 Initial ternary representation options
Both parsing and conversion from T to ternary representation supported
2024-12-30 08:30:40 -06:00
James Eversole
a8f72290a2 Resolves issue with parsing comments 2024-12-29 21:02:38 -06:00
James Eversole
b86ff6e9b8 Additional tests 2024-12-29 12:22:24 -06:00
James Eversole
c30f17367f Rename from sapling to tricu 2024-12-29 08:29:25 -06:00
James Eversole
2e539eb545 Support for single line comment syntax using -- 2024-12-28 07:15:34 -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
dbb5227fbc Somewhat working lambdas
Architectural changes to lambda evaluation and parsing to allow
for correct expression evaluation. Contains several failing AI-generated
tests and we're still failing tests for erroring incomplete definitions
2024-12-27 13:21:30 -06:00
James Eversole
7fca4d38e8 Stop using lists to represent args 2024-12-27 08:17:06 -06:00
James Eversole
c5f1ccc4dc Drop useless comments 2024-12-20 13:00:06 -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
James Eversole
a61627f333 Reserve __result keyword 2024-12-19 21:13:57 -06:00
James Eversole
e5f3a53bcc 0.1.0 base collection of features
Implemented evaluation of tree calculus terms alongside referentially
transparent variable identifiers. Implemented evaluation of defined
functions into tree calculus.
2024-12-19 19:07:12 -06:00
James Eversole
9f9aca4040 Initialize Repo
Working (but likely buggy!) lexing, parsing, and evaluation of Tree Calculus terms
2024-12-18 18:59:07 -06:00