Esempio n. 1
0
        private static void Main(string[] args)
        {
            IGenerator generator = new CppGenerator();

            DirectoryInfo curDir = new DirectoryInfo(Environment.CurrentDirectory);

            curDir = curDir.Parent.Parent.Parent;
            generator.WorkingDirectory = curDir;
            generator.Generate();
        }
Esempio n. 2
0
        public void CompileFile(TextFile file)
        {
            var raw      = Scanner.Scanner.ScanFile(file);
            var prepared = TokenPreparation.Apply(raw);
            var block    = new BlockLineGrouping().Group(prepared);
            var ast      = Parser.Parser.ParseBlock(block, InjectedContext);
            //var cppFileName = GetTempFileName(Path.GetFileNameWithoutExtension(file.Filename), extension: "cpp");
            var cppFileName = Path.ChangeExtension(file.Filename, extension: "cpp") ?? "test.cpp"; // use this for debugging cpp output

            using (var writer = File.CreateText(cppFileName)) {
                CppGenerator.Generate(writer, ast);
            }
            RunCppCompiler(cppFileName, Path.ChangeExtension(file.Filename, extension: "exe"));
        }