arookas
fefb17524c
Only write MKFR if there are actually locals
...
Saves a single instruction, but only sometimes. Woo!
2016-02-05 01:55:48 -05:00
arookas
9749b81452
Got rid of scopes (for now)
...
The remnants of the previous sub-scope implementation is now hidden
behind a dummy preprocessor symbol. I don't know if I'll add it back,
but it'll at least be a while. The byte code and symbol table just don't
like it.
2016-02-05 01:52:56 -05:00
arookas
8ff73fe0f4
Made PushLoop protected
2016-02-04 16:35:32 -05:00
arookas
fe69761fc9
Removed unused WriteCALL overload
2016-02-04 00:54:40 -05:00
arookas
7a81a4db2c
Made use of the null return value
2016-02-03 23:22:54 -05:00
arookas
908ceedc58
Whoops, forgot to commit this in e8c2b09
...
Now you CAN actual use address literals, at least in expressions.
Whippee, look 'ma, I can use git! 👍
2016-02-03 23:04:02 -05:00
arookas
e8c2b09105
Added address literals
...
I don't know why someone would want to use a pointer literal in a
script, but now you can because there's an opcode for it and fuck it.
2016-02-03 23:02:25 -05:00
arookas
05c8bce662
Added IEnumerable implementation
2016-02-03 22:44:28 -05:00
arookas
c1dc527007
Fixed: ADR command is unsigned
...
Which reminds me that I need to add address literals to the grammar so ssc can actually output this opcode...
2016-02-02 23:33:53 -05:00
arookas
15a5e254b6
Fixed: minor typo in code example
2016-02-02 19:17:29 -05:00
arookas
c95411a83b
Updated language documentation
2016-02-02 12:21:37 -05:00
arookas
63c5abc42d
Removed var-alloc premake option
...
I'll add it back later once there is a better configuration for variable
allocation.
2016-02-02 01:38:04 -05:00
arookas
12f8ba2fc6
Added overload to variable-symbol constructor
2016-02-01 20:41:55 -05:00
arookas
e76205afea
Minor refactoring
2016-02-01 20:31:54 -05:00
arookas
b68f22180d
Removed space from file name
2016-02-01 20:28:40 -05:00
arookas
d00036ff8e
Clean variable symbols as well
...
Even though it is kind of ass (a variable is considered used even if it
simply has a single definition statement)...
2016-02-01 20:26:02 -05:00
arookas
085e04798e
Added symbol table cleaning functions
2016-02-01 19:18:19 -05:00
arookas
675f2ab4a7
Moved local identifiers to resolver and AST
...
Now the local identifier is associated with each node so symbols in
function bodies (which are compiled long after the associated
sunScriptFile instances are closed) can be mangled correctly.
2016-02-01 19:17:56 -05:00
arookas
04aba6938b
Added overloads to the mangling function
2016-02-01 19:15:55 -05:00
arookas
116aa7996f
Removed local stack from context
...
Now the mangle function requires the local identifier being passed
directly.
2016-02-01 19:15:21 -05:00
arookas
ba559b3fa3
Compile only used functions/builtins
...
Uses iteration as to properly detect functions called only from within
other functions (which appear unused from the global scope).
2016-02-01 15:53:14 -05:00
arookas
dc559130bf
Added RemoveAt function
2016-02-01 15:50:56 -05:00
arookas
db6739be42
Refactored mangling function
...
Utilizes a string builder instead of shitty String.Concat trickery
2016-02-01 15:50:46 -05:00
arookas
1d324baf9d
Added indexer
2016-02-01 15:41:31 -05:00
arookas
f76c5126b9
Moved compilation steps to their own functions
2016-02-01 15:06:35 -05:00
arookas
37280f45d2
Added remove function
2016-02-01 14:58:55 -05:00
arookas
e12607790f
Added compile-count property to callable symbols
2016-02-01 14:58:40 -05:00
arookas
08ca27a4b9
Added clean-symbols option
...
Going to add the actual logic for it later
2016-02-01 14:23:24 -05:00
arookas
b147006ffe
Removing packed variables mode
...
I halfway did it in dc223e5
. Here's the other half. Also some minor
cleanup/refactoring as per usual.
2016-02-01 14:16:10 -05:00
arookas
30c3f6f19c
Cleanup
2016-02-01 14:14:09 -05:00
arookas
76b57ca3f8
Fixed: code gen for system builtins
2016-02-01 14:04:57 -05:00
arookas
193374ae50
Fixed: close all relocations, not just callsites
2016-02-01 14:04:29 -05:00
arookas
dc223e5c26
Fixed: correctly resolve storable symbols
2016-02-01 14:03:56 -05:00
arookas
6f1dec212b
Remove space from file name
2016-02-01 14:02:56 -05:00
arookas
53a50fb62c
Added CreateCallSite
...
Similar to what I had before. Gonna be utility for sunFunctionCall.
2016-02-01 12:45:12 -05:00
arookas
d384899888
Made variables open relocations
...
This automatically makes it be able to detect if the variable is used at
all, as well, as HasRelocations will be false if none of these have
executed.
2016-02-01 12:39:30 -05:00
arookas
39617cbaf7
Fixed: leftover override
2016-02-01 12:38:12 -05:00
arookas
485c703f20
Made display and index writable
2016-02-01 12:33:25 -05:00
arookas
c3e358adba
Moved call-site behavior to base class
2016-02-01 12:33:04 -05:00
arookas
436718ecf0
Added relocation types
2016-02-01 12:24:57 -05:00
arookas
8c655bb110
Changed WriteCALL functions
...
Changed sunPoint to a plain uint so one can manually place their own
dummy offset if needbe, without using the point system.
2016-02-01 12:20:55 -05:00
arookas
07646b11b3
Minor cleanup
2016-02-01 11:45:52 -05:00
arookas
8e093a98c7
Minor cleanup
...
Now it constructs the context and parser only once.
2016-02-01 06:30:32 -05:00
arookas
9373c59c44
Minor cleanup
2016-02-01 06:23:59 -05:00
arookas
f00b7c4296
Fixed: construct file instance with absolute path
...
Before it was set to the local name (from the import statement), and
then would fail because the code compares them to the full path later.
2016-02-01 06:23:31 -05:00
arookas
03fb7c20b4
Fixed: fully qualify the path
2016-02-01 06:21:01 -05:00
arookas
4d86f6449b
Normalize path delimiters
2016-02-01 06:17:22 -05:00
arookas
bb28e47117
Fixed: const callables still flagged expressions as dynamic
2016-02-01 06:02:21 -05:00
arookas
4aebe57432
Fixed: return null instead of throwing an exception
2016-02-01 05:51:04 -05:00
arookas
5292b55078
Fixed: default kept state between compilations
...
I know having a property return an instance every call is not a good
design. I get it.
2016-02-01 05:48:12 -05:00