diff --git a/source/toy_lexer.c b/source/toy_lexer.c index ee0f90b..79e0a3b 100644 --- a/source/toy_lexer.c +++ b/source/toy_lexer.c @@ -16,7 +16,6 @@ const Toy_KeywordTypeTuple keywordTuples[] = { {TOY_TOKEN_NULL, "null"}, //types - {TOY_TOKEN_TYPE_TYPE, "type"}, {TOY_TOKEN_TYPE_BOOLEAN, "bool"}, {TOY_TOKEN_TYPE_INTEGER, "int"}, {TOY_TOKEN_TYPE_FLOAT, "float"}, @@ -47,8 +46,6 @@ const Toy_KeywordTypeTuple keywordTuples[] = { {TOY_TOKEN_KEYWORD_PASS, "pass"}, {TOY_TOKEN_KEYWORD_PRINT, "print"}, {TOY_TOKEN_KEYWORD_RETURN, "return"}, - {TOY_TOKEN_KEYWORD_TYPEAS, "typeas"}, - {TOY_TOKEN_KEYWORD_TYPEOF, "typeof"}, {TOY_TOKEN_KEYWORD_VAR, "var"}, {TOY_TOKEN_KEYWORD_WHILE, "while"}, {TOY_TOKEN_KEYWORD_YIELD, "yield"}, diff --git a/source/toy_parser.c b/source/toy_parser.c index cb29887..0f90a73 100644 --- a/source/toy_parser.c +++ b/source/toy_parser.c @@ -136,7 +136,6 @@ static ParsingTuple parsingRulesetTable[] = { {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_TABLE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_FUNCTION, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_OPAQUE, - {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_TYPE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_ANY, //keywords and reserved words @@ -159,8 +158,6 @@ static ParsingTuple parsingRulesetTable[] = { {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_PASS, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_PRINT, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_RETURN, - {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_TYPEAS, - {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_TYPEOF, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_VAR, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_WHILE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_YIELD, @@ -254,9 +251,6 @@ static Toy_ValueType readType(Toy_Parser* parser) { case TOY_TOKEN_TYPE_OPAQUE: return TOY_VALUE_OPAQUE; - case TOY_TOKEN_TYPE_TYPE: - return TOY_VALUE_TYPE; - case TOY_TOKEN_TYPE_ANY: return TOY_VALUE_ANY; diff --git a/source/toy_token_types.h b/source/toy_token_types.h index 21be274..325346f 100644 --- a/source/toy_token_types.h +++ b/source/toy_token_types.h @@ -17,7 +17,6 @@ typedef enum Toy_TokenType { TOY_TOKEN_TYPE_TABLE, TOY_TOKEN_TYPE_FUNCTION, TOY_TOKEN_TYPE_OPAQUE, - TOY_TOKEN_TYPE_TYPE, TOY_TOKEN_TYPE_ANY, //keywords and reserved words @@ -40,8 +39,6 @@ typedef enum Toy_TokenType { TOY_TOKEN_KEYWORD_PASS, TOY_TOKEN_KEYWORD_PRINT, TOY_TOKEN_KEYWORD_RETURN, - TOY_TOKEN_KEYWORD_TYPEAS, - TOY_TOKEN_KEYWORD_TYPEOF, TOY_TOKEN_KEYWORD_VAR, TOY_TOKEN_KEYWORD_WHILE, TOY_TOKEN_KEYWORD_YIELD, diff --git a/source/toy_value.c b/source/toy_value.c index 3ae623d..c5e4e47 100644 --- a/source/toy_value.c +++ b/source/toy_value.c @@ -77,7 +77,6 @@ unsigned int Toy_hashValue(Toy_Value value) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -136,7 +135,6 @@ Toy_Value Toy_copyValue(Toy_Value value) { } case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -175,7 +173,6 @@ void Toy_freeValue(Toy_Value value) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_UNKNOWN: fprintf(stderr, TOY_CC_ERROR "ERROR: Can't free an unknown value type, exiting\n" TOY_CC_RESET); @@ -300,7 +297,6 @@ bool Toy_checkValuesAreEqual(Toy_Value left, Toy_Value right) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -340,7 +336,6 @@ bool Toy_checkValuesAreComparable(Toy_Value left, Toy_Value right) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -396,7 +391,6 @@ int Toy_compareValues(Toy_Value left, Toy_Value right) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -570,7 +564,6 @@ Toy_String* Toy_stringifyValue(Toy_Bucket** bucketHandle, Toy_Value value) { case TOY_VALUE_FUNCTION: case TOY_VALUE_OPAQUE: - case TOY_VALUE_TYPE: case TOY_VALUE_ANY: case TOY_VALUE_REFERENCE: case TOY_VALUE_UNKNOWN: @@ -592,7 +585,6 @@ const char* Toy_private_getValueTypeAsCString(Toy_ValueType type) { case TOY_VALUE_TABLE: return "table"; case TOY_VALUE_FUNCTION: return "function"; case TOY_VALUE_OPAQUE: return "opaque"; - case TOY_VALUE_TYPE: return "type"; case TOY_VALUE_ANY: return "any"; case TOY_VALUE_REFERENCE: return "reference"; case TOY_VALUE_UNKNOWN: return "unknown"; diff --git a/source/toy_value.h b/source/toy_value.h index 996a007..272eeb3 100644 --- a/source/toy_value.h +++ b/source/toy_value.h @@ -19,7 +19,6 @@ typedef enum Toy_ValueType { TOY_VALUE_TABLE, TOY_VALUE_FUNCTION, TOY_VALUE_OPAQUE, - TOY_VALUE_TYPE, TOY_VALUE_ANY, TOY_VALUE_REFERENCE, //not a value itself, but pointing to one diff --git a/source/toy_vm.c b/source/toy_vm.c index a384f83..b89666b 100644 --- a/source/toy_vm.c +++ b/source/toy_vm.c @@ -164,11 +164,6 @@ static void processRead(Toy_VM* vm) { // break; } - case TOY_VALUE_TYPE: { - // - // break; - } - case TOY_VALUE_ANY: { // // break; diff --git a/tests/integrations/test_keyword_while.toy b/tests/integrations/test_keyword_while.toy deleted file mode 100644 index 93e2365..0000000 --- a/tests/integrations/test_keyword_while.toy +++ /dev/null @@ -1,25 +0,0 @@ -//TODO: test keyword 'while', 'break', 'continue' - -{ - //iteration - var iteration = 0; - while(iteration < 10) { - print iteration; - iteration += 1; - } -} - - -{ - //if and while work together - var count = 1; - while (count <= 10) { - if (count % 2 == 0) { - print "even"; - } - else { - print "odd"; - } - count += 1; - } -} diff --git a/tests/integrations/test_keyword_while_break_continue.toy b/tests/integrations/test_keyword_while_break_continue.toy index c4db44b..9b528be 100644 --- a/tests/integrations/test_keyword_while_break_continue.toy +++ b/tests/integrations/test_keyword_while_break_continue.toy @@ -98,3 +98,27 @@ print "done"; print "done"; } +//------------------------- + +{ + //iteration + var iteration = 0; + while(iteration < 10) { + print iteration; + iteration += 1; + } +} + +{ + //if and while work together + var count = 1; + while (count <= 10) { + if (count % 2 == 0) { + print "even"; + } + else { + print "odd"; + } + count += 1; + } +}