137 Commits

Author SHA1 Message Date
3017ced8d9 DEV: A while raft of unit test fixes for error reporting mostly. 2019-10-17 17:57:06 -05:00
e256abfee6 DEV: Plugin the VM to our FileBuilder.
Most of the tests do not yet pass and the main.rs doesn't compile
but we are snapshotting here so we can start fixing unit tests
before we hook directly into the main.rs.
2019-10-17 17:57:06 -05:00
9f31a16b93 DEV: A first pass at the runtime.
Minus the actual compiling of a file in imports.
2019-10-17 17:57:04 -05:00
a7aab10723 DEV: The beginnings of a runtime for the opcode vm. 2019-10-17 17:57:04 -05:00
b6c208fb97 REFACTOR: Keep the bytecodes in memory
This will help us implement functions and modules.
Also move each of the operations into a separate method.
This will help the readability of our run method.
2019-10-17 17:57:03 -05:00
d4b7bdcd46 DEV: Basic primitives and operations on them in a VM Stack Machine. 2019-10-17 17:57:03 -05:00
Jeremy Wall
cd4fdfb9be DEV: Fix bug in eval command when you don't specify an input file. 2019-08-12 11:40:51 -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
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
07d132bebc CLEANUP: an errant debug printf... 2019-05-28 20:50:50 -05:00
c5d608216a FEATURE: Repl commands.
Adds: #help and #del

Closes #46
2019-05-28 20:29:18 -05:00
879a8d2100 DEV: for the repl use case allow changed file reimports.
Closes #47
2019-05-28 19:55:35 -05:00
1589aaf7d7 Refactor: Use trait constraints instead of a trait object for our assets cache. 2019-05-28 18:24:02 -05:00
9382563dfc DEV: Adds a Repl for ucg.
Uses a StatementAccumulator to handle the accumulation of lines
until a line terminated with a statement is encountered.

Fixes #41
2019-05-26 16:20:19 -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
525cdd32e6 FEATURE: Use the AST Pretty Printer for TRACE and assert output. 2019-05-17 19:49:13 -05:00
ec756636b0 FEATURE: Add a TRACE pragma for assitance debugging ucg files. 2019-04-26 19:19:43 -05:00
439ebf74f3 FEATURE: Give modules a reference to self. 2019-04-24 19:13:22 -05:00
3385c775d3 MAINT: Fix small comment inaccuracy. 2019-04-18 20:22:35 -05:00
1fbd1c0a50 FIX: Bug in dot_lookups
curr_val forms the basis of the scope search but it shouldn't be part of the
lookup expression for the field.
2019-04-18 17:36:16 -05:00
0e41a40ab3 FEATURE: Add a function to the mod binding that imports the containing package. 2019-04-16 20:09:27 -05:00
0e2e396ac3 FIX: Include source file for parsing/build errors in the std lib. 2019-04-15 22:18:39 -05:00
1f7d405a3b MAINT: Cleanup todos and unnecessary code. 2019-04-08 21:42:39 -05:00
2e38a3486e FIX: import cycle detection which was broken. 2019-03-29 10:24:07 -04:00
df8834dddc FIX: Grouped Expressions store their position properly now. 2019-03-26 20:45:33 -04:00
263e91c9f9 MAINT: Cleanup some todos and wording. 2019-03-23 21:16:30 -05:00
708f23c674 MAINT: cleanup old FIXME comment. 2019-03-21 19:53:49 -05:00
b6a7f9778c FEATURE: OS portable import and include paths.
Adds #38
2019-03-20 20:08:43 -05:00
f86d9b8ec6 FIX: Better error messages when importing.
If the path or directory doesn't exist show the invalid path in the
error message.

Fixes #37
2019-03-19 20:11:26 -05: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
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
0e5751c2b0 REFACTOR: Use our new handy dandy to_boxed method on BuildError. 2019-02-20 21:21:48 -06:00
923ba89e2f REFACTOR: Correctly use parse errors as a cause. 2019-02-20 20:39:28 -06:00
1699801895 FEATURE: Wrap include failures in a Build Error.
This is way more ergonomic for the users.
2019-02-20 20:29:32 -06:00
014710a4ba FEATURE: Allow BuildErrors to wrap other errors. 2019-02-20 20:28:05 -06:00
8639912567 FEATURE: BuildError no longer requires a position. 2019-02-19 17:38:13 -06:00
ceaed5c543 REFACTOR: No longer require PositionedItem for Val::Tuples. 2019-02-19 16:38:06 -06:00
3cfbe6564c FEATURE: Empty files result in Val::Empty as their result.
We also print a warning message for the consumer.
2019-02-19 15:32:04 -06:00
c7a87894ba FEATURE: Add the %% modulo operator. 2019-02-18 21:09:42 -06:00
214045f1a6 FIX: Better error messages for func calls.
Also better more consistency for some type fails in other expressions.
2019-02-08 20:57:13 -06:00
a1bc81ee89 FIX: Better error reporting for copy calls 2019-02-08 19:01:16 -06:00
6de26820c8 FEATURE: better error reporting for out statements 2019-02-06 21:06:05 -06:00
d354d9e67d REFACTOR: build_assert -> eval_assert for consistency 2019-02-06 20:44:15 -06:00
24a4dc85c2 REFACTOR: the format logic belongs in the build module. 2019-02-06 20:35:33 -06:00
efef2bc3d2 FIX: Better error reporting for binary expressions.
Closes #34
2019-02-03 14:09:07 -06:00
a74d44c171 FIX: Even more and better error reporting.
Addresses: #34
2019-02-03 14:08:39 -06:00