41 Commits

Author SHA1 Message Date
b36a9513eb MAINT: eprintln and dbg cleanup 2019-11-09 18:54:46 -06:00
Jeremy Wall
949d468f55 DEV: Fix escaping in both strings and format strings. 2019-08-12 18:10:48 -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
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
97d2493441 MAINT: remove unnecessary cloning 2019-03-26 21:09:16 -04: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
efef2bc3d2 FIX: Better error reporting for binary expressions.
Closes #34
2019-02-03 14:09:07 -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
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
6d5d4c79de FEATURE: Declarative failures.
FIXES: #30
2019-01-19 11:39:37 -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
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
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
b24980bd1f MAINT: Doc fixes. 2019-01-03 10:20:59 -06:00
e9a0bde631 MAINT: Opt in to 2018 edition of Rust. 2018-12-06 12:23:52 -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
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
a7a32d56b2 FEATURE: More ergonomic syntax for asserts. 2018-08-20 22:51:55 -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
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
bb198d9d02 FIXES: Unit test and fixing performance regressions. 2018-06-10 13:51:19 -05:00
223d0cecf0 FEATURE: Parsing support for assert statements. 2018-06-06 20:38:53 -05:00
c008d689a1 FEATURE: Error message improvements.
Selector path lookup errors render better.
We also include the actual file name we are parsing now.
2018-05-30 22:31:55 -05:00
e86186b709 CLEANUP: Formatting
cargo fmt
2018-05-29 20:48:57 -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
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