Removed stubs for types as values

Also potentially fixed a bug in the previous commit, not certain
This commit is contained in:
2025-01-09 11:46:29 +11:00
parent 90ffe9b40e
commit b55192e513
8 changed files with 24 additions and 51 deletions

View File

@@ -16,7 +16,6 @@ const Toy_KeywordTypeTuple keywordTuples[] = {
{TOY_TOKEN_NULL, "null"}, {TOY_TOKEN_NULL, "null"},
//types //types
{TOY_TOKEN_TYPE_TYPE, "type"},
{TOY_TOKEN_TYPE_BOOLEAN, "bool"}, {TOY_TOKEN_TYPE_BOOLEAN, "bool"},
{TOY_TOKEN_TYPE_INTEGER, "int"}, {TOY_TOKEN_TYPE_INTEGER, "int"},
{TOY_TOKEN_TYPE_FLOAT, "float"}, {TOY_TOKEN_TYPE_FLOAT, "float"},
@@ -47,8 +46,6 @@ const Toy_KeywordTypeTuple keywordTuples[] = {
{TOY_TOKEN_KEYWORD_PASS, "pass"}, {TOY_TOKEN_KEYWORD_PASS, "pass"},
{TOY_TOKEN_KEYWORD_PRINT, "print"}, {TOY_TOKEN_KEYWORD_PRINT, "print"},
{TOY_TOKEN_KEYWORD_RETURN, "return"}, {TOY_TOKEN_KEYWORD_RETURN, "return"},
{TOY_TOKEN_KEYWORD_TYPEAS, "typeas"},
{TOY_TOKEN_KEYWORD_TYPEOF, "typeof"},
{TOY_TOKEN_KEYWORD_VAR, "var"}, {TOY_TOKEN_KEYWORD_VAR, "var"},
{TOY_TOKEN_KEYWORD_WHILE, "while"}, {TOY_TOKEN_KEYWORD_WHILE, "while"},
{TOY_TOKEN_KEYWORD_YIELD, "yield"}, {TOY_TOKEN_KEYWORD_YIELD, "yield"},

View File

@@ -136,7 +136,6 @@ static ParsingTuple parsingRulesetTable[] = {
{PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_TABLE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_TABLE,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_FUNCTION, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_FUNCTION,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_OPAQUE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_OPAQUE,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_TYPE,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_ANY, {PREC_NONE,NULL,NULL},// TOY_TOKEN_TYPE_ANY,
//keywords and reserved words //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_PASS,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_PRINT, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_PRINT,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_RETURN, {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_VAR,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_WHILE, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_WHILE,
{PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_YIELD, {PREC_NONE,NULL,NULL},// TOY_TOKEN_KEYWORD_YIELD,
@@ -254,9 +251,6 @@ static Toy_ValueType readType(Toy_Parser* parser) {
case TOY_TOKEN_TYPE_OPAQUE: case TOY_TOKEN_TYPE_OPAQUE:
return TOY_VALUE_OPAQUE; return TOY_VALUE_OPAQUE;
case TOY_TOKEN_TYPE_TYPE:
return TOY_VALUE_TYPE;
case TOY_TOKEN_TYPE_ANY: case TOY_TOKEN_TYPE_ANY:
return TOY_VALUE_ANY; return TOY_VALUE_ANY;

View File

@@ -17,7 +17,6 @@ typedef enum Toy_TokenType {
TOY_TOKEN_TYPE_TABLE, TOY_TOKEN_TYPE_TABLE,
TOY_TOKEN_TYPE_FUNCTION, TOY_TOKEN_TYPE_FUNCTION,
TOY_TOKEN_TYPE_OPAQUE, TOY_TOKEN_TYPE_OPAQUE,
TOY_TOKEN_TYPE_TYPE,
TOY_TOKEN_TYPE_ANY, TOY_TOKEN_TYPE_ANY,
//keywords and reserved words //keywords and reserved words
@@ -40,8 +39,6 @@ typedef enum Toy_TokenType {
TOY_TOKEN_KEYWORD_PASS, TOY_TOKEN_KEYWORD_PASS,
TOY_TOKEN_KEYWORD_PRINT, TOY_TOKEN_KEYWORD_PRINT,
TOY_TOKEN_KEYWORD_RETURN, TOY_TOKEN_KEYWORD_RETURN,
TOY_TOKEN_KEYWORD_TYPEAS,
TOY_TOKEN_KEYWORD_TYPEOF,
TOY_TOKEN_KEYWORD_VAR, TOY_TOKEN_KEYWORD_VAR,
TOY_TOKEN_KEYWORD_WHILE, TOY_TOKEN_KEYWORD_WHILE,
TOY_TOKEN_KEYWORD_YIELD, TOY_TOKEN_KEYWORD_YIELD,

View File

@@ -77,7 +77,6 @@ unsigned int Toy_hashValue(Toy_Value value) {
case TOY_VALUE_FUNCTION: case TOY_VALUE_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: case TOY_VALUE_UNKNOWN:
@@ -136,7 +135,6 @@ Toy_Value Toy_copyValue(Toy_Value value) {
} }
case TOY_VALUE_FUNCTION: case TOY_VALUE_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: case TOY_VALUE_UNKNOWN:
@@ -175,7 +173,6 @@ void Toy_freeValue(Toy_Value value) {
case TOY_VALUE_FUNCTION: case TOY_VALUE_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_UNKNOWN: case TOY_VALUE_UNKNOWN:
fprintf(stderr, TOY_CC_ERROR "ERROR: Can't free an unknown value type, exiting\n" TOY_CC_RESET); 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_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: case TOY_VALUE_UNKNOWN:
@@ -340,7 +336,6 @@ bool Toy_checkValuesAreComparable(Toy_Value left, Toy_Value right) {
case TOY_VALUE_FUNCTION: case TOY_VALUE_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: case TOY_VALUE_UNKNOWN:
@@ -396,7 +391,6 @@ int Toy_compareValues(Toy_Value left, Toy_Value right) {
case TOY_VALUE_FUNCTION: case TOY_VALUE_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: 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_FUNCTION:
case TOY_VALUE_OPAQUE: case TOY_VALUE_OPAQUE:
case TOY_VALUE_TYPE:
case TOY_VALUE_ANY: case TOY_VALUE_ANY:
case TOY_VALUE_REFERENCE: case TOY_VALUE_REFERENCE:
case TOY_VALUE_UNKNOWN: 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_TABLE: return "table";
case TOY_VALUE_FUNCTION: return "function"; case TOY_VALUE_FUNCTION: return "function";
case TOY_VALUE_OPAQUE: return "opaque"; case TOY_VALUE_OPAQUE: return "opaque";
case TOY_VALUE_TYPE: return "type";
case TOY_VALUE_ANY: return "any"; case TOY_VALUE_ANY: return "any";
case TOY_VALUE_REFERENCE: return "reference"; case TOY_VALUE_REFERENCE: return "reference";
case TOY_VALUE_UNKNOWN: return "unknown"; case TOY_VALUE_UNKNOWN: return "unknown";

View File

@@ -19,7 +19,6 @@ typedef enum Toy_ValueType {
TOY_VALUE_TABLE, TOY_VALUE_TABLE,
TOY_VALUE_FUNCTION, TOY_VALUE_FUNCTION,
TOY_VALUE_OPAQUE, TOY_VALUE_OPAQUE,
TOY_VALUE_TYPE,
TOY_VALUE_ANY, TOY_VALUE_ANY,
TOY_VALUE_REFERENCE, //not a value itself, but pointing to one TOY_VALUE_REFERENCE, //not a value itself, but pointing to one

View File

@@ -164,11 +164,6 @@ static void processRead(Toy_VM* vm) {
// break; // break;
} }
case TOY_VALUE_TYPE: {
//
// break;
}
case TOY_VALUE_ANY: { case TOY_VALUE_ANY: {
// //
// break; // break;

View File

@@ -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;
}
}

View File

@@ -98,3 +98,27 @@ print "done";
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;
}
}