Commit Graph

28 Commits

Author SHA1 Message Date
7e9b61e018 minor refactor, fixed many warnings 2021-01-01 23:06:24 -06:00
e993cdd9fa Added . get/set support for dictionaries.
cosmoO_getObject and cosmoO_setObject were renamed to cosmoV_getRawObject and cosmoV_setRawObject respectively
`__init` is now required to be defined for a proto object to be instantiated.
other minor refactoring work done in src/cvm.c
2020-12-30 17:51:59 -06:00
090cc62cce Added variadic functions
TOKEN_DOT_DOT_DOT was added to the lexer
variadic.cosmo was added to the examples directory
2020-12-26 22:01:22 -06:00
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
f6aaeb3417 fixed typos 2020-12-19 13:32:43 -06:00
0beeee0fdf Added dictionary support to OP_ITER
ISTRING_RESERVED was added to iStrings
call & callCFunction now use memmove instead of memcpy
Additionally, added cosmoO_setUserP, cosmoO_getUserP, cosmoO_setUserI and cosmoO_getUserI to the C API.
2020-12-17 19:44:04 -06:00
48ceca1834 multiple return value support added to VM 2020-12-12 21:53:12 -06:00
b1facfc92f smarter caching 2020-12-09 20:46:20 -06:00
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
6445dae04c added module names for functions 2020-12-09 12:23:16 -06:00
f8a062919f added cosmoM_addRoot & cosmoM_removeRoot 2020-12-07 15:53:23 -06:00
d00b803e6f added __setter and __getter 2020-12-06 14:11:33 -06:00
005e2acd1e added cosmoO_setUserData and cosmoO_getUserData 2020-12-06 13:38:05 -06:00
08c640cd58 added # operator, improved error messages 2020-11-30 12:32:04 -06:00
bb11b3b309 added support for __newindex 2020-11-24 15:16:37 -06:00
6d45c0a676 fixed __index 2020-11-20 15:10:49 -06:00
aaed92424f CObjMethod refactor 2020-11-17 15:07:56 -06:00
1329b72fcd fixed GC bug 2020-11-17 03:10:55 -06:00
204bec3d0a added IStrings, added __index functionality 2020-11-16 19:58:16 -06:00
c7be39a5d4 renamed metaobjects to protoobjects 2020-11-15 12:22:11 -06:00
9ebae876f6 minor refactoring, OP_INVOKE performance boost 2020-11-13 17:39:47 -06:00
08b6dcbf4c CObjMethod refactor 2020-11-12 23:04:09 -06:00
c42a72dfad Major refactoring, added classes, many bug fixes 2020-11-09 19:44:12 -06:00
aa975b7330 minor refactoring + non-zero int fixed 2020-11-05 19:53:55 -06:00
e1d33855c3 added basic objects 2020-11-03 22:10:51 -06:00
fe93a0b715 better GC debugging, added base object for tables 2020-11-02 22:32:39 -06:00
8e71cab642 fixed segfault on parser objection 2020-10-28 18:29:50 -05:00
2e1b745624 Initial commit 2020-10-28 00:16:30 -05:00