458 Commits

Author SHA1 Message Date
4d11d26e13 FIX: Couldn't parse list indexes in a selector. 2017-12-24 15:24:43 -05:00
336dd5e5ea FEATURE: Parsing of comments. 2017-12-24 15:24:06 -05:00
4c2528fe07 FEATURE: Allow expressions at the beginning of a Selector. 2017-12-21 19:44:55 -06:00
8489205d88 CLEANUP: extra entries in the Cargo.lock file and TODO.md 2017-12-09 10:30:41 -06:00
7a0a194fb9 Feature: Better error reporting.
* Common Error Type with line and column reporting.
* Removed some todos.
2017-12-09 10:02:45 -06:00
3acf8e4679 Readability: Breakup some functions.
Smaller functions make it easier to read the code.
2017-12-03 18:24:26 -06:00
64e4fb6a28 Cleanup: Extraneous types, compact code, and fmt.
* Got rid of LocatedNode since it was the same thing as Positioned.
* Positioned has a constructor now.
* Cleaned up some unnecessary macros.
* Created some more macros to make code more compact.
* Ran cargo fmt
* Some fixes to the README.
2017-12-03 17:24:13 -06:00
091cde9ffb Feature: add list concatenation. 2017-11-30 22:39:41 -06:00
fffdad589c Refactor: Finish converting all the enum types to tuple around struct pattern. 2017-11-29 19:07:36 -06:00
2b01e8611b Documentation: Update the README with new features. 2017-11-29 18:49:20 -06:00
389f395383 Cleanup: formatting and todos
cargo fmt
changed a fixme to a todo
2017-11-29 18:42:33 -06:00
594e14cd0f Updated Exmple 2017-11-26 13:08:47 -06:00
1125784ec7 Updated TODO list 2017-11-26 13:06:45 -06:00
3108672bd2 List support for dotted selectors 2017-11-26 13:06:05 -06:00
15ef33095d Add a TODO.md for planning purposes. 2017-11-26 12:24:05 -05:00
afdd2e5be8 List Parsing and evaluation support.
Also some formatting and todo cleanup.
2017-11-26 12:22:58 -05:00
fc757eee1f Add doc task for this project. 2017-11-15 22:45:09 -06:00
2382cf9874 Wire up our converters for the Intermediate config data structures. 2017-11-15 22:44:34 -06:00
e975dea201 cleanup: fix some selector vs symbol parsing issues
Add test coverage of selector parsing.
2017-11-15 22:41:55 -06:00
3ab5d27fc7 Don't make backups when running cargo fmt.
We have version control...
2017-11-08 22:42:17 -06:00
8357cb0775 Add gitignore 2017-11-08 20:12:37 -06:00
45453e4544 Add a vscode task I commonly use 2017-11-08 20:11:53 -06:00
b8c7d660e5 No more Optional Position information. 2017-11-08 20:06:38 -06:00
0be96dc851 cargo fmt 2017-11-08 18:55:10 -06:00
4f3cc3dbf6 Thread position information through to more places. 2017-11-08 18:44:56 -06:00
1e3d19755c Add location information for all tokens.
Also add optional position information for some of the AST elements.
2017-11-05 15:26:52 -06:00
45d0fb6e59 Add tokenizer mode that uses nom to parse the individual tokens.
This allows us to start to break down the problem into tokens and their
position in the parsed syntax.
2017-10-02 21:32:06 -05:00
c091878364 Add a macro for constructing values with or without a position. 2017-09-23 11:33:50 -05:00
c91ff1c218 Update nom to version 3.2+ and add nom_locate as a dependency. 2017-09-21 17:50:09 -05:00
14bbd19f16 Renamed BinaryExpression to BinaryOpDef for consistency. 2017-09-21 08:12:18 -05:00
53d598b773 Refactor Add position fields to our Expression Definition Structs 2017-09-21 08:10:09 -05:00
f95ecddea2 Refactored Binary Expressions to a common type and cleaned it up 2017-09-21 07:50:34 -05:00
a8b6e7f851 Refactor the Format Expression to use a FormatDef struct. 2017-09-21 07:50:11 -05:00
42fe368dae Refactor the Copy expression to use a CopyDef struct. 2017-09-21 07:49:43 -05:00
b3677861c6 Add datastructure to support tracking position of Value nodes in the AST. 2017-09-21 07:49:17 -05:00
6c3662d361 Revert "WIP: Track the positions of our tokens and AST elements."
This reverts commit b4ec44323b25f7532964a543ac52e905349dc314.
2017-09-18 18:32:47 -05:00
b4ec44323b WIP: Track the positions of our tokens and AST elements. 2017-09-12 20:08:58 -05:00
31dadd47f6 Add a validation step for Macros.
Ensure that only symbols declared in the macro arguments are used in
the expressions.
2017-09-07 14:29:32 -05:00
45b9712380 Some Refactoring and cleanups.
* Moved the AST datastructures into their own module.
* Collapsed the Expression Enum to just wrappers around structs
  instead of having actual structs in the definitions.
* Added a few more unit tests to ensure nothing got broken.
* Added documentation for the new structs.
* Added a unifying BinaryExpression Tuple type.
2017-09-06 18:16:28 -05:00
9b367fa2d2 Allow '-' and '_' in symbols. 2017-08-11 23:16:13 -05:00
9df7d57f69 Add format string support. 2017-08-09 21:21:36 -05:00
200db01b13 Add documentation for the base types and simple expressions. 2017-07-30 09:09:43 -05:00
42b5b8f656 Expand the examples section of the README. 2017-07-29 13:20:57 -05:00
c00306337b Cleanup warnings. 2017-07-29 13:02:47 -05:00
0453a6043d Store the result of the last statement in the builder. 2017-07-29 12:57:34 -05:00
c71d668529 Cleanups and Addtional Tests. 2017-07-29 12:22:30 -05:00
a3b2b605a2 Convert Value::Tuple to Val::Tuple using the value_to_val method. 2017-07-29 12:07:06 -05:00
20c360af67 Let Statement Evaluation 2017-07-29 11:50:09 -05:00
c1c05cad7c Implement Macros and Select.
Note: We change all our lifetimes in this.

It was getting too complicated for this first pass to avoid
copies. This makes lifetime management much easier to handle.

Each one of Val, Value, and Expression contain no references anymore.
2017-07-25 20:23:49 -05:00
1ee7409367 Lambdas are probably better named as macros. 2017-07-12 20:55:03 -05:00