41 Commits

Author SHA1 Message Date
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
8009c6a8a5 MAINT: Formatting cleanup. 2018-12-10 21:27:44 -06:00
e9a0bde631 MAINT: Opt in to 2018 edition of Rust. 2018-12-06 12:23:52 -06:00
fe4bb1c9d7 FEATURE: allow tuples to have true or false as field names.
this allows selects where the condiotion is a boolean and you can choose
the true or false branch.
2018-11-26 23:08:14 -06:00
fa96c7c0ef FEATURE: UCG Parameterized Modules
closes #10

Squashed commit of the following:

commit 3101c2bb9a385ed9e84481d36906a3e3ce93e571
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Wed Nov 21 20:10:31 2018 -0600

    FEATURE: Module evaluation

    * handle evaluating the module definition.
    * Handle performing a module instantiation via the copy syntax.

commit 4ca863896b416e39f0c8eacc53384b9c514f6f14
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Tue Nov 20 18:38:19 2018 -0600

    FEATURE: Add module parsing expression parsing to ucg.

    changes toward issue #10
2018-11-23 12:51:13 -06:00
a9b374bf33 BUGFIX: Allow empty lists in parsing. 2018-11-21 20:41:54 -06:00
cb2f83f2ca BUGFIX: Calling macros with no arguments could not be parsed. 2018-11-20 18:23:10 -06:00
15026423db REFACTOR: Rename our error::Error type to BuildError. 2018-11-12 18:07:31 -06:00
d2f0ea9f24 FEATURE: Better error reporting.
Slight change to how assert works to support this. We no longer automatically add
a semicolon to the expressions we require the user to right them. This updates the
docs to illustrate that and reformats our integration test suite for this and
readability.
2018-11-06 19:40:56 -06:00
6712fc9bb5 Merge squash of the no_more_nom branch
commit e4c80b19f5149fb7dba0a9b785e22ff5323b5470
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Sun Nov 4 09:54:16 2018 -0600

    FEATURE: report better stacktraces for parsing.

commit 24b97c1037d6ddbe21f32e172b1c14cd2cfb9910
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Wed Oct 17 19:00:29 2018 -0500

    FEATURE: Use context for our error reporting.

commit c22d397545e7575608e34561a274745b28be8c2c
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Sun Oct 14 14:18:42 2018 -0500

    FIX: Better error reporting.

commit 7f47dc3f38bf6a3e8686c1fa3fd50ef97d4bf3af
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Sat Oct 13 19:42:22 2018 -0500

    REFACTOR: Pass our offsets everywhere.

commit 91d7ed690bfd9989270ba9fa4f44c70f513d54b9
Author: Jeremy Wall <jeremy@marzhillstudios.com>
Date:   Sun Sep 23 15:08:45 2018 -0500

    REFACTOR: Use abortable_parser.
2018-11-05 21:34:12 -06:00
29aed2c997 FEATURE: Some better error reporting. 2018-09-02 10:05:08 -05:00
6bcf822c41 FEATURE: Allow Quoted strings as a field name in Tuples.
Also add tuple specific regression tests.
2018-08-24 21:19:18 -05:00
f9cdd4f3f6 BUGFIX: Regression tests for our list operators and bugfixes. 2018-08-21 23:05:42 -05:00
a7a32d56b2 FEATURE: More ergonomic syntax for asserts. 2018-08-20 22:51:55 -05:00
5b38e571ee MAINT: cargo fmt 2018-08-17 10:31:45 -05:00
ed87ca353b MAINT: TODO cleanups. 2018-08-15 18:49:11 -05:00
6418533562 UI: Command line subcommands and arguments are more usable.
The build and validate commands now take a list of files to process.

The outputs for files that specify the are given the same name as
the containing file with the extension changed to the extension that
the converter specifies.
2018-08-15 18:32:28 -05:00
f3e769095d FEATURE: Parse out statements. 2018-08-13 20:37:58 -05:00
3779c4912d CLEANUP: Documentation and public interface.
* Added missing docs for public methods or functions.
* Made private methods or functions that didn't need to be exposed.
* Cleaned up spelling and grammar on some of the docstrings.
2018-07-16 17:32:09 -05:00
0fc8c537f9 CLEANUP: Cleanup some todos and unused code. 2018-07-04 12:52:00 -05:00
921643972b REFACTOR: Speed up precedence parsing.
Do less reparsing by parsing the list of operators and operands first before
performing the bottom up parsing.
2018-07-04 12:33:08 -05:00
b12ac18481 FEATURE: Benchmarking and tracing
Benchmarks and tracing as a compile time feature. This should help
while tracking down performance bottlenecks.
2018-07-02 18:30:17 -05:00
f3d995178b FIX: Bug in the macro fallback case for alt_peek 2018-06-25 15:30:02 -04:00
4875b623f7 FORMATTING: Fix cargo fmt errors in a macro. 2018-06-21 11:40:12 -04:00
5d32dc83a4 CLEANUP: Fix naming to not collide with String when using. 2018-06-10 14:13:08 -05:00
bb198d9d02 FIXES: Unit test and fixing performance regressions. 2018-06-10 13:51:19 -05:00
3524a5df73 FEATURE: Comparison binary expressions now support non-compare expressions on both sides. 2018-06-06 21:02:02 -05:00
2d71145813 FEATURE: Evaluation of an Assert Statement. 2018-06-06 20:38:53 -05:00
223d0cecf0 FEATURE: Parsing support for assert statements. 2018-06-06 20:38:53 -05:00
3ad0e3df25 FORMATTING: cargo fmt 2018-06-06 20:38:23 -05:00
5c0df5b538 FEATURE: Better error reporting using an alt_peek! macro. 2018-06-04 20:48:56 -05:00
aa8d2cab29 FEATURE: Allow trailing commas in the tuple, copy, and list syntax 2018-05-28 08:15:48 -05:00
40494fb90e CLEANUP: Comment cleanup. 2018-05-27 21:22:09 -05:00
2df6cece33 CLEANUP: Extraneous TODOs 2018-05-27 21:07:07 -05:00
cefb307783 FEATURE: Allow tuples and lists as the head of a selector. 2018-05-27 14:46:39 -05:00
988698fc01 Refactor: Improved expression parsing organization.
Any non-operator expression can be a part of an operator expression.
This cleans up and makes clearer the precendence relationships for parsing.
2018-05-26 09:12:00 -05:00
79bee4e2b4 POLISH: Better error reporting for statements. 2018-05-22 19:05:40 -05:00
fdd8a35086 CLEANUP: The great test module refactor.
Move tests into a separate file for more manageable file
organization.
2018-05-22 18:58:08 -05:00