SupaLidlGame/Debug/Transpiler/LiteralExpression.cs

35 lines
798 B
C#

using System.Text.RegularExpressions;
namespace SupaLidlGame.Debug.Transpiler;
public class LiteralExpression : Expression
{
public Token Literal { get; set; }
public LiteralExpression(Token literal, int line, int col)
: base(line, col)
{
Literal = literal;
}
public override string Transpile()
{
if (Literal.Type == TokenType.NodePath)
{
var val = Regex.Escape(Literal.Value);
return $"from.call({val})";
}
else if (Literal.Type == TokenType.String)
{
return $"\"{Literal.Value}\"";
}
return Literal.Value;
}
public string TranspileNodePath()
{
var val = Regex.Escape(Literal.Value);
return $"to_node_path.call(\"{val}\")";
}
}