Exemple #1
0
        private static Expression ParseExpression(CapturedToken captured)
        {
            if (captured is SimpleToken)
            {
                return(ParseSimpleToken(captured as SimpleToken));
            }
            var sExpression = captured as SExpression;

            return(ParseSExpression(sExpression));
        }
Exemple #2
0
        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));
        }