changed class -> proto

This commit is contained in:
CPunch 2020-12-05 17:58:56 -06:00
parent e0d51c191f
commit 9ca67c8408
8 changed files with 13 additions and 13 deletions

View File

@ -1,8 +1,8 @@
# Cosmo # Cosmo
Cosmo is a portable scripting language loosely based off of Lua. Cosmo easily allows the user to extend the language through the use of Proto objects, which describe the behavior of Objects. For example the following is a simple Vector class which describes behavior for a Vector-like object. Cosmo is a portable scripting language loosely based off of Lua. Cosmo easily allows the user to extend the language through the use of Proto objects, which describe the behavior of Objects. For example the following is a simple Vector Proto which describes behavior for a Vector-like object.
``` ```
class Vector proto Vector
function __init(self) function __init(self)
self.vector = {} self.vector = {}
self.x = 0 self.x = 0

View File

@ -1,4 +1,4 @@
class Vector proto Vector
function __init(self) function __init(self)
self.vector = {} self.vector = {}
self.x = 0 self.x = 0

View File

@ -1,4 +1,4 @@
class test proto test
function __init(self, x) function __init(self, x)
self.setArg(x) self.setArg(x)
end end

View File

@ -1,4 +1,4 @@
class Test proto Test
function __init(self, x) function __init(self, x)
self.x = x self.x = x
end end

View File

@ -1,5 +1,5 @@
// crafts a dummy class // crafts a dummy proto
class test end proto test end
// instance of test // instance of test
var obj = test() var obj = test()

View File

@ -5,7 +5,6 @@
CReservedWord reservedWords[] = { CReservedWord reservedWords[] = {
{TOKEN_AND, "and", 3}, {TOKEN_AND, "and", 3},
{TOKEN_CLASS, "class", 5},
{TOKEN_DO, "do", 2}, {TOKEN_DO, "do", 2},
{TOKEN_ELSE, "else", 4}, {TOKEN_ELSE, "else", 4},
{TOKEN_ELSEIF, "elseif", 6}, {TOKEN_ELSEIF, "elseif", 6},
@ -18,6 +17,7 @@ CReservedWord reservedWords[] = {
{TOKEN_NIL, "nil", 3}, {TOKEN_NIL, "nil", 3},
{TOKEN_NOT, "not", 3}, {TOKEN_NOT, "not", 3},
{TOKEN_OR, "or", 2}, {TOKEN_OR, "or", 2},
{TOKEN_PROTO, "proto", 5},
{TOKEN_RETURN, "return", 6}, {TOKEN_RETURN, "return", 6},
{TOKEN_THEN, "then", 4}, {TOKEN_THEN, "then", 4},
{TOKEN_TRUE, "true", 4}, {TOKEN_TRUE, "true", 4},

View File

@ -49,7 +49,7 @@ typedef enum {
TOKEN_END, TOKEN_END,
TOKEN_FOR, TOKEN_FOR,
TOKEN_FUNCTION, TOKEN_FUNCTION,
TOKEN_CLASS, TOKEN_PROTO,
TOKEN_IF, TOKEN_IF,
TOKEN_LOCAL, TOKEN_LOCAL,
TOKEN_NOT, TOKEN_NOT,

View File

@ -742,7 +742,7 @@ ParseRule ruleTable[] = {
[TOKEN_END] = {NULL, NULL, PREC_NONE}, [TOKEN_END] = {NULL, NULL, PREC_NONE},
[TOKEN_FOR] = {NULL, NULL, PREC_NONE}, [TOKEN_FOR] = {NULL, NULL, PREC_NONE},
[TOKEN_FUNCTION] = {anonFunction, NULL, PREC_NONE}, [TOKEN_FUNCTION] = {anonFunction, NULL, PREC_NONE},
[TOKEN_CLASS] = {NULL, NULL, PREC_NONE}, [TOKEN_PROTO] = {NULL, NULL, PREC_NONE},
[TOKEN_IF] = {NULL, NULL, PREC_NONE}, [TOKEN_IF] = {NULL, NULL, PREC_NONE},
[TOKEN_LOCAL] = {NULL, NULL, PREC_NONE}, [TOKEN_LOCAL] = {NULL, NULL, PREC_NONE},
[TOKEN_NOT] = {NULL, NULL, PREC_NONE}, [TOKEN_NOT] = {NULL, NULL, PREC_NONE},
@ -828,7 +828,7 @@ static void defineVariable(CParseState *pstate, uint16_t global, bool forceLocal
valuePopped(pstate, 1); valuePopped(pstate, 1);
} }
static void _class(CParseState *pstate) { static void _proto(CParseState *pstate) {
uint16_t var = parseVariable(pstate, "Expected identifer!", false); uint16_t var = parseVariable(pstate, "Expected identifer!", false);
int entries = 0; int entries = 0;
@ -1156,8 +1156,8 @@ static void expressionStatement(CParseState *pstate) {
forLoop(pstate); forLoop(pstate);
} else if (match(pstate, TOKEN_FUNCTION)) { } else if (match(pstate, TOKEN_FUNCTION)) {
functionDeclaration(pstate); functionDeclaration(pstate);
} else if (match(pstate, TOKEN_CLASS)) { } else if (match(pstate, TOKEN_PROTO)) {
_class(pstate); _proto(pstate);
} else if (match(pstate, TOKEN_RETURN)) { } else if (match(pstate, TOKEN_RETURN)) {
returnStatement(pstate); returnStatement(pstate);
} else { } else {