Commit graph

182 commits

Author SHA1 Message Date
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
arookas
8246538bbb Ensure the seed is an integer 2016-02-01 05:44:29 -05:00
arookas
b71a38bb34 Fixed: use the current local number 2016-02-01 05:34:56 -05:00
arookas
7fca910e8e Fixed: variables were always declared global 2016-02-01 05:34:22 -05:00
arookas
b3a347936e Added modifier lists to AST 2016-02-01 05:03:44 -05:00
arookas
cf5915222e Removed casting builtin properties 2016-02-01 05:03:18 -05:00
arookas
ec2162f752 Fixed: incorrect indices 2016-02-01 05:03:02 -05:00
arookas
3e0a2dc403 Fixed: removed cast keywords 2016-02-01 04:57:29 -05:00
arookas
25c3853309 Changed declare/define functions 2016-02-01 04:57:07 -05:00
arookas
6f74979d61 Gave sunIdentifier properties a consistent name 2016-02-01 04:56:22 -05:00
arookas
91588fae63 Fixed: builtins can't be local 2016-02-01 04:46:43 -05:00
arookas
f5af232ed4 Added modifier properties 2016-02-01 04:43:14 -05:00
arookas
780345863e Added return value to WriteJmp 2016-02-01 04:41:06 -05:00
arookas
f8a945b757 Removed spaces from file names 2016-02-01 04:37:15 -05:00
arookas
7157e79e78 Cleanup 2016-02-01 03:27:32 -05:00
arookas
4999467b29 Made the state variable local 2016-02-01 03:27:16 -05:00
arookas
723b8b64c9 Moved int/float/typeof to the standard library 2016-02-01 03:26:44 -05:00
arookas
be73c33069 Moved the statement keywords to the start of their respective modifiers productions 2016-02-01 03:25:47 -05:00
arookas
228dc80a01 Call AnalyzeExpression directly
Felt like saving a stack frame. Micro optimizations FTW
2016-02-01 03:10:21 -05:00
arookas
1842a99954 Added modifiers property 2016-02-01 03:08:35 -05:00
arookas
d070143fba Added local-keyword node 2016-02-01 01:40:30 -05:00
arookas
b57c70ee9d Added callable/storable modifiers to grammar
Still gotta add logic for them in the compiler.
2016-02-01 01:36:13 -05:00
arookas
5fa362cac1 Cache GetId result 2016-02-01 01:33:39 -05:00
arookas
837b2f8c8d Added null-check to GetId
Not the best fallback return value, but meh.
2016-02-01 01:32:09 -05:00
arookas
5483073347 Added local keyword 2016-02-01 01:28:00 -05:00
arookas
6f6306c064 Made try/catch release-only
This makes debugging a lot easier
2016-02-01 00:28:03 -05:00
arookas
9d6eb5a75c Renamed GetReader to CreateReader
I feel this better documents what is actually happening (i.e. the reader
is not a cached value and is instead generated per call).
2016-02-01 00:26:50 -05:00
arookas
ebfa60f9ba Cleanup 2016-02-01 00:25:49 -05:00
arookas
f2d46235ee Fixed: importing didn't increment context locals 2016-02-01 00:24:16 -05:00
arookas
c0e747d2bd Added local-scope for functions & script variables
Also moved name-mangling logic to its own function. Next, adding actual
support in the language.
2016-02-01 00:22:31 -05:00
arookas
32b716a3b9 Minor cleanup 2016-01-31 23:17:10 -05:00
arookas
e575a8a741 Refactored parameter/argument list productions
Now the ellipsis is validated at parse time directly in the grammar,
instead of in the sunParameterList constructor (possibly giving better
error messages). I was also able to remove the parameter/argument
transcient productions.
2016-01-31 23:13:09 -05:00
arookas
e57a55056b Tabbing 2016-01-31 21:32:41 -05:00
arookas
be3c2b1582 Removed useless header information 2016-01-31 21:31:43 -05:00
arookas
b0ad55a005 Changed how call sites are opened/closed.
Now builtin symbols also have call sites. I had to move the call-site
property out of the base class because builtins need to store
argument-count information as well.
2016-01-31 21:26:51 -05:00
arookas
b2330dfa6c Refactored break/continue compilation.
I didn't like the null overload usage. I might remove the overload
completely later.
2016-01-31 21:25:50 -05:00
arookas
eb3e679fc7 Complete overhaul of binary-writing system
- Merged sunWriter and binary-writing code from sunContext into
sunBinary
- Changed compilation functions to take sunCompiler instance instead of
a sunContext
- Completely removed links between context and binary
- Moved import logic to sunCompiler
- Made sunContext and sunBinary properties on sunCompiler so compilation
functions can access them
2016-01-31 20:03:12 -05:00
arookas
8f683d16a3 Moved system symbols to their own function 2016-01-31 14:57:08 -05:00
arookas
ca8f59dea2 Added RNG utility functions.
Intentionally did not import it in common.sun.
2016-01-31 14:32:36 -05:00
arookas
50348a9b47 Added SYS_SHINEGET and SYS_SHINENUM. 2016-01-31 14:29:41 -05:00
arookas
16cba6c798 Added position functions to sunWriter 2016-01-31 14:29:15 -05:00
arookas
6292c2f9c5 Added $switch system variable. 2016-01-29 21:56:49 -05:00
arookas
c87bad17d7 Added consume flags for loops
Obviously in preparation for switch statements.
2016-01-29 21:56:25 -05:00
arookas
758849cd17 Fixed: typo in builtin keyword 2016-01-29 21:54:25 -05:00
arookas
abd2bd5940 Added incSystemFlag and decSystemFlag. 2016-01-29 17:12:08 -05:00
arookas
35dc771a6d Added some system flag constants
Yea, I'll do more later...
2016-01-29 17:11:56 -05:00
arookas
2df6542eaf Added BGM constants 2016-01-29 17:11:27 -05:00
arookas
38633e742f Added more system builtins 2016-01-29 17:11:09 -05:00