Beispiel #1
0
 /// <summary>
 /// Initialize a DownloadTask with a given key
 /// </summary>
 public DownloadTask(
     string key,
     AbstractTarget target,
     string destinationFileName,
     string destinationFolderKey,
     DateTime creationTime,
     bool isBackgroundDownloadAllowed
     )
 {
     Key    = key;
     Target = target;
     DestinationFileName         = destinationFileName;
     DestinationFolderKey        = destinationFolderKey;
     CreationTime                = creationTime;
     IsBackgroundDownloadAllowed = isBackgroundDownloadAllowed;
 }
Beispiel #2
0
        /** From T.g return a list of File objects that
         *  name files ANTLR will emit from T.g.
         */
        public virtual IList <string> GetGeneratedFileList()
        {
            AbstractTarget target = generator.GetTarget();

            if (target == null)
            {
                // if the target could not be loaded, no code will be generated.
                return(new List <string>());
            }

            IList <string> files = new List <string>();

            // add generated recognizer; e.g., TParser.java
            if (generator.GetTarget().NeedsHeader())
            {
                files.Add(GetOutputFile(generator.GetRecognizerFileName(true)));
            }
            files.Add(GetOutputFile(generator.GetRecognizerFileName(false)));
            // add output vocab file; e.g., T.tokens. This is always generated to
            // the base output directory, which will be just . if there is no -o option
            //
            files.Add(GetOutputFile(generator.GetVocabFileName()));
            // are we generating a .h file?
            Template headerExtST = null;
            Template extST       = target.GetTemplates().GetInstanceOf("codeFileExtension");

            if (target.GetTemplates().IsDefined("headerFile"))
            {
                headerExtST = target.GetTemplates().GetInstanceOf("headerFileExtension");
                string suffix   = Grammar.GetGrammarTypeToFileNameSuffix(g.Type);
                string fileName = g.name + suffix + headerExtST.Render();
                files.Add(GetOutputFile(fileName));
            }
            if (g.IsCombined())
            {
                // add autogenerated lexer; e.g., TLexer.java TLexer.h TLexer.tokens

                string suffix = Grammar.GetGrammarTypeToFileNameSuffix(ANTLRParser.LEXER);
                string lexer  = g.name + suffix + extST.Render();
                files.Add(GetOutputFile(lexer));
                string lexerTokens = g.name + suffix + CodeGenerator.VOCAB_FILE_EXTENSION;
                files.Add(GetOutputFile(lexerTokens));

                // TLexer.h
                if (headerExtST != null)
                {
                    string header = g.name + suffix + headerExtST.Render();
                    files.Add(GetOutputFile(header));
                }
            }

            if (g.tool.gen_listener)
            {
                // add generated listener; e.g., TListener.java
                if (generator.GetTarget().NeedsHeader())
                {
                    files.Add(GetOutputFile(generator.GetListenerFileName(true)));
                }
                files.Add(GetOutputFile(generator.GetListenerFileName(false)));

                // add generated base listener; e.g., TBaseListener.java
                if (generator.GetTarget().NeedsHeader())
                {
                    files.Add(GetOutputFile(generator.GetBaseListenerFileName(true)));
                }
                files.Add(GetOutputFile(generator.GetBaseListenerFileName(false)));
            }

            if (g.tool.gen_visitor)
            {
                // add generated visitor; e.g., TVisitor.java
                if (generator.GetTarget().NeedsHeader())
                {
                    files.Add(GetOutputFile(generator.GetVisitorFileName(true)));
                }
                files.Add(GetOutputFile(generator.GetVisitorFileName(false)));

                // add generated base visitor; e.g., TBaseVisitor.java
                if (generator.GetTarget().NeedsHeader())
                {
                    files.Add(GetOutputFile(generator.GetBaseVisitorFileName(true)));
                }
                files.Add(GetOutputFile(generator.GetBaseVisitorFileName(false)));
            }


            // handle generated files for imported grammars
            IList <Grammar> imports = g.GetAllImportedGrammars();

            if (imports != null)
            {
                foreach (Grammar g in imports)
                {
                    //string outputDir = tool.GetOutputDirectory(g.fileName);
                    //string fname = GroomQualifiedFileName(outputDir, g.GetRecognizerName() + extST.Render());
                    //files.Add(Path.Combine(outputDir, fname));
                    files.Add(GetOutputFile(g.fileName));
                }
            }

            if (files.Count == 0)
            {
                return(null);
            }
            return(files);
        }
Beispiel #3
0
	public void InitTargetEvents (AbstractTarget target)
	{
		target.TargetDown += OnTargetDown;
		target.TargetDestroyed += OnTargetDestroyed;
	}