aboutsummaryrefslogtreecommitdiff
path: root/src/runner/runner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runner/runner.c')
-rw-r--r--src/runner/runner.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/runner/runner.c b/src/runner/runner.c
index 2308904..ef363fe 100644
--- a/src/runner/runner.c
+++ b/src/runner/runner.c
@@ -1270,6 +1270,12 @@ AstTree *runAstTreeCFunction(AstTree *tree, AstTree **arguments,
if (!typeIsEqual(arg.type, arguments[i]->type, scope)) {
printLog("%s %s", AST_TREE_TOKEN_STRINGS[arg.type->token],
AST_TREE_TOKEN_STRINGS[arguments[i]->type->token]);
+ printLog(
+ "%s %s",
+ AST_TREE_TOKEN_STRINGS[((AstTreeSingleChild *)arg.type->metadata)
+ ->token],
+ AST_TREE_TOKEN_STRINGS
+ [((AstTreeSingleChild *)arguments[i]->type->metadata)->token]);
UNREACHABLE;
} else if (arguments[i]->token != AST_TREE_TOKEN_RAW_VALUE) {
UNREACHABLE;
@@ -1343,7 +1349,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
return function;
}
- const size_t args_size = metadata->parameters_size;
+ const size_t args_size = metadata->parameters.size;
AstTree *args[args_size];
AstTree *result;
@@ -1352,7 +1358,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
for (size_t i = 0; i < args_size; ++i) {
AstTreeVariable *function_arg = fun->arguments.data[i];
- AstTreeFunctionCallParam param = metadata->parameters[i];
+ AstTreeFunctionCallParam param = metadata->parameters.data[i];
args[i] =
getForVariable(param.value, scope, shouldRet, false, isComptime,
breakCount, shouldContinue, function_arg->isLazy);
@@ -1368,7 +1374,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
} else if (function->token >= AST_TREE_TOKEN_BUILTIN_BEGIN &&
function->token <= AST_TREE_TOKEN_BUILTIN_END) {
for (size_t i = 0; i < args_size; ++i) {
- AstTreeFunctionCallParam param = metadata->parameters[i];
+ AstTreeFunctionCallParam param = metadata->parameters.data[i];
if (function->token != AST_TREE_TOKEN_BUILTIN_TYPE_OF) {
args[i] =
getForVariable(param.value, scope, shouldRet, false, isComptime,
@@ -1392,7 +1398,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
}
} else if (function->token == AST_TREE_TOKEN_VALUE_C_FUNCTION) {
for (size_t i = 0; i < args_size; ++i) {
- AstTreeFunctionCallParam param = metadata->parameters[i];
+ AstTreeFunctionCallParam param = metadata->parameters.data[i];
args[i] = getForVariable(param.value, scope, shouldRet, false,
isComptime, breakCount, shouldContinue, false);
if (discontinue(*shouldRet, *breakCount)) {
@@ -1599,6 +1605,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
case AST_TREE_TOKEN_TYPE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_TYPE_C_LIBRARY:
case AST_TREE_TOKEN_TYPE_C_FUNCTION:
+ case AST_TREE_TOKEN_TYPE_MACRO:
case AST_TREE_TOKEN_VALUE_NULL:
case AST_TREE_TOKEN_VALUE_UNDEFINED:
case AST_TREE_TOKEN_VALUE_VOID:
@@ -1822,6 +1829,7 @@ AstTree *runExpression(AstTree *expr, AstTreeScope *scope, bool *shouldRet,
}
case AST_TREE_TOKEN_VALUE_C_LIBRARY:
case AST_TREE_TOKEN_VALUE_C_FUNCTION:
+ case AST_TREE_TOKEN_VALUE_MACRO:
case AST_TREE_TOKEN_VALUE_SHAPE_SHIFTER: {
UNREACHABLE;
}
@@ -2009,6 +2017,7 @@ AstTree *toRawValue(AstTree *value, AstTreeScope *scope) {
case AST_TREE_TOKEN_VALUE_C_LIBRARY:
case AST_TREE_TOKEN_VALUE_C_FUNCTION:
case AST_TREE_TOKEN_VALUE_SHAPE_SHIFTER:
+ case AST_TREE_TOKEN_VALUE_MACRO:
case AST_TREE_TOKEN_VALUE_NAMESPACE:
case AST_TREE_TOKEN_TYPE_FUNCTION:
case AST_TREE_TOKEN_TYPE_ARRAY:
@@ -2109,6 +2118,7 @@ AstTree *toRawValue(AstTree *value, AstTreeScope *scope) {
case AST_TREE_TOKEN_BUILTIN_C_FUNCTION:
case AST_TREE_TOKEN_TYPE_C_LIBRARY:
case AST_TREE_TOKEN_TYPE_C_FUNCTION:
+ case AST_TREE_TOKEN_TYPE_MACRO:
}
return NULL;
}
@@ -2167,6 +2177,7 @@ AstTree *fromRawValue(AstTree *value) {
case AST_TREE_TOKEN_TYPE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_TYPE_C_LIBRARY:
case AST_TREE_TOKEN_TYPE_C_FUNCTION:
+ case AST_TREE_TOKEN_TYPE_MACRO:
case AST_TREE_TOKEN_TYPE_BOOL:
case AST_TREE_TOKEN_TYPE_FUNCTION:
case AST_TREE_TOKEN_TYPE_TYPE:
@@ -2219,6 +2230,7 @@ AstTree *fromRawValue(AstTree *value) {
case AST_TREE_TOKEN_VALUE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_VALUE_C_LIBRARY:
case AST_TREE_TOKEN_VALUE_C_FUNCTION:
+ case AST_TREE_TOKEN_VALUE_MACRO:
case AST_TREE_TOKEN_VALUE_INT:
case AST_TREE_TOKEN_VALUE_FLOAT:
case AST_TREE_TOKEN_VALUE_BOOL:
@@ -2424,6 +2436,7 @@ AstTree *castTo(AstTree *tree, AstTree *to) {
case AST_TREE_TOKEN_VALUE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_VALUE_C_LIBRARY:
case AST_TREE_TOKEN_VALUE_C_FUNCTION:
+ case AST_TREE_TOKEN_VALUE_MACRO:
case AST_TREE_TOKEN_VALUE_INT:
case AST_TREE_TOKEN_VALUE_FLOAT:
case AST_TREE_TOKEN_VALUE_BOOL:
@@ -2468,6 +2481,7 @@ AstTree *castTo(AstTree *tree, AstTree *to) {
case AST_TREE_TOKEN_BUILTIN_C_FUNCTION:
case AST_TREE_TOKEN_TYPE_C_LIBRARY:
case AST_TREE_TOKEN_TYPE_C_FUNCTION:
+ case AST_TREE_TOKEN_TYPE_MACRO:
}
printLog("%s", AST_TREE_TOKEN_STRINGS[tree->type->token]);
UNREACHABLE;
@@ -2533,6 +2547,7 @@ ffi_type *toFFIType(AstTree *type) {
case AST_TREE_TOKEN_TYPE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_TYPE_C_LIBRARY:
case AST_TREE_TOKEN_TYPE_C_FUNCTION:
+ case AST_TREE_TOKEN_TYPE_MACRO:
case AST_TREE_TOKEN_FUNCTION:
case AST_TREE_TOKEN_BUILTIN_CAST:
case AST_TREE_TOKEN_BUILTIN_TYPE_OF:
@@ -2579,6 +2594,7 @@ ffi_type *toFFIType(AstTree *type) {
case AST_TREE_TOKEN_VALUE_SHAPE_SHIFTER:
case AST_TREE_TOKEN_VALUE_C_LIBRARY:
case AST_TREE_TOKEN_VALUE_C_FUNCTION:
+ case AST_TREE_TOKEN_VALUE_MACRO:
case AST_TREE_TOKEN_VALUE_INT:
case AST_TREE_TOKEN_VALUE_FLOAT:
case AST_TREE_TOKEN_VALUE_BOOL: