コード例 #1
0
ファイル: Program.cs プロジェクト: michal-minich/Efekt-CS
        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));
        }
コード例 #2
0
        public void ReturnsTheVariableNameWhenPossible()
        {
            var n = new Namer();

            Assert.That(n.GetVariableName("variable", new HashSet <string>()), Is.EqualTo("variable"));
        }
コード例 #3
0
 FilePair GetFileNames(string extension, Namer namer, string suffix)
 {
     return(FileNameBuilder.GetFileNames(extension, suffix, namer, directory, testName));
 }
コード例 #4
0
        public void DoesNotUseTheNameSS()
        {
            var n = new Namer();

            Assert.That(n.GetVariableName("ss", new HashSet <string>()), Is.EqualTo("ss1"));
        }
コード例 #5
0
        public void ReturnsAValidJavaScriptIdentifierWithNameStartingWithDollarForTransparentIdentifers()
        {
            var n = new Namer();

            Assert.That(n.GetVariableName("<>identifier", new HashSet <string>()), Is.EqualTo("$identifier"));
        }
コード例 #6
0
        public void DoesNotReturnKeywords()
        {
            var n = new Namer();

            Assert.That(n.GetVariableName("finally", new HashSet <string>()), Is.EqualTo("finally1"));
        }
コード例 #7
0
ファイル: FileNameBuilder.cs プロジェクト: jawn/Verify
    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));
    }
コード例 #8
0
ファイル: FileNameBuilder.cs プロジェクト: jawn/Verify
    static string GetFilePrefix(Namer namer, string directory, string testName, Assembly assembly)
    {
        var builder = new StringBuilder(Path.Combine(directory, testName));

        return(AppendFileParts(namer, builder, assembly));
    }
コード例 #9
0
 // 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));
 }
コード例 #10
0
        /// <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));
        }