35 lines
802 B
C#
35 lines
802 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}\")";
|
|
}
|
|
}
|