73 Commits

Author SHA1 Message Date
46e55484dd refactor: another test helper macro 2025-07-21 18:32:45 -04:00
3e8771476f feat: More Shape derivations
Some BuildError bits as well.
2025-07-21 18:32:45 -04:00
0e93ffb27b feat: Typechecking: improving derive_shape 2025-07-21 18:32:45 -04:00
9ab2ce2be5 maint: The macro usage for shapes was confusing 2025-07-21 18:32:45 -04:00
b5c1418e30 FEATURE: add Binary expression type derivation 2025-07-21 18:32:45 -04:00
44986be0f5 Walker that can type check a simple binary expression 2025-07-21 18:32:45 -04:00
6ddc830210 DEV: Some walker trait refactoring
Enables chained visitors using the ChainedWalk implementation.
2025-07-21 18:32:45 -04:00
a3a7ce57ee DEV: The beginnings of some shape Derivation 2025-07-21 18:32:45 -04:00
5a20012fcb Better more reliable path normalization 2021-03-10 20:45:06 -05:00
3d34355fe7 DEV: AST enum for a shape. 2020-05-25 14:23:25 -04:00
159af40e7c DEV: Unify the path rewriting 2020-05-25 12:15:55 -04:00
89a06135c9 MAINT: cleanup an errant dbg! 2020-01-04 08:12:22 -06:00
13f0749ac8 FIX: v0.7.0 completely broke stdlib loading. 2019-12-09 20:11:42 -06:00
632019ac18 DEV: Implement primitive casting. 2019-11-11 20:06:17 -06:00
7e3e598423 Merge branch 'master' into bytecode 2019-11-09 19:42:34 -06:00
b36a9513eb MAINT: eprintln and dbg cleanup 2019-11-09 18:54:46 -06:00
6f714e6583 DEV: Canonicalize is never the right thing on windows. 2019-11-09 15:39:32 -06:00
34636a1743 MAINT: cargo fmt 2019-11-03 14:20:25 -06:00
db9b7aef43 DEV: More Windows file path handling fixes. 2019-11-03 14:19:14 -06:00
ac4dc2addd DEV: All unit tests pass. 2019-10-17 17:57:06 -05:00
cd23430f5f DEV: Complex Format expressions are supported now. 2019-10-17 17:57:04 -05:00
f349293400 FEATURE: Support a convert expression. 2019-06-20 19:28:20 -05:00
957d0c6102 DEV: Handle comments between statements. 2019-05-21 20:54:15 -05:00
2821d0953b FEATURE: First make our AST Walker a little more ergonomic.
Use a trait instead of callbacks to make mutable it possible to support
Walkers with mutable internal state when necessary.
2019-05-14 20:54:06 -05:00
ec756636b0 FEATURE: Add a TRACE pragma for assitance debugging ucg files. 2019-04-26 19:19:43 -05:00
df8834dddc FIX: Grouped Expressions store their position properly now. 2019-03-26 20:45:33 -04:00
e095cb3235 REFACTOR: AST changes to support optional defaults. 2019-03-01 16:52:08 -06:00
c8443b9181 MAINT: The great TODO cleanup. 2019-02-27 19:52:06 -06:00
d9b2c0cb00 FEATURE: out expression for modules.
issue #35
2019-02-21 20:09:47 -06:00
8639912567 FEATURE: BuildError no longer requires a position. 2019-02-19 17:38:13 -06:00
c7a87894ba FEATURE: Add the %% modulo operator. 2019-02-18 21:09:42 -06:00
6de26820c8 FEATURE: better error reporting for out statements 2019-02-06 21:06:05 -06:00
4d6fd87c3d FEATURE: Allow expressions for functions in reduce/map/filter. 2019-01-30 20:35:28 -06:00
3c1b3ce86a FEATURE: Expression format string support.
Experimental support for Issue #23
2019-01-28 21:30:37 -06:00
f1c7d76fdd REFACTOR: The great renaming macro -> func. 2019-01-24 20:04:40 -06:00
016e4a22db FEATURE: Add the not operator. 2019-01-24 16:53:02 -06:00
b56fb25c28 REFACTOR: Carry the source file around with the input iter. 2019-01-23 20:02:35 -06:00
6d5d4c79de FEATURE: Declarative failures.
FIXES: #30
2019-01-19 11:39:37 -06:00
eaa3e84179 FIX: Treat is as a regular binary operator
do syntax checks post parse. Also to avoid collisions with
keywords require quoting the types.
2019-01-19 10:49:33 -06:00
25d84a771e FEATURE: Add the is operator
This operator tests that something is of a certain base type.
2019-01-18 18:47:11 -06:00
d40e89fea9 FEATURE: Boolean Operators. 2019-01-17 19:20:01 -06:00
890387b4cc FEATURE: Macros are just an expression now.
This is a breaking change for the map, filter, and reduce expressions
but happily a forward compatible change for macros themselves.
2019-01-16 19:27:58 -06:00
e838554fff FIX: Modules were attempting to conver std imports into absolute paths. 2019-01-15 19:22:10 -06:00
685ee7407e FEATURE: make macros close over their environment.
The benefits are great enough to allow this and the benefits of
not allowing closures are not terribly useful.

We do not get the same benefits for modules though so we don't add
it to them.
2019-01-14 18:23:39 -06:00
54faeede5e FEATURE: Imports as expressions.
This is a breaking change for the language. However it makes a number of things
easier. Like importing specific symbols from a file.

adds: #28
2019-01-13 14:10:43 -06:00
6f9ba2ac33 FEATURE: Add the range expression.
fixes: #24
2019-01-10 19:40:32 -06:00
d989e47706 FEATURE: Use a better DSL for unit tests.
* Assert now requires a tuple instead of a string containing
  statements.
* We include a helpful ucg based unit testing module.

Fixes: #26
2019-01-10 17:17:57 -06:00
8dc5b43a93 FIX: our DOT binary operator change broke symbol validation logic for macros. 2019-01-07 19:43:50 -06:00
83a641e740 FEATURE: Add regular expression comparison operators. 2019-01-07 19:38:25 -06:00
e46496c666 FEATURE: Add a reduce operator for lists and tuples.
fixes #19
fixes #21
2019-01-06 20:57:37 -06:00