Commit Graph

14 Commits

Author SHA1 Message Date
a408353c25 added "break" and "continue" statements
a LoopState was added to the CCompilerState struct which keeps track of breaks, start chunk index, and the start scope of the active loop.
Also, break.cosmo was added to the examples directory, 'continue' and 'break' work as expected.
2020-12-24 00:41:00 -06:00
f6aaeb3417 fixed typos 2020-12-19 13:32:43 -06:00
e5eca7bed6 Added iterable objects
__iter and __next are now reserved IStrings, OP_NEXT and OP_ITER have also been added. A new token (TOKEN_IN) has been added to the lexer. The parser now supports the for each loop (for i, ... in <object> do ... end).
savedPushed has been removed from the CCompilerState struct.
2020-12-15 21:21:51 -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
9ca67c8408 changed class -> proto 2020-12-05 17:58:56 -06:00
08c640cd58 added # operator, improved error messages 2020-11-30 12:32:04 -06:00
fe2bcf8ae6 fixed GC bug, extended strings 2020-11-27 19:34:54 -06:00
9ccb258a93 added special character support to strings 2020-11-26 12:48:36 -06:00
0745fd10a9 extended lexer, fixed table shrinking 2020-11-25 23:34:02 -06:00
46b99ab390 minor refactoring, added inc and dec operators 2020-11-19 14:41:21 -06:00
329d34aa43 fixed clang warnings 2020-11-17 13:17:23 -06:00
c42a72dfad Major refactoring, added classes, many bug fixes 2020-11-09 19:44:12 -06:00
4cd5c89d28 extended lexer to support 'this' 2020-11-05 18:43:21 -06:00
2e1b745624 Initial commit 2020-10-28 00:16:30 -05:00