コード例 #1
0
        public virtual Parser Parser(ParserFile file)
        {
            Parser p = @delegate.Parser(file);

            foreach (CodeGeneratorExtension ext in extensions)
            {
                p = ext.Parser(p);
            }
            return(p);
        }
コード例 #2
0
        public virtual ParserFile ParserFile(string fileName)
        {
            ParserFile f = @delegate.ParserFile(fileName);

            foreach (CodeGeneratorExtension ext in extensions)
            {
                f = ext.ParserFile(f);
            }
            return(f);
        }
コード例 #3
0
        /** Build a file with a parser containing rule functions. Use the
         *  controller as factory in SourceGenTriggers so it triggers code generation
         *  extensions too, not just the factory functions in this factory.
         */
        public virtual OutputModelObject BuildParserOutputModel(bool header)
        {
            CodeGenerator gen  = @delegate.GetGenerator();
            ParserFile    file = ParserFile(gen.GetRecognizerFileName(header));

            SetRoot(file);
            file.parser = Parser(file);

            Grammar g = @delegate.GetGrammar();

            foreach (Rule r in g.rules.Values)
            {
                BuildRuleFunction(file.parser, r);
            }

            return(file);
        }
コード例 #4
0
        public bool Upload(string path, Stream stream)
        {
            if (path.Length > 1)
            {
                ParserFile parserFIle = new ParserFile(stream);
                if (parserFIle.Success)
                {
                    try
                    {
                        // Create temp file
                        string tempFile = Path.GetTempPath() + parserFIle.FileName;
                        using (System.IO.FileStream output = new System.IO.FileStream(tempFile, FileMode.Create))
                        {
                            output.Write(parserFIle.FileContents, 0, parserFIle.FileContents.Count());
                        }

                        // Create
                        CloudBlockBlob blockBlob = this.rootContainer
                                                   .GetDirectoryReference(path)
                                                   .GetBlockBlobReference(parserFIle.FileName);

                        // Set content type
                        blockBlob.Properties.ContentType = parserFIle.FileType;

                        // Save content file
                        blockBlob.UploadFromFile(tempFile, FileMode.Open);
                        return(true);
                    }
                    catch (Exception)
                    {
                        return(false);
                    }
                }
            }
            return(false);

            // Do whatever you want with the file here
        }
コード例 #5
0
 public virtual ParserFile ParserFile(ParserFile f)
 {
     return(f);
 }
コード例 #6
0
 public virtual Parser Parser(ParserFile file)
 {
     return(null);
 }
コード例 #7
0
ファイル: ParserFactory.cs プロジェクト: yuanyong00/antlr4cs
 public override Parser Parser(ParserFile file)
 {
     return(new Parser(this, file));
 }