We can codegen now

This commit is contained in:
2026-02-24 20:07:02 +11:00
parent 2266990cb4
commit 0613fcd957
6 changed files with 128 additions and 4 deletions

View File

@@ -155,6 +155,33 @@ static inline ResultType(Nothing, charptr) parseLiteral(SolsParser* parser) {
return Error(Nothing, charptr, err.str);
}
node.as.success.line = peek.as.success.line;
GroundValue value;
switch (peek.as.success.as.literal.type) {
case SLT_INT: {
value = groundCreateValue(INT, peek.as.success.as.literal.as.intv);
break;
}
case SLT_DOUBLE: {
value = groundCreateValue(DOUBLE, peek.as.success.as.literal.as.doublev);
break;
}
case SLT_STRING: {
value = groundCreateValue(STRING, peek.as.success.as.literal.as.stringv);
break;
}
case SLT_BOOL: {
value = groundCreateValue(BOOL, peek.as.success.as.literal.as.boolv);
break;
}
case SLT_CHAR: {
value = groundCreateValue(CHAR, peek.as.success.as.literal.as.charv);
break;
}
}
node.as.success.accessArg = (GroundArg) {
.type = VALUE,
.value.value = value
};
addChildToSolsNode(parser->currentParent, node.as.success);
return Success(Nothing, charptr, {});
}