meowlang/parser/LiteralVisitorNya.cs
2022-02-12 18:30:04 +01:00

30 lines
1,012 B
C#

using meowlang.parser.antlr;
namespace meowlang.parser;
public class LiteralVisitorNya : MeowBaseVisitorNya<LiteralModel>
{
public override LiteralModel VisitStringLiteral(MeowParser.StringLiteralContext context)
{
var value = context.val.Text[1..^1].Unescape();
return new StringLiteralModel(context.GetSpan(), value);
}
public override LiteralModel VisitBoolLiteral(MeowParser.BoolLiteralContext context)
{
var text = context.val.Text;
var value = text == "true";
return new BoolLiteralModel(context.GetSpan(), value);
}
public override LiteralModel VisitNumericLiteral(MeowParser.NumericLiteralContext context)
{
return new NumericLiteralModel(context.GetSpan(), context.val.Text);
}
public override LiteralModel VisitCharacterLiteral(MeowParser.CharacterLiteralContext context)
{
var value = context.val.Text[1..^1].Unescape();
return new CharacterLiteralModel(context.GetSpan(), value);
}
}