static void run(IEnumerable<String> filePaths) { var p = new Parser(); var modules = new Dictionary<String, IReadOnlyList<IClassItem>>(); foreach (var path in filePaths.Reverse()) { Contract.Assume(path != null); var txt = File.ReadAllText(path); var items = p.Parse(txt, ValidationList); modules.Add(Path.GetFileNameWithoutExtension(path), items.Cast<IClassItem>().ToList()); } var preludeTxt = File.ReadAllText(libPath + "prelude.ef"); var preludeTxtItems = p.Parse(preludeTxt, ValidationList); var rw = new Rewriter(); var prog = rw.MakeProgram(preludeTxtItems.Cast<Declr>().ToList(), modules); var n = new Namer(); n.Name(prog, ValidationList); var ti = new TypeInferer(); ti.VisitDeclr(prog.GlobalModule); var i = new Interpreter(); var res = i.Run(prog, ValidationList); Console.Write("Result: "); Console.WriteLine(res.Accept(DefaultPrinter)); }
public void ReturnsTheVariableNameWhenPossible() { var n = new Namer(); Assert.That(n.GetVariableName("variable", new HashSet <string>()), Is.EqualTo("variable")); }
FilePair GetFileNames(string extension, Namer namer, string suffix) { return(FileNameBuilder.GetFileNames(extension, suffix, namer, directory, testName)); }
public void DoesNotUseTheNameSS() { var n = new Namer(); Assert.That(n.GetVariableName("ss", new HashSet <string>()), Is.EqualTo("ss1")); }
public void ReturnsAValidJavaScriptIdentifierWithNameStartingWithDollarForTransparentIdentifers() { var n = new Namer(); Assert.That(n.GetVariableName("<>identifier", new HashSet <string>()), Is.EqualTo("$identifier")); }
public void DoesNotReturnKeywords() { var n = new Namer(); Assert.That(n.GetVariableName("finally", new HashSet <string>()), Is.EqualTo("finally1")); }
public static FilePair GetFileNames(string extension, Namer namer, string directory, string testName, Assembly assembly) { var filePrefix = GetFilePrefix(namer, directory, testName, assembly); return(new FilePair(extension, filePrefix)); }
static string GetFilePrefix(Namer namer, string directory, string testName, Assembly assembly) { var builder = new StringBuilder(Path.Combine(directory, testName)); return(AppendFileParts(namer, builder, assembly)); }
// Create a Namer object which will give names to objects of type T which are unique within this namespace public Namer <T> MakeNamer <T>(Namer <T> .KeyFunc keyFunc) { return(new Namer <T>(this, keyFunc)); }
/// <summary> /// Obtains a string representation of the current team's name. /// </summary> public static string GetTeamName(Players players) { Team currentTeam = Teams[(int)players]; return(Namer.GetTeamName(currentTeam)); }