Commit graph

255 commits

Author SHA1 Message Date
arookas
54bd3618e3 Added expression analysis.
Also gave the AST cast nodes a base class while I was at it.
2015-12-28 14:22:54 -05:00
arookas
6be1779781 Added an error for constant expressions. 2015-12-28 14:20:44 -05:00
arookas
5f3c86669b Changed break/continue error messages. 2015-12-28 14:19:14 -05:00
arookas
7c9aa8fe89 Cleanup. 2015-12-28 14:17:09 -05:00
arookas
6997b75403 Renamed AnalyzeExpression. 2015-12-28 13:15:13 -05:00
arookas
bd7485924a Reformatting. 2015-12-28 12:34:19 -05:00
arookas
af3950c65e Fixed: missing commas to option table. 2015-12-28 12:33:42 -05:00
arookas
41f69f76bb Fixed: incorrect define name for variable packing. 2015-12-28 10:36:31 -05:00
arookas
2f9b251fd8 Cleanup.
TIL I can set the automatic formatting of opening braces in VS. What
have I been doing all this time??
2015-12-28 03:37:10 -05:00
arookas
f5394f56d0 Cleanup. 2015-12-28 03:13:30 -05:00
arookas
aa61439095 Renamed sunVariableAssignment. 2015-12-28 02:50:06 -05:00
arookas
af2255fbe5 Renamed sunConstDefinition. 2015-12-28 02:49:34 -05:00
arookas
d52ef38a89 Fixed: updated variable count in header. 2015-12-28 02:48:37 -05:00
arookas
500a784ab0 Added variable-allocation option. 2015-12-28 02:48:13 -05:00
arookas
1b514eecff Made variable-packing optional. 2015-12-28 02:47:49 -05:00
arookas
63740ea381 Fixed: hierarchy treated variable assignments as definitions in local counting. 2015-12-28 02:44:43 -05:00
arookas
72387d95eb Updated the assignment-operator compilation code. 2015-12-28 02:40:42 -05:00
arookas
de28ee84f9 Refactored declaration code. 2015-12-28 01:22:54 -05:00
arookas
fd21da0982 Fixed: don't count constants when calculating global/local counts. 2015-12-28 01:22:26 -05:00
arookas
d1d1a2a4a0 Added script- and function- roots. 2015-12-28 01:09:43 -05:00
arookas
372c622b84 Added storable and constant counts. 2015-12-28 00:59:26 -05:00
arookas
b387609a56 Cleanup. 2015-12-28 00:57:43 -05:00
arookas
3fd8c28230 Cleanup. 2015-12-28 00:50:52 -05:00
arookas
4d7898f723 Changed brace style. 2015-12-28 00:48:47 -05:00
arookas
237c6f746f Refactored variable- and constant- resolution. 2015-12-27 23:41:37 -05:00
arookas
61e0b220b4 Removed WriteSymbolTable and WriteStringTable. 2015-12-27 23:10:11 -05:00
arookas
80c4c94b28 Cleanup. 2015-12-27 22:58:15 -05:00
arookas
0794267ff0 Added DeclareConstant. 2015-12-27 22:57:06 -05:00
arookas
c8056ac960 Cleanup. 2015-12-27 22:54:18 -05:00
arookas
4d947f5b6f Cleanup. 2015-12-27 22:51:42 -05:00
arookas
402459d997 Removed DeclareParameter. 2015-12-27 22:48:44 -05:00
arookas
e9ee07f15c Removed unusedd sunConstInfo class. 2015-12-27 22:48:17 -05:00
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