Ejemplo n.º 1
0
        public override ISexpr VisitAtom(SexprParser.AtomContext context)
        {
            var text = context.GetText();

            if (context.SYMBOL() != null)
            {
                return(Sexpr.Symbol(text));
            }
            else if (context.STRING() != null)
            {
                return(Sexpr.String(text));
            }
            else if (context.NUMBER() != null)
            {
                return(Sexpr.Number(text));
            }
            else
            {
                throw new Exception();
            }
        }
Ejemplo n.º 2
0
 public override ISexpr VisitQuote(SexprParser.QuoteContext context)
 {
     return(Sexpr.List(new[] { Sexpr.Symbol("quote"), VisitItem(context.item()) }));
 }
Ejemplo n.º 3
0
 public override ISexpr VisitList(SexprParser.ListContext context)
 {
     return(Sexpr.List(context.item()
                       .Select(VisitItem)));
 }
Ejemplo n.º 4
0
 public override ISexpr VisitPair(SexprParser.PairContext context)
 {
     return(Sexpr.Pair(
                VisitItem(context.item(0)),
                VisitItem(context.item(1))));
 }