arookas
0840a33f9b
Complete rewrite of the symbol resolution API.
...
- Constants are now symbols alongside variables in the "storable" symbol
class.
- Added Resolve* and MustResolve* versions in the new symbol-resolution
API.
- Moved storable-symbol compilation code out of the AST classes and into
the respective symbol classes. Storable symbols have extra compile
methods for get, set, increment, and decrement operations.
- Adapted the scope class accordingly.
- Added checks against assignment to constant symbols (which all throw
sunAssignConstantException).
2015-12-27 22:39:55 -05:00
arookas
664d1e227e
Added constant-assignment exception.
2015-12-27 21:56:52 -05:00
arookas
eb636f2674
Added sanity check.
2015-12-27 21:05:38 -05:00
arookas
7e6c43d91e
Token class cleanup.
2015-12-27 21:05:25 -05:00
arookas
af2a00f225
Added open/close sanity checks.
2015-12-27 21:04:29 -05:00
arookas
a5ec72e1f9
Member field naming convention.
2015-12-27 21:03:38 -05:00
arookas
063a092730
Fixed: don't redeclare the builtin.
2015-12-27 21:00:21 -05:00
arookas
8f9e8b75f5
Revert "Add script-scope variables to the symbol table."
...
This reverts commit ee5cff3900
.
2015-12-23 20:38:47 -05:00
arookas
ee5cff3900
Add script-scope variables to the symbol table.
2015-12-23 20:30:07 -05:00
arookas
102f623cd1
Made ResolveVariableOrConstant less hacky.
2015-12-23 20:28:03 -05:00
arookas
c4532d85e7
Fixed: clear the tables and stacks from the previous operation.
2015-12-23 20:22:37 -05:00
arookas
c4fc1f9f4f
Added a clear function.
2015-12-23 20:21:58 -05:00
arookas
0ab5431c5f
Made variable symbols write a custom name.
2015-12-23 20:20:13 -05:00
arookas
684a8a3197
Made symbols write their table entries themselves.
...
This will allow for overriding the writing code for specific symbol
types.
2015-12-23 20:17:16 -05:00
arookas
ac51f19b85
Fixed: correctly calculate symbol-name lengths.
...
Even though the grammar promises us the symbol names will never occupy
more than one byte per character, it's good practice to add this anyway
(since we already do it for the data table).
2015-12-23 20:08:54 -05:00
arookas
7672bea631
Removed the unused sunFileArgs class.
2015-12-23 20:03:40 -05:00
arookas
cde799eadd
Added an open/close interface to the context class.
2015-12-23 20:03:14 -05:00
arookas
44eab8e9e6
Fixed: don't recurse into function bodies when calculating maximum local counts.
2015-12-21 04:57:00 -05:00
arookas
694210cd5a
Fixed: incorrect variable count in header.
2015-12-21 04:55:00 -05:00
arookas
8e4d9acb31
Made CalculateMaxLocalCount a property.
2015-12-21 04:50:17 -05:00
arookas
9ace3833cb
Renamed symbol table classes.
2015-12-21 04:49:22 -05:00
arookas
5accab46db
Updated language documentation to reflect recent changes.
2015-12-18 19:53:06 -05:00
arookas
babd420e6a
Fixed: I accidentally a or two
2015-12-18 19:52:38 -05:00
arookas
d804f7dd66
Moved mkfr compilation to before the function body.
2015-12-18 19:52:23 -05:00
arookas
7c7ab8790e
Added CalculateMaxLocalCount.
2015-12-18 19:51:23 -05:00
arookas
5a3a01ac8b
Made compound statements their own AST node type.
2015-12-18 19:50:55 -05:00
arookas
73257ed389
Removed support for compound assignment definitions.
2015-12-18 18:57:24 -05:00
arookas
a7e10679d4
Added PushAddress (SPC command 0x3).
2015-12-14 14:47:19 -05:00
arookas
c7853af3cf
Added nop (SPC command 0x5).
2015-12-14 14:47:04 -05:00
arookas
d7742f392f
Fixed: typo.
2015-12-13 22:45:13 -05:00
arookas
82443b4015
Fixed: talk's final yield loop is for TALKF_WAIT.
2015-12-13 09:22:42 -05:00
arookas
e7c2318a4b
Made better error messages for sunImportException.
2015-12-13 01:20:26 -05:00
arookas
6edee006ad
Renamed 'sunScriptException' to 'sunSourceException'.
2015-12-13 00:57:21 -05:00
arookas
dfde9c2b20
Fixed: account for full-width characters in error-line preview.
2015-12-13 00:55:05 -05:00
arookas
6a85f0b8b0
Added JDK requirement notice.
2015-12-12 18:13:27 -05:00
arookas
cf88da7f50
Added basic compilation information.
2015-12-12 18:04:49 -05:00
arookas
7527ba5bc6
Added lib directory to premake config.
2015-12-12 17:49:13 -05:00
arookas
bed6d56ecc
Added premake5 configuration.
2015-12-12 17:41:54 -05:00
arookas
de7832f048
Added arookas library files.
2015-12-12 17:41:40 -05:00
arookas
96174aa074
Moved grammatica-.1.6.dll.
2015-12-12 17:38:44 -05:00
arookas
e5c8e9a8b7
Moved the ssc API code to its own folder.
2015-12-12 17:00:04 -05:00
arookas
8d899d019a
Fixed: dispose file even if an error occurs.
2015-12-12 16:52:34 -05:00
arookas
2fcab65c22
Added error-line preview to frontend.
2015-12-12 16:51:31 -05:00
arookas
85149f931e
Renamed frontend folder.
2015-12-12 12:53:31 -05:00
arookas
3d2f1fe230
Added some stdlib scripts.
2015-12-12 12:51:32 -05:00
arookas
7bdcb485b3
Factored out some of the useless members.
2015-12-12 12:44:39 -05:00
arookas
b4542b50d9
Fixed: woops, forgot to push this in f506572
.
2015-12-12 12:41:40 -05:00
arookas
f506572894
Fixed: variable indices were incorrect in nested scopes.
2015-12-12 12:40:37 -05:00
arookas
84c4326c09
Fixed: data length was calculated incorrectly.
2015-12-12 12:39:57 -05:00
arookas
a8a67c6b16
Made links to language.md.
2015-12-10 22:07:31 -05:00