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
ed087ddf9a
MAINT: Unused function.
2019-11-09 18:14:05 -06:00
38d5721619
REFACTOR: Cleanup the syntax for the select expr
...
This makes it both easier to correctly write a select expression
as well as easier to parse and report syntax errors.
2019-11-09 17:35:59 -06:00
34636a1743
MAINT: cargo fmt
2019-11-03 14:20:25 -06:00
36e4e95738
Merge branch 'bytecode' of github.com:zaphar/ucg into bytecode
2019-11-02 11:10:48 -05:00
a90df8a362
REFACTOR: Cleanup the syntax for the select expr
...
This makes it both easier to correctly write a select expression
as well as easier to parse and report syntax errors.
2019-11-02 11:01:47 -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
85f239a566
REFACTOR: Error handling to use BuildError throughout.
...
Also removed more extraneous error output.
Contributes toward issue #45
2019-05-29 18:58:13 -05:00
e5f406d4e9
DEV: remove some unneccessary error output.
...
Working towards Issue #45
2019-05-28 21:08:54 -05:00
957d0c6102
DEV: Handle comments between statements.
2019-05-21 20:54:15 -05:00
6661e02a75
DEV: Generate a comment map as part of our tokenization.
...
The comment_map is optional but if passed in it will be populated
during tokenization.
2019-05-20 21:05:58 -05:00
e86827f613
FEATURE: Begin the work of pretty printing the AST.
2019-05-17 17:20:57 -05:00
ec756636b0
FEATURE: Add a TRACE pragma for assitance debugging ucg files.
2019-04-26 19:19:43 -05:00
05771c7221
FIX: Selects nested in tuples with no defaults didn't parse.
...
fixes #40
2019-04-17 20:48:28 -05:00
df8834dddc
FIX: Grouped Expressions store their position properly now.
2019-03-26 20:45:33 -04:00
40107cefb6
FEATURE: Parsing and evaluation with optional defaults in select.
2019-03-01 17:10:03 -06:00
e095cb3235
REFACTOR: AST changes to support optional defaults.
2019-03-01 16:52:08 -06:00
00cc246903
FEATURE: Allow trailing commas in map, filter, and reduce expressions.
2019-02-27 19:41:09 -06:00
d9b2c0cb00
FEATURE: out expression for modules.
...
issue #35
2019-02-21 20:09:47 -06:00
6de26820c8
FEATURE: better error reporting for out statements
2019-02-06 21:06:05 -06:00
276c155264
FIX: More error reporting improvements.
2019-02-03 20:56:21 -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
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
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
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
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
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
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
9767ea20b4
FEATURE: Better error messages for select expression parsing.
2019-01-16 17:47:07 -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
3cfed0d0e1
FEATURE: Better error reporting using must!.
...
Some errors around punctuation were less than helpful. This should
improve that situation somewhat.
2019-01-13 14:31:04 -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
e46496c666
FEATURE: Add a reduce operator for lists and tuples.
...
fixes #19
fixes #21
2019-01-06 20:57:37 -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
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
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
2a99bbb33a
REFACTOR: rename macro now that nom is no longer used.
2018-12-12 19:18:37 -06:00
e15573d316
MAINT: Parsing peformance boosts.
2018-12-12 18:41:08 -06:00