private static Expression ParseExpression(CapturedToken captured) { if (captured is SimpleToken) { return(ParseSimpleToken(captured as SimpleToken)); } var sExpression = captured as SExpression; return(ParseSExpression(sExpression)); }
internal static Value ParseValue(CapturedToken token) { if (token is SimpleToken) { Value value; var text = (token as SimpleToken).Value; foreach (var parser in ValueParsers) { if (parser.TryParse(text, out value)) { return(value); } } return(new Symbol(text)); } var sExpression = token as SExpression; var parsed = sExpression.Tokens.Select(t => ParseValue(t)); return(Util.ToSchemeList(parsed)); }