Commit Graph

12 Commits

Author SHA1 Message Date
CPunch 7e9b61e018 minor refactor, fixed many warnings 2021-01-01 23:06:24 -06:00
CPunch be7a291ff2 added SAFE_STACK flag 2021-01-01 20:02:36 -06:00
CPunch 509823e1bc detect stack overflows 2021-01-01 19:20:24 -06:00
CPunch 31a852a127 Added cosmoV_pushFString(), and cosmoO_pushVFString().
cosmoV_error now pushes the error string onto the stack, as well as uses cosmoO_VFString to format strings.
cosmoV_concat is now entirely self contained, and is now stack based. Push the CValues you want to concat into strings onto the stack and call cosmoV_concat with the # of values you pushed.
2020-12-22 15:13:11 -06:00
CPunch 48ceca1834 multiple return value support added to VM 2020-12-12 21:53:12 -06:00
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 e0d51c191f renamed cosmoV_makeObject 2020-12-05 17:55:09 -06:00
CPunch 71d3a8e1c4 added cosmoV_error 2020-11-13 12:54:06 -06:00
CPunch 08b6dcbf4c CObjMethod refactor 2020-11-12 23:04:09 -06:00
CPunch 279714f3e0 added push wrappers 2020-11-12 17:17:41 -06:00
CPunch c42a72dfad Major refactoring, added classes, many bug fixes 2020-11-09 19:44:12 -06:00
CPunch 2e1b745624 Initial commit 2020-10-28 00:16:30 -05:00