30 lines
1,012 B
C#
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);
|
|
}
|
|
} |