26 lines
620 B
C#
26 lines
620 B
C#
|
using System.Linq;
|
||
|
|
||
|
namespace SupaLidlGame.Debug.Transpiler;
|
||
|
|
||
|
public class CallExpression : Expression
|
||
|
{
|
||
|
public Expression Identifier { get; set; }
|
||
|
|
||
|
public Expression[] Arguments { get; set; }
|
||
|
|
||
|
public CallExpression(LiteralExpression identifier, Expression[] args,
|
||
|
int line, int col) : base(line, col)
|
||
|
{
|
||
|
Identifier = identifier;
|
||
|
Arguments = args;
|
||
|
}
|
||
|
|
||
|
public override string Transpile()
|
||
|
{
|
||
|
var args = Arguments
|
||
|
.Select((ex) => ex.Transpile())
|
||
|
.Aggregate((a, b) => a + ", " + b);
|
||
|
return $"{Identifier.Transpile()}({args})";
|
||
|
}
|
||
|
}
|