Antlr3.AntlrTool.BuildRequired C# (CSharp) Method

BuildRequired() public method

public BuildRequired ( string grammarFileName ) : bool
grammarFileName string
return bool
        public virtual bool BuildRequired( string grammarFileName )
        {
            BuildDependencyGenerator bd = new BuildDependencyGenerator( this, grammarFileName );
            IList<string> outputFiles = bd.GetGeneratedFileList();
            IList<string> inputFiles = bd.GetDependenciesFileList();
            DateTime grammarLastModified = File.GetLastWriteTime( grammarFileName );
            foreach ( string outputFile in outputFiles )
            {
                if ( !File.Exists( outputFile ) || grammarLastModified > File.GetLastWriteTime( outputFile ) )
                {
                    // One of the output files does not exist or is out of date, so we must build it
                    if (Verbose)
                    {
                        if (!File.Exists(outputFile))
                            Console.Out.WriteLine("Output file " + outputFile + " does not exist: must build " + grammarFileName);
                        else
                            Console.Out.WriteLine("Output file " + outputFile + " is not up-to-date: must build " + grammarFileName);
                    }

                    return true;
                }

                // Check all of the imported grammars and see if any of these are younger
                // than any of the output files.
                if ( inputFiles != null )
                {
                    foreach ( string inputFile in inputFiles )
                    {
                        if ( File.GetLastWriteTime( inputFile ) > File.GetLastWriteTime( outputFile ) )
                        {
                            // One of the imported grammar files has been updated so we must build
                            if (Verbose)
                                Console.Out.WriteLine("Input file " + inputFile + " is newer than output: must rebuild " + grammarFileName);

                            return true;
                        }
                    }
                }
            }
            if ( Verbose )
            {
                Console.Out.WriteLine( "Grammar " + grammarFileName + " is up to date - build skipped" );
            }
            return false;
        }