コード例 #1
0
ファイル: Program.cs プロジェクト: jmibarrad/MiniCompiler
        static void Main(string[] args)
        {
            string       code   = @"
                        struct Persona {
                            string name;
                        }

                        struct fecha {
                            int a;
                            string b;
                            Persona per;
                            int c;
                        }
                        
                        fecha fch;
                        ";
            SampleParser parser = new SampleParser(new Lexer.Lexer(new StringContent(code)));

            try
            {
                var tree = parser.Parse();
                tree.ValidateSemantic();
                var maincode = tree.TreeGenerateCode();
                var javaCode = GenerateMain.InitJavaCode(maincode);
                Console.Write(javaCode);
                Console.WriteLine("No errors found.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }

            Console.ReadKey();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: RafaNetow/PascalCompiler
        static void Main(string[] args)
        {
            GenerateMain generatePascal = new GenerateMain();
            HandlerFiles handlFile      = new HandlerFiles();
            string       pascalCode     = handlFile.getCode();
            string       firstCode      = " ";

            //Declaraciones



            Syntactic parser = new Syntactic(new Lexer.Lexer(new StringContent(pascalCode.ToLower())));


            try
            {
                var treeNodes = parser.Parse();
                var javaCode  = string.Empty;
                foreach (var sentencesNode in treeNodes)
                {
                    sentencesNode.ValidateSemantic();
                    if (sentencesNode is ProcedureNode || sentencesNode is FunctionNode || sentencesNode is RecordNode ||
                        sentencesNode is EnumerateNode)
                    {
                        firstCode += sentencesNode.GenerateCode();
                    }
                    else
                    {
                        javaCode += sentencesNode.GenerateCode();
                    }
                }

                Console.WriteLine(generatePascal.ReturnCode(javaCode, firstCode));
                handlFile.writeCode(generatePascal.ReturnCode(javaCode, firstCode));



                Console.WriteLine("errors no founds");
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                Console.ReadKey();
            }
            System.Diagnostics.Process.Start("C:\\Users\\Sequeiros\\Documents\\Compi\\pascal.bat");
        }