Parse function call

This commit is contained in:
Rafał Grodziński
2025-06-18 15:31:04 +09:00
parent 20a3adcca2
commit cbd8daf219
5 changed files with 74 additions and 1 deletions

View File

@@ -246,6 +246,34 @@ string ExpressionVar::toString(int indent) {
return "VAR(" + name + ")";
}
//
// Expression Call
ExpressionCall::ExpressionCall(string name, vector<shared_ptr<Expression>> argumentExpressions):
Expression(ExpressionKind::CALL, ValueType::NONE), name(name), argumentExpressions(argumentExpressions) {
}
string ExpressionCall::getName() {
return name;
}
vector<shared_ptr<Expression>> ExpressionCall::getArgumentExpressions() {
return argumentExpressions;
}
string ExpressionCall::toString(int indent) {
string value;
value += "CALL(" + name + "):";
for (shared_ptr<Expression> &argumentExpression : argumentExpressions) {
value += "\n";
for (int ind=0; ind<indent+1; ind++)
value += " ";
value += argumentExpression->toString(indent+1) + ",";
}
return value;
}
//
// ExpressionInvalid
ExpressionInvalid::ExpressionInvalid(shared_ptr<Token> token):