cd23430f5f
DEV: Complex Format expressions are supported now.
2019-10-17 17:57:04 -05:00
b9309ce12b
FIX: Don't print an extraneous new line on fmt.
...
Fixes : #49
2019-10-02 19:55:40 -05:00
49a64251a4
MAINT: cargo fix
...
Mostly to add the dyn keyword all the places where it will soon
be required.
2019-09-18 20:09:57 -05:00
7e88ed4d84
FIX: deprecated and unsafe code revealed by 1.36 rust release.
2019-07-11 14:53:11 -05:00
f349293400
FEATURE: Support a convert expression.
2019-06-20 19:28:20 -05:00
685917876b
DEV: A bunch of improvments
...
* move comments on the same line up to the previous line.
* All statements should have two new lines between them.
* Handle comments with indentation whitespace properly.
2019-05-24 15:26:11 -05:00
c9b2b9994f
DEV: Handle some more expressions.
2019-05-23 20:10:18 -05:00
82d6ca9ecb
DEV: Handle comments embedded in not, import or include expressions
2019-05-23 20:02:31 -05:00
ff2aafeb98
DEV: Handle grouped comments with embedded comments.
2019-05-23 19:57:51 -05:00
157f123355
DEV: Handle the functional operators with embedded comments.
2019-05-23 19:52:03 -05:00
f88955517e
DEV: Handle TRACE, fail, and format expressions with embedded comments.
2019-05-22 19:05:48 -05:00
e6f6421ca6
DEV: Handle comments embedded in binary expressions and call expressions.
2019-05-22 18:52:10 -05:00
a21d4bd235
DEV: Handle comments between list elements.
2019-05-22 18:34:42 -05:00
94ca738ee1
DEV: Handle comments in tuple field expressions
2019-05-22 18:29:25 -05:00
957d0c6102
DEV: Handle comments between statements.
2019-05-21 20:54:15 -05:00
d884ea9385
REFACTOR: Remove the err field, rename indent -> indent_size
2019-05-21 18:41: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
f3a08718dc
MAINT: Tests for fail and trace expressions.
2019-05-17 21:21:20 -05:00
aa9e664c0d
FEATURE: Improvements to format expression printing.
2019-05-17 21:19:01 -05:00
9b99bc026c
FEATURE: Improvements to func expression pretty printing.
2019-05-17 20:06:06 -05:00
0d78438c2a
FEATURE: Fix bug in out statements;
...
Also add tests for modules.
2019-05-17 19:58:48 -05:00
525cdd32e6
FEATURE: Use the AST Pretty Printer for TRACE and assert output.
2019-05-17 19:49:13 -05:00
cd6307824f
FEATURE: more fixes and unit tests.
...
Call and copy have been tweaked properly.
2019-05-17 19:31:29 -05:00
d122fe6e6f
FEATURE: Fix a number of bugs found by adding unit tests :-D
2019-05-17 18:33:47 -05:00
e86827f613
FEATURE: Begin the work of pretty printing the AST.
2019-05-17 17:20:57 -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