forked from solstice/solstice
Parse exprs in parens
This commit is contained in:
@@ -226,6 +226,9 @@ ResultType(SolsType, charptr) getNodeType(SolsNode* node, SolsScope* scope) {
|
|||||||
}
|
}
|
||||||
return Success(SolsType, charptr, *var->typeinfo.returnType);
|
return Success(SolsType, charptr, *var->typeinfo.returnType);
|
||||||
}
|
}
|
||||||
|
case SNT_EXPR_IN_PAREN: {
|
||||||
|
return getNodeType(&node->children.at[node->children.count - 1], scope);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Error(SolsType, charptr, "Not yet implemented");
|
return Error(SolsType, charptr, "Not yet implemented");
|
||||||
}
|
}
|
||||||
@@ -606,6 +609,13 @@ ResultType(GroundProgram, charptr) generateCodeBlockNode(SolsNode* node, SolsSco
|
|||||||
return Success(GroundProgram, charptr, groundCreateProgram());
|
return Success(GroundProgram, charptr, groundCreateProgram());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResultType(GroundProgram, charptr) generateExprInParenNode(SolsNode* node, SolsScope* scope) {
|
||||||
|
// All that needs to be done is to return the child's return id
|
||||||
|
node->accessArg = node->children.at[node->children.count - 1].accessArg;
|
||||||
|
(void)scope;
|
||||||
|
return Success(GroundProgram, charptr, groundCreateProgram());
|
||||||
|
}
|
||||||
|
|
||||||
static inline ResultType(GroundProgram, charptr) generateWhileNode(SolsNode* node, SolsScope* scope) {
|
static inline ResultType(GroundProgram, charptr) generateWhileNode(SolsNode* node, SolsScope* scope) {
|
||||||
GroundProgram gp = groundCreateProgram();
|
GroundProgram gp = groundCreateProgram();
|
||||||
|
|
||||||
@@ -1019,6 +1029,7 @@ ResultType(GroundProgram, charptr) generateCode(SolsNode* node, SolsScope* scope
|
|||||||
case SNT_OP_EQGREATER: generate(EqGreater);
|
case SNT_OP_EQGREATER: generate(EqGreater);
|
||||||
case SNT_OP_LESSER: generate(Lesser);
|
case SNT_OP_LESSER: generate(Lesser);
|
||||||
case SNT_OP_EQLESSER: generate(EqLesser);
|
case SNT_OP_EQLESSER: generate(EqLesser);
|
||||||
|
case SNT_EXPR_IN_PAREN: generate(ExprInParen);
|
||||||
case SNT_CODE_BLOCK: generate(CodeBlock);
|
case SNT_CODE_BLOCK: generate(CodeBlock);
|
||||||
case SNT_IF: generate(If);
|
case SNT_IF: generate(If);
|
||||||
case SNT_WHILE: generate(While);
|
case SNT_WHILE: generate(While);
|
||||||
|
|||||||
Reference in New Issue
Block a user