diff --git a/repl/main.c b/repl/main.c index 0a1dd8e..6ac2c9f 100644 --- a/repl/main.c +++ b/repl/main.c @@ -301,7 +301,7 @@ static void debugScopePrint(Toy_Scope* scope, int depth) { Toy_String k = scope->data[i].key; Toy_Value v = scope->data[i].value; - printf("%-20s%-20s", Toy_private_getValueTypeAsCString(v.type), k.leaf.data); + printf("%-10s%-10s%-20s", Toy_private_getValueTypeAsCString(scope->data[i].type), scope->data[i].constant ? "const" : "", k.leaf.data); //print value Toy_String* string = Toy_stringifyValue(&stringBucket, Toy_unwrapValue(v)); diff --git a/source/toy_compiler.c b/source/toy_compiler.c index 1ebab0e..684a1de 100644 --- a/source/toy_compiler.c +++ b/source/toy_compiler.c @@ -1093,6 +1093,8 @@ static unsigned int writeInstructionAttribute(Toy_Bytecode** mb, Toy_AstAttribut EMIT_BYTE(mb, code, 0); EMIT_BYTE(mb, code, 0); + (void)result; + return 1; } diff --git a/source/toy_lexer.c b/source/toy_lexer.c index 060515b..0f576fa 100644 --- a/source/toy_lexer.c +++ b/source/toy_lexer.c @@ -16,15 +16,15 @@ const Toy_KeywordTypeTuple keywordTuples[] = { {TOY_TOKEN_NULL, "null"}, //types - {TOY_TOKEN_TYPE_BOOLEAN, "bool"}, - {TOY_TOKEN_TYPE_INTEGER, "int"}, - {TOY_TOKEN_TYPE_FLOAT, "float"}, - {TOY_TOKEN_TYPE_STRING, "string"}, - {TOY_TOKEN_TYPE_ARRAY, "array"}, - {TOY_TOKEN_TYPE_TABLE, "table"}, - {TOY_TOKEN_TYPE_FUNCTION, "function"}, - {TOY_TOKEN_TYPE_OPAQUE, "opaque"}, - {TOY_TOKEN_TYPE_ANY, "any"}, + {TOY_TOKEN_TYPE_BOOLEAN, "Bool"}, + {TOY_TOKEN_TYPE_INTEGER, "Int"}, + {TOY_TOKEN_TYPE_FLOAT, "Float"}, + {TOY_TOKEN_TYPE_STRING, "String"}, + {TOY_TOKEN_TYPE_ARRAY, "Array"}, + {TOY_TOKEN_TYPE_TABLE, "Table"}, + {TOY_TOKEN_TYPE_FUNCTION, "Function"}, + {TOY_TOKEN_TYPE_OPAQUE, "Opaque"}, + {TOY_TOKEN_TYPE_ANY, "Any"}, //keywords and reserved words {TOY_TOKEN_KEYWORD_AS, "as"}, diff --git a/source/toy_value.c b/source/toy_value.c index 28c7e98..91410f1 100644 --- a/source/toy_value.c +++ b/source/toy_value.c @@ -653,18 +653,18 @@ Toy_String* Toy_stringifyValue(Toy_Bucket** bucketHandle, Toy_Value value) { const char* Toy_private_getValueTypeAsCString(Toy_ValueType type) { switch (type) { - case TOY_VALUE_NULL: return "null"; - case TOY_VALUE_BOOLEAN: return "bool"; - case TOY_VALUE_INTEGER: return "int"; - case TOY_VALUE_FLOAT: return "float"; - case TOY_VALUE_STRING: return "string"; - case TOY_VALUE_ARRAY: return "array"; - case TOY_VALUE_TABLE: return "table"; - case TOY_VALUE_FUNCTION: return "function"; - case TOY_VALUE_OPAQUE: return "opaque"; - case TOY_VALUE_ANY: return "any"; - case TOY_VALUE_REFERENCE: return "reference"; - case TOY_VALUE_UNKNOWN: return "unknown"; + case TOY_VALUE_NULL: return "Null"; + case TOY_VALUE_BOOLEAN: return "Bool"; + case TOY_VALUE_INTEGER: return "Int"; + case TOY_VALUE_FLOAT: return "Float"; + case TOY_VALUE_STRING: return "String"; + case TOY_VALUE_ARRAY: return "Array"; + case TOY_VALUE_TABLE: return "Table"; + case TOY_VALUE_FUNCTION: return "Function"; + case TOY_VALUE_OPAQUE: return "Opaque"; + case TOY_VALUE_ANY: return "Any"; + case TOY_VALUE_REFERENCE: return "Reference"; + case TOY_VALUE_UNKNOWN: return "Unknown"; } return NULL; diff --git a/tests/scripts/test_case_sensitive_types.toy b/tests/scripts/test_case_sensitive_types.toy new file mode 100644 index 0000000..df64701 --- /dev/null +++ b/tests/scripts/test_case_sensitive_types.toy @@ -0,0 +1,29 @@ +//typenames are now capitalized, so ensure they don't overlap with variable names + +var bool: Bool = true; +print bool; + +var int: Int = 42; +print int; + +var float: Float = 3.1415; +print float; + +var string: String = "Hello world"; +print string; + +var array: Array = [1,2,3]; +print array; + +var table: Table = ["alpha":1]; +print table; + +var function: Function; +print function; + +var opaque: Opaque; +print opaque; + +var any: Any; +print any; + diff --git a/tests/scripts/test_closures.toy b/tests/scripts/test_closures.toy index 08776f1..024dbd4 100644 --- a/tests/scripts/test_closures.toy +++ b/tests/scripts/test_closures.toy @@ -1,6 +1,6 @@ //closures fn makeCounter() { - var counter: int = 0; + var counter: Int = 0; fn increment() { return ++counter; diff --git a/tests/scripts/test_keyword_while_break_continue.toy b/tests/scripts/test_keyword_while_break_continue.toy index b07a39a..26eb66b 100644 --- a/tests/scripts/test_keyword_while_break_continue.toy +++ b/tests/scripts/test_keyword_while_break_continue.toy @@ -9,7 +9,7 @@ while (true) { } //test continue -var flag1: bool = true; +var flag1: Bool = true; while (flag1) { flag1 = false; continue; @@ -25,7 +25,7 @@ while (true) { } //test continue -var flag2: bool = true; +var flag2: Bool = true; while (flag2) { flag2 = false; continue; @@ -41,7 +41,7 @@ while (true) { } //test continue -var flag3: bool = true; +var flag3: Bool = true; while (flag3) { flag3 = false; continue; @@ -58,7 +58,7 @@ while (flag3) { } //test continue - var flag4: bool = true; + var flag4: Bool = true; while (flag4) { flag4 = false; continue; @@ -78,7 +78,7 @@ while (flag3) { } //test continue - var flag5: bool = true; + var flag5: Bool = true; while (flag5) { flag5 = false; { diff --git a/tests/scripts/test_truthiness.toy b/tests/scripts/test_truthiness.toy index efc4576..222b93f 100644 --- a/tests/scripts/test_truthiness.toy +++ b/tests/scripts/test_truthiness.toy @@ -1,6 +1,6 @@ //booleans { - var value: bool = true; + var value: Bool = true; if (value) { print "boolean"; @@ -11,7 +11,7 @@ } { - var value: bool = false; + var value: Bool = false; if (value) { assert false, "boolean"; @@ -23,7 +23,7 @@ //integers { - var value: int = 42; + var value: Int = 42; if (value) { print "integer"; @@ -34,7 +34,7 @@ } { - var value: int = 0; + var value: Int = 0; if (value) { assert false, "integer"; @@ -46,7 +46,7 @@ //floats { - var value: float = 42.8891; + var value: Float = 42.8891; if (value) { print "float"; @@ -57,7 +57,7 @@ } { - var value: float = 0; + var value: Float = 0; if (value) { assert false, "float"; @@ -69,7 +69,7 @@ //everything else { - var value: string = "foobar"; + var value: String = "foobar"; if (value) { print "string"; diff --git a/tests/scripts/test_variables.toy b/tests/scripts/test_variables.toy index 5d0d01a..ab1e397 100644 --- a/tests/scripts/test_variables.toy +++ b/tests/scripts/test_variables.toy @@ -113,8 +113,8 @@ print !false; //true //types { - var a: int; - var b: int = 42; + var a: Int; + var b: Int = 42; a = 69; b = 8891; @@ -125,7 +125,7 @@ print !false; //true //constants { - var c: int const = 42; + var c: Int const = 42; print c; } diff --git a/tests/units/test_compiler.c b/tests/units/test_compiler.c index 4a4aca8..abb7be5 100644 --- a/tests/units/test_compiler.c +++ b/tests/units/test_compiler.c @@ -1252,7 +1252,7 @@ int test_compiler_keywords(Toy_Bucket** bucketHandle) { //var declare (with type) { //setup - const char* source = "var foobar: int = 42;"; + const char* source = "var foobar: Int = 42;"; Toy_Lexer lexer; Toy_Parser parser; @@ -1363,7 +1363,7 @@ int test_compiler_string_reuse(Toy_Bucket** bucketHandle) { //test string literals { //setup - const char* source = "var first: string = \"Hello world\"; var second: string = \"Hello world\";"; + const char* source = "var first: String = \"Hello world\"; var second: String = \"Hello world\";"; Toy_Lexer lexer; Toy_Parser parser;