Commit Graph

71 Commits

Author SHA1 Message Date
CPunch 181ef8a18c Added dictionaries {}
Objects are now separate from {} dictionaries

the . operator now only indexes fields on objects, the [] operator can only be used on objects if the __index or __newindex functions are defined

Additionally 4 new instructions have been added to the VM: OP_NEWDICT, OP_INDEX, OP_INCINDEX, and OP_NEWINDEX.

The syntax to create a dictionary is as follows { <key> : <value>, <otherkey> : <othervalue> } eg. { "hello" : "world", "foo" : 1337 }

The Lexer & Parser was extended to add the TOKEN_COLON ':' token.
2020-12-09 20:32:42 -06:00
CPunch 6445dae04c added module names for functions 2020-12-09 12:23:16 -06:00
CPunch 9aa7fa1381 replaced facttest.lua with fibtest.lua
Optimized the NaN box to be byte aligned, performance under the fibtest.lua script improved by ~2.5 seconds (~31 before ~28.5 after on cpunch's machine)
also cleaned up some misc. comments
2020-12-07 23:26:55 -06:00
CPunch 9ca67c8408 changed class -> proto 2020-12-05 17:58:56 -06:00
CPunch 08c640cd58 added # operator, improved error messages 2020-11-30 12:32:04 -06:00
CPunch 9dcd1c909a fixed needless pop in _main chunk 2020-11-27 19:42:00 -06:00
CPunch e784933517 fixed lexer errors 2020-11-26 12:54:45 -06:00
CPunch 0745fd10a9 extended lexer, fixed table shrinking 2020-11-25 23:34:02 -06:00
CPunch 85e7deae7b better support for OP_INCOBJECT 2020-11-20 14:50:43 -06:00
CPunch 46b99ab390 minor refactoring, added inc and dec operators 2020-11-19 14:41:21 -06:00
CPunch 3727d6bb7c OP_NEWOBJECT uses long operand 2020-11-18 14:35:58 -06:00
CPunch 9ebae876f6 minor refactoring, OP_INVOKE performance boost 2020-11-13 17:39:47 -06:00
CPunch 08b6dcbf4c CObjMethod refactor 2020-11-12 23:04:09 -06:00
CPunch 93130ede65 fixed another stack error 2020-11-12 16:23:56 -06:00
CPunch 65662e94f2 fixed stack error 2020-11-11 23:10:53 -06:00
CPunch c42a72dfad Major refactoring, added classes, many bug fixes 2020-11-09 19:44:12 -06:00
CPunch aa975b7330 minor refactoring + non-zero int fixed 2020-11-05 19:53:55 -06:00
CPunch 4cd5c89d28 extended lexer to support 'this' 2020-11-05 18:43:21 -06:00
CPunch e1d33855c3 added basic objects 2020-11-03 22:10:51 -06:00
CPunch 8e71cab642 fixed segfault on parser objection 2020-10-28 18:29:50 -05:00
CPunch 2e1b745624 Initial commit 2020-10-28 00:16:30 -05:00