Capitalized type names

This commit is contained in:
2026-04-24 12:46:27 +10:00
parent 4aec343b6c
commit 21819b2d62
10 changed files with 71 additions and 40 deletions
+1 -1
View File
@@ -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));
+2
View File
@@ -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;
}
+9 -9
View File
@@ -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"},
+12 -12
View File
@@ -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;
@@ -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;
+1 -1
View File
@@ -1,6 +1,6 @@
//closures
fn makeCounter() {
var counter: int = 0;
var counter: Int = 0;
fn increment() {
return ++counter;
@@ -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;
{
+7 -7
View File
@@ -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";
+3 -3
View File
@@ -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;
}
+2 -2
View File
@@ -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;