431 Commits

Author SHA1 Message Date
923ba89e2f REFACTOR: Correctly use parse errors as a cause. 2019-02-20 20:39:28 -06:00
1699801895 FEATURE: Wrap include failures in a Build Error.
This is way more ergonomic for the users.
2019-02-20 20:29:32 -06:00
014710a4ba FEATURE: Allow BuildErrors to wrap other errors. 2019-02-20 20:28:05 -06:00
f8c035e535 REFACTOR: proper naming for the yaml to ucg conversion function. 2019-02-20 19:57:37 -06:00
ff54452766 FEATURE: Support including toml documents 2019-02-20 19:57:17 -06:00
8639912567 FEATURE: BuildError no longer requires a position. 2019-02-19 17:38:13 -06:00
ceaed5c543 REFACTOR: No longer require PositionedItem for Val::Tuples. 2019-02-19 16:38:06 -06:00
3cfbe6564c FEATURE: Empty files result in Val::Empty as their result.
We also print a warning message for the consumer.
2019-02-19 15:32:04 -06:00
38e418a1d6 FIX: Integration tests for the json and yaml mapping.
Fixed bug in the yaml key deserialization logic.
2019-02-19 15:28:31 -06:00
e2b843035e FEATURE: Yaml importer for include expressions.
Yamls can be imported as UCG intermediate representation and used
like native UCG types in your ucg files.
2019-02-19 15:06:06 -06:00
a6eab6a459 REFACTOR: Rename convert::traits::Result to convert::traits::ConvertResult. 2019-02-19 14:50:55 -06:00
fdbbf0fb01 FEATURE: Add json as an include format.
Include a json file and it will be transformed into the UCG
intermediate format and usable in your ucg file.
2019-02-19 14:45:46 -06:00
c7a87894ba FEATURE: Add the %% modulo operator. 2019-02-18 21:09:42 -06:00
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
c3025c710e MAINT: Unit tests for let statement comopile failures 2019-02-08 18:50:58 -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
d407623709 MAINT: More error test coverage for list parsing. 2019-02-04 18:59:57 -06:00
276c155264 FIX: More error reporting improvements. 2019-02-03 20:56:21 -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
6a476d19dc REFACTOR: Improve the typesafety of lookup_sym.
It's easier to ensure you don't forget a case if you have to enumerate
them all. So don't use the catch all in this match.
2019-01-31 16:42:49 -06:00
46ba32f038 FEATURE: Allow more expressions in the functional builtins. 2019-01-31 16:38:53 -06:00
3619153218 FEATURE: Syntax improvement for map filter and reduce.
closes #33
2019-01-31 16:33:12 -06:00
8aacd49a77 FIX: lookups on env variables were broken. 2019-01-30 21:34:59 -06:00
28129ba1de FEATURE: change inspect to eval
Also make it easier to use by having sane defaults for the arguments.
2019-01-30 21:02:00 -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
2409f0c64e FEATURE: Better attribution of errors to their file. 2019-01-23 21:23:25 -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
b56fb25c28 REFACTOR: Carry the source file around with the input iter. 2019-01-23 20:02:35 -06:00
b6c2a08c8f FEATURE: Better parsing errors.
More specific reports about what is wrong when we know the correct
next tokens to expect.
2019-01-22 20:59:25 -06:00
5bfe38140a FEATURE: Schema checks for particular shapes.
Progress toward #6 and #32.
2019-01-21 19:47:04 -06:00
6321828006 FEATURE: The begnnings of some schema definition utilities.
Also allow failure messages to be generated from any expression.
2019-01-20 08:32:05 -06:00
7959391b90 MAINT: Remove cpuprofiler.
I wasn't using it.
2019-01-19 13:30:06 -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