Commit Graph

23 Commits

Author SHA1 Message Date
CPunch b3587f48a2 added os.open(); new file object
eg.
```lua
local err, file = os.open("LICENSE.md")
if err then
    // do error handling stuff
end

// passing "a" to read() will read the whole file
print(file:read("a"))
```
2023-09-05 14:38:24 -05:00
CPunch f76f2ffa92 refactoring and cleanup
cosmoB_loadOSLib -> cosmoB_loadOS
2023-08-24 23:36:32 -05:00
CPunch d3647c161b added vm.disassemble() 2023-06-01 19:04:12 -05:00
CPunch 6056f8eb5b added clang-format 2023-02-09 12:32:48 -06:00
CPunch d13cc398c8 Added os.system() to the os.* library 2021-03-20 01:02:13 -05:00
cpunch 14b091b691 Added trig. functions to the math library 2021-02-15 14:00:26 -06:00
cpunch 1fff6c7fe9 Added string.rep() to the string library 2021-02-13 19:07:47 -06:00
cpunch cfb4df66f9 Added optional os.* library, fixed cosmoB_loadLibrary
- os.time() returns the UNIX Epoch time in seconds
- os.read() reads file and returns the data as a <string> object
2021-02-10 17:10:03 -06:00
CPunch 2f9ff08cd3 Added object.* library; added cosmoO_isDescendant to cobj.[ch]
The object library includes:
- __proto getter and setter tables (might make an option to lock __proto in the future)
- ischild()

cosmoB_loadDebug was renamed to cosmoB_loadVM and now only loads the VM library
2021-02-03 13:43:26 -06:00
CPunch ff1804ca36 Removed .charAt(), added .char() & .byte()
- also minor comment fixes in cobj.[ch]
2021-02-01 21:07:43 -06:00
CPunch 300ffb89e9 Added basic math.* library, fixed number lexer edgecase
- also added vm.collect() to the vm library
2021-01-29 15:45:24 -06:00
CPunch cd6744ab65 Minor refactor, added vm.* library
- cosmoV_pushObj() has been added
- cbaselib.h has been cleaned up a bit
2021-01-25 15:04:16 -06:00
CPunch 71e9331551 Minor baselib.c refactor; added string.charAt() 2021-01-19 22:54:06 -06:00
CPunch eb2f50e456 Added CObjError, cosmoV_throw(), pcall(), and cosmoV_printError()
Errors are now handled very differently, parser errors and VM errors are now treated the same.
When cosmoV_error is called, cosmoV_throw is also called, which formats the error object and sets the panic state.
state->error now points to the latest CObjError when state->panic is true. To get a nice formatted Objection message, use
cosmoV_printError() and pass the state->error. pcall() was added to the standard base library. When called, the first argument
passed is called with the subsequent arguments given. If the call completed successfully, `true`,`nil` is returned. However
when an error occurs during the call, `false`,`<error>` is returned. Simply print the `<error>` to retrieve the error string.
2021-01-05 22:27:59 -06:00
CPunch cb1d287c93 added type() to baselib 2021-01-02 14:33:11 -06:00
CPunch 7e9b61e018 minor refactor, fixed many warnings 2021-01-01 23:06:24 -06:00
CPunch e253129e50 added string.sub() 2020-12-31 02:26:06 -06:00
CPunch 9012f9231b Added assert() to base library
also fixed regression in call()
2020-12-27 13:36:17 -06:00
CPunch 48ceca1834 multiple return value support added to VM 2020-12-12 21:53:12 -06:00
CPunch ec8f5e7e4f added foreach() 2020-12-12 18:16:31 -06:00
CPunch 08b6dcbf4c CObjMethod refactor 2020-11-12 23:04:09 -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