jberg
e8e49103a9
simplify type coercion / fix destructuring related error ( #807 )
2019-11-30 13:42:53 -08:00
jberg
9007b1c4ee
More basic tests ( #805 )
...
* add more basic tests
* add/update passing test strings
* only coerce if int is on LHS
2019-11-30 13:42:53 -08:00
jberg
1146ce4758
implement more operators and coerce types ( #804 )
...
* implement more operators and coerce types
* add remaining operators
2019-11-30 13:42:53 -08:00
Jordan Eldredge
8e0f50a2e6
Fix initial paused state
2019-11-30 13:42:53 -08:00
Jordan Eldredge
66c3a5c058
Improve debugging
2019-11-30 13:42:53 -08:00
Jordan Eldredge
cf2e8992af
Use a reducer to update state
2019-11-30 13:42:53 -08:00
jberg
6b1301cef9
check type on modulo ( #803 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
dcbcd20a65
Implement more operators and add debugger
2019-11-30 13:42:53 -08:00
Jordan Eldredge
c02b59219c
Inject logger
2019-11-30 13:42:53 -08:00
Jordan Eldredge
6ce7193bc0
Reenable tests
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0abccdd211
Allow parser.js to run in the browserFor some reason object destructuing makes someone assume we should be using es6 exports
2019-11-30 13:42:53 -08:00
Jordan Eldredge
736a922cba
Compensate for the upcoming i++
2019-11-30 13:42:53 -08:00
Jordan Eldredge
5c4c82f4d8
Start running basic test
2019-11-30 13:42:53 -08:00
Jordan Eldredge
deb8289d6a
Add missing opcodes
...
the basicTest.m file, compiled by the Winamp3 compiler (and perhaps others) output these opcodes which are unknown to the decompiler. I _think_ this is what they are supposed to be.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
f94fcf2579
Consolidate line
2019-11-30 13:42:53 -08:00
jberg
cf9c58c31b
add basic maki operator tests ( #802 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ec25acfc1e
Extract version info
2019-11-30 13:42:53 -08:00
Jordan Eldredge
44fb10d776
Inline calculating position
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ec754cfbce
Pull local functions into their own thing
2019-11-30 13:42:53 -08:00
Jordan Eldredge
53c06ab7c4
Move binding logic into Variable
2019-11-30 13:42:53 -08:00
Jordan Eldredge
d52129c5d9
Improve error message for missing classes
2019-11-30 13:42:53 -08:00
Jordan Eldredge
27aba0b826
Add commented version of interpreting maki
2019-11-30 13:42:53 -08:00
Jordan Eldredge
39bad700e9
Handle unknown objects better
2019-11-30 13:42:53 -08:00
Jordan Eldredge
ff26800905
Split out function for formatting ids
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0711ac4bbf
Use the name "data"
2019-11-30 13:42:53 -08:00
Jordan Eldredge
8806b78c0a
Don't use buffer when parsing maki
2019-11-30 13:42:53 -08:00
Jordan Eldredge
256e24d83d
Move the maki-interpreter experiment into the modern experiment
...
We're getting to a place where it's going to be feasible to test the
Maki interpreter in the browser, so it makes sense to merge the two
experiments.
2019-11-30 13:42:53 -08:00
jberg
7db826ffba
add simple skin ( #801 )
2019-11-30 13:42:53 -08:00
Jordan Eldredge
2337fa93e7
Homonyms, how do they work?
2019-11-30 13:42:53 -08:00
Jordan Eldredge
0f35f71737
Get rid of props
2019-11-30 13:42:53 -08:00
Jordan Eldredge
4a15cde301
Start writing MakiFile to use a Uint8Array under the hood
...
For now we do both and assert that they behave the same
2019-11-30 13:42:53 -08:00
Jordan Eldredge
26009a7cd1
Error on invalid arg type
2019-11-30 13:42:53 -08:00
Jordan Eldredge
9117b0572a
Don't use Buffer outside of MakiFile
2019-11-30 13:42:53 -08:00
Jordan Eldredge
94aaa2eb7b
Setup multi version test
2019-11-30 13:42:53 -08:00
Jordan Eldredge
b2eedf67fd
Don't share subscriptions between instances
2019-11-30 13:42:53 -08:00
Jordan Eldredge
afb3b7851a
Add first integration test
2019-11-30 13:42:53 -08:00
Jordan Eldredge
9116793fb9
Pass values to functions, not variables.
2019-11-30 13:42:53 -08:00
Jordan Eldredge
502dade90a
Fix typo
2019-11-30 13:42:53 -08:00
Jordan Eldredge
3804621603
Allow cli to be executed directly
2019-11-30 13:42:53 -08:00
jberg
7be3eb1fe8
multiple versions of maki compiler ( #800 )
...
* multiple versions of maki compiler
* move compilers to reference dir
2019-11-30 13:42:53 -08:00
Jordan Eldredge
c432379a85
Get rid of advanceDEPRECATED
2019-11-30 13:42:53 -08:00
Jordan Eldredge
332270b499
Convert Parser into a function
2019-11-30 13:42:53 -08:00
Jordan Eldredge
b86458a164
Start splitting out the stateful part of Parser
...
This should set us up for two things:
1. Using a typed array instead of a buffer, since the reading logic is now encapsulated
2. Making parse a function instead of a class
2019-11-30 13:42:53 -08:00
Jordan Eldredge
bbf8c4b175
Improve comments
2019-11-30 13:42:53 -08:00
Jordan Eldredge
8e708b5d09
Clean up comments
2019-11-30 13:42:53 -08:00
Jordan Eldredge
97f549a860
Improve code organization and document it
2019-11-30 13:42:53 -08:00
Jordan Eldredge
c2a43e85fc
Split out runtime
2019-11-30 13:42:53 -08:00
Jordan Eldredge
4a2e783577
Move parser into its own file
2019-11-30 13:42:53 -08:00
Jordan Eldredge
6b5a9d945b
Split out interpreter
2019-11-30 13:42:53 -08:00
Jordan Eldredge
5ae08b6fc8
Separate runtime
2019-11-30 13:42:53 -08:00