public object ParseShortLambdaExpression(bool quasiQuoted, string delimiter) { SkipWhitespace(); var ch = ReadChar(); if (ch != '(') { throw MakeScannerException("expected ')' character"); } // The list is treated as a single form! // So the entire thing is (like) one function call. var form = ReadDelimitedList(delimiter); var lastIndex = GrepShortLambdaParameters(form); var args = Runtime.AsList(Symbols.ShortLambdaVariables.Skip(1).Take(lastIndex)); if (quasiQuoted) { var form2 = Runtime.QuasiQuoteExpandRest(form); var code = Runtime.MakeList(Symbols.Lambda, args, form2); return(code); } else { var code = Runtime.MakeList(Symbols.Lambda, args, form); return(code); } }
public Cons GetParents(params object[] args) { object[] kwargs = Runtime.ParseKwargs(args, new string[] { "inherited" }, false); var inherited = Runtime.ToBool(kwargs[0]); var v = new Vector(); GetParents(v, inherited); return(Runtime.AsList(v)); }
Cons ISyntax.GetSyntax(Symbol context) { var v = new Vector(); foreach (var m in Members) { v.Add(Runtime.GetMethodSyntax(m, context)); } return(Runtime.AsList(Runtime.SeqBase.Distinct(v, Runtime.StructurallyEqualApply))); }
public static object WrapInFrame(object expr, int pos) { var dict = Runtime.GetLexicalVariablesDictionary(pos); if (dict.Count != 0) { var block = new Vector(); block.Add(Symbols.Do); foreach (var item in dict) { block.Add(Runtime.MakeList(Symbols.Let, item.Key, item.Value)); block.Add(Runtime.MakeList(Symbols.Declare, Runtime.MakeList(Symbols.Ignore, item.Key))); } block.Add(expr); return(Runtime.AsList(block)); } else { return(expr); } }
public object GetTypeSpecifier() { var result = new Vector(); GetTypeNames(result); switch (result.Count) { case 0: { return(null); } case 1: { return(result[0]); } default: { return(Runtime.AsList(result)); } } }
public Cons ReadAll() { return(Runtime.AsList(ReadAllEnum())); }
public Cons Match(DynamicMetaObject[] args) { return(Runtime.AsList(Generic.Lambdas.Where(x => x.Definition.Signature.ParametersMatchArguments(args)))); }
public Cons Match(object[] args) { return(Runtime.AsList(Lambdas.Where(x => x.Definition.Signature.ParametersMatchArguments(args)))); }
Cons ISyntax.GetSyntax(Symbol context) { return(Runtime.AsList(Lambdas.Select(Runtime.GetSyntax).Distinct())); }
public static CommandLineOptions ParseArgs(string[] args) { var defaults = ParseReplConfigurationFile(GetReplConfigurationFile()); var options = new CommandLineOptions(defaults); var parser = new CommandLineParser(); parser.AddOption("--debug"); parser.AddOption("--release"); parser.AddOption("--repl"); parser.AddOption("--no-repl"); parser.AddOption("--width number"); parser.AddOption("--height number"); parser.AddOption("--buffer-width number"); parser.AddOption("--buffer-height number"); parser.AddOption("--fore-color name"); parser.AddOption("--back-color name"); parser.AddOption("--info-color name"); parser.AddOption("--error-color name"); parser.AddOption("--warning-color name"); parser.AddOption("--highlight-fore-color name"); parser.AddOption("--highlight-back-color name"); parser.AddOption("--shadow-back-color name"); parser.AddOption("--font-name name"); parser.AddOption("--font-size size"); parser.AddOption("--html-prefix str"); parser.Parse(args); var s = parser.GetArgument(0); if (s != null) { options.ScriptName = s; options.Debug = false; options.Repl = false; options.UserArguments = Runtime.AsList(parser.GetArgumentArray(1)); } if (parser.GetOption("repl") != null) { options.Repl = true; } if (parser.GetOption("no-repl") != null) { options.Repl = false; } if (parser.GetOption("release") != null) { options.Debug = false; } if (parser.GetOption("debug") != null) { options.Debug = true; } if ((s = parser.GetOption("width")) != null) { options.Width = (int)s.ParseNumber(); } if ((s = parser.GetOption("height")) != null) { options.Height = (int)s.ParseNumber(); options.BufferHeight = 10 * options.Height; } if ((s = parser.GetOption("buffer-height")) != null) { options.BufferHeight = (int)s.ParseNumber(); } if ((s = parser.GetOption("fore-color")) != null) { options.ForeColor = s; } if ((s = parser.GetOption("back-color")) != null) { options.BackColor = s; } if ((s = parser.GetOption("info-color")) != null) { options.InfoColor = s; } if ((s = parser.GetOption("error-color")) != null) { options.ErrorColor = s; } if ((s = parser.GetOption("warning-color")) != null) { options.BackColor = s; } if ((s = parser.GetOption("highlight-fore-color")) != null) { options.HighlightForeColor = s; } if ((s = parser.GetOption("highlight-back-color")) != null) { options.HighlightBackColor = s; } if ((s = parser.GetOption("shadow-back-color")) != null) { options.ShadowBackColor = s; } if ((s = parser.GetOption("font-name")) != null) { options.FontName = s; } if ((s = parser.GetOption("font-size")) != null) { options.FontSize = (int)s.ParseNumber(); } if ((s = parser.GetOption("html-prefix")) != null) { options.HtmlPrefix = s; } return(options); }