94 Commits

Author SHA1 Message Date
214045f1a6 FIX: Better error messages for func calls.
Also better more consistency for some type fails in other expressions.
2019-02-08 20:57:13 -06:00
a1bc81ee89 FIX: Better error reporting for copy calls 2019-02-08 19:01:16 -06:00
6de26820c8 FEATURE: better error reporting for out statements 2019-02-06 21:06:05 -06:00
d354d9e67d REFACTOR: build_assert -> eval_assert for consistency 2019-02-06 20:44:15 -06:00
24a4dc85c2 REFACTOR: the format logic belongs in the build module. 2019-02-06 20:35:33 -06:00
efef2bc3d2 FIX: Better error reporting for binary expressions.
Closes #34
2019-02-03 14:09:07 -06:00
a74d44c171 FIX: Even more and better error reporting.
Addresses: #34
2019-02-03 14:08:39 -06:00
2068063a5b FIX: Better error reporting.
Also adds some testing functions to check build failures.

Begins to address Issue #34
2019-02-01 19:17:31 -06:00
71d4f6f620 FIX: env lookups should respect the strict flag. 2019-01-31 19:02:50 -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
0537cb6166 FIX: compile errors weren't treated as a numbered assertion. 2019-01-24 16:58:27 -06:00
016e4a22db FEATURE: Add the not operator. 2019-01-24 16:53:02 -06:00
3f69896a08 REFACTOR: Clarify the notion of working directory vs file. 2019-01-23 20:56:59 -06:00
b51231b3cb Callapse with below. 2019-01-23 20:07:01 -06:00
5bfe38140a FEATURE: Schema checks for particular shapes.
Progress toward #6 and #32.
2019-01-21 19:47:04 -06:00
1d6c850fd4 FEATURE: Dynamic Type checking with is.
Any expression for the type as long as the expression evaluates to a string.
2019-01-19 13:06:43 -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
1dba5f66ce FEATURE: map, filter, and reduce over lists. 2019-01-18 20:01:08 -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
5b05405618 FIX: presence checks for tuples with NULL values works now. 2019-01-15 18:51:35 -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
38fc521e3e FIX: The in memory asset cache should no longer canonicalize.
The pseudo relative paths for std libraries won't work with them.
2019-01-13 22:05:20 -06:00
547c271aa1 FEATURE: Special case the std/ import prefix.
It's a reserved import path for our std library.

closes #27
2019-01-13 20:35:23 -06:00
50a3d33208 FEATURE: Generate a hashmap of path to String for std libraries.
prework for #27
2019-01-13 20:34:50 -06:00
c4505ac2ab FEATURE: Add a counter for our assertion output per file. 2019-01-13 14:20:08 -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
0f7498884a FEATURE: No longer require the dsl to output ok vs not ok. 2019-01-13 13:53:24 -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
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
a8c4ce1157 FEATURE: Allow map and filter on tuples. 2019-01-06 16:35:35 -06:00
ef01f166b2 REFACTOR: Add a little more abstraction for map and filter.
* Clearer and easier to follow code.
* Smaller functions.
* Easier to add future functionality.
2019-01-06 15:45:00 -06:00
dbadfa1c4c FEATURE: Suppport quoting self and env when we need them as tuple fields. 2019-01-06 14:28:29 -06:00
2c3f9c7b8f Add base64 as an importer type aside from string. 2019-01-05 14:33:12 -06:00
7793404975 MAINT: use dyn syntax for trait objects now. 2019-01-05 13:27:51 -06:00
a830047784 FEATURE: Add include as a string functionality.
Includes happy path tests for including a string.

fixes #15
2019-01-04 10:03:50 -06:00
59343d71d5 FEATURE: add a conatins operator
Adds the `in` operator that checks for fields in tuples and
elements in a list.

Fixes: #12
2019-01-03 11:42:11 -06:00
9ec73868b5 FEATURE: evaluate dot selectors as a binary operator now.
Also fixed a precedence bug in our parser.
2019-01-02 16:57:55 -06:00
a028960a43 REFACTOR/FEATURE: Treat selectors as an operator. 2018-12-31 17:31:34 -06:00
fb292b4684 REFACTOR: Unify the Binary Operator AST data structures. 2018-12-31 17:24:07 -06:00
2b7c8e65f8 REFACTOR: Better scope handling. 2018-12-31 17:13:58 -06:00
2c9abddb61 REFACTOR: normalize eval method naming for values. 2018-12-31 11:08:39 -06:00
05aa57ae7f REFACTOR: Builder => FileBuilder 2018-12-31 11:08:32 -06:00
821f1e9fb2 MAINT: Cleanup
TODO and FIXME removals.
Replaced unnecessary alt_peek! macro.
Renamed some types for clarity.
2018-12-14 16:01:17 -06:00