public static void TestParserRule <R>(String source, ParserEnvironment env, IParser <R> parser)
        {
            var scanner = new Scanner(source);
            var input   = new ParserInput(env, scanner.Tokens);
            var result  = parser.Parse(input);

            Assert.IsTrue(result.IsSuccessful);
            Assert.IsTrue(result.Source.Count() == 1);
        }
Exemple #2
0
        public void TestCompiler() {
            Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory
                .GetFiles("../../TestPrograms")
                .Where(_ => _.EndsWith(".c"));

            var sources = files.Select(File.ReadAllText).ToArray();

            foreach (var source in sources) {
                var scanner = new Scanner(source);
                var tokens = scanner.Tokens;
                var env = new ParserEnvironment();
                var input = new ParserInput(env, tokens);
                var parserResult = CParsers.TranslationUnit.Parse(input);
                var semantResult = parserResult.Result.GetTranslnUnit();
                semantResult.Value.CodeGenerate(new CGenState());
            }
        }
        public void TestParser() {
            System.Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory
                .GetFiles("../../TestPrograms")
                .Where(_ => _.EndsWith(".c"));

            var sources = files.Select(File.ReadAllText).ToArray();

            foreach (var source in sources) {
                var scanner = new Scanner(source);
                var tokens = scanner.Tokens;
                var env = new ParserEnvironment();
                var input = new ParserInput(env, scanner.Tokens);
                var result = CParsers.TranslationUnit.Parse(input);
                Assert.IsTrue(result.IsSuccessful);
                Assert.IsTrue(result.Source.Count() == 1);
            }
        }
        public void TestParser()
        {
            System.Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory
                        .GetFiles("../../TestPrograms")
                        .Where(_ => _.EndsWith(".c"));

            var sources = files.Select(File.ReadAllText).ToArray();

            foreach (var source in sources)
            {
                var scanner = new Scanner(source);
                var tokens  = scanner.Tokens;
                var env     = new ParserEnvironment();
                var input   = new ParserInput(env, scanner.Tokens);
                var result  = CParsers.TranslationUnit.Parse(input);
                Assert.IsTrue(result.IsSuccessful);
                Assert.IsTrue(result.Source.Count() == 1);
            }
        }
Exemple #5
0
        public void TestCompiler()
        {
            Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory
                        .GetFiles("../../TestPrograms")
                        .Where(_ => _.EndsWith(".c"));

            var sources = files.Select(File.ReadAllText).ToArray();

            foreach (var source in sources)
            {
                var scanner      = new Scanner(source);
                var tokens       = scanner.Tokens;
                var env          = new ParserEnvironment();
                var input        = new ParserInput(env, tokens);
                var parserResult = CParsers.TranslationUnit.Parse(input);
                var semantResult = parserResult.Result.GetTranslnUnit();
                semantResult.Value.CodeGenerate(new CGenState());
            }
        }