Whoops, lets try that again.

This commit is contained in:
2023-07-31 16:55:27 +10:00
parent 9b5327b83d
commit 1ed1993489
2 changed files with 3 additions and 18 deletions

View File

@@ -750,25 +750,10 @@ static Toy_Opcode decrementInfix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
static Toy_Opcode fnCall(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
//wait - is the previous token a type? this should be casting instead
if (parser->previous.type >= TOY_TOKEN_NULL && parser->previous.type <= TOY_TOKEN_ANY) {
//casting type
Toy_ASTNode* lhsNode = NULL;
castingPrefix(parser, &lhsNode);
advance(parser);
//casting value
Toy_ASTNode* rhsNode = NULL;
parsePrecedence(parser, &rhsNode, PREC_TERNARY);
parsePrecedence(parser, nodeHandle, PREC_TERM);
//emit the cast node
Toy_emitASTNodeBinary(&lhsNode, rhsNode, TOY_OP_TYPE_CAST);
//pass it off to the caller
*nodeHandle = lhsNode;
consume(parser, TOY_TOKEN_PAREN_RIGHT, "Expected ')' at end of cast grouping");
return TOY_OP_GROUPING_BEGIN; //dummy value
return TOY_OP_TYPE_CAST; //opcode value
}
advance(parser); //skip the left paren