Esempio n. 1
0
        internal virtual void RunParseTest(string document, Func <ParserBase, Action> parserActionSelector, Block expectedRoot, IList <RazorError> expectedErrors, bool designTimeParser)
        {
            // Create the source
            using (StringTextBuffer reader = new StringTextBuffer(document)) {
                ParserResults results = null;
                try {
                    ParserBase               codeParser   = CreateCodeParser();
                    MarkupParser             markupParser = CreateMarkupParser();
                    SyntaxTreeBuilderVisitor listener     = new SyntaxTreeBuilderVisitor();
                    ParserContext            context      = CreateParserRun(new TextBufferReader(reader), codeParser, markupParser, listener);
                    context.DesignTimeMode = designTimeParser;

                    codeParser.Context   = context;
                    markupParser.Context = context;

                    // Run the parser
                    parserActionSelector(context.ActiveParser)();
                    context.OnComplete();

                    // Collect the results
                    results = listener.Results;
                    EvaluateResults(TestContext, results, expectedRoot, expectedErrors);
                }
                finally {
                    if (TestContext != null && results != null && results.Document != null)
                    {
                        TestContext.WriteLine(String.Empty);
                        TestContext.WriteLine("Actual Parse Tree:");
                        WriteNode(0, TestContext, results.Document);
                    }
                }
            }
        }
Esempio n. 2
0
        private string TryToRecoverTheVersion(string messageString)
        {
            String version = null;

            String wholeField12;

            try
            {
                String[] fields = PipeParser.Split(messageString.Substring(0, (Math.Max(messageString.IndexOf("\r"), messageString.Length)) - (0)),
                                                   Convert.ToString(enchars.FieldSeparator));
                wholeField12 = fields[11];
                //message structure is component 3 but we'll accept a composite of 1 and 2 if there is no component 3 ...
                //      if component 1 is ACK, then the structure is ACK regardless of component 2
                String[] comps = PipeParser.Split(wholeField12, Convert.ToString(enchars.ComponentSeparator));

                if (comps.Length > 0)
                {
                    //messageStructure = comps[2];
                    version = comps[0];
                }
                else
                {
                    StringBuilder buf = new StringBuilder("Can't determine message version from MSH-12: ");
                    throw new HL7Exception(buf.ToString(), HL7Exception.UNSUPPORTED_VERSION_ID);
                }
            }
            catch (IndexOutOfRangeException e)
            {
                throw new HL7Exception("Can't find message structure (MSH-9-3): " + e.Message, HL7Exception.UNSUPPORTED_MESSAGE_TYPE);
            }
            return(ParserBase.ValidVersion(version) ? version : null);
        }
Esempio n. 3
0
        // parse expression inside "(...)" or base class for Filter
        private PlanNode parseAtom()
        {
            if (nextTokenIs("("))
            {
                tokens.Pop();
                PlanNode node = parseOr();
                if (!nextTokenIs(")"))
                {
                    throw new Exception("Unmatched parenthesis");
                }
                tokens.Pop();
                return(node);
            }
            if (tokens.Count == 0)
            {
                throw new Exception("Unexpected end of input stream");
            }
            if (!tokens.Peek().StartsWith("-"))
            {
                throw new Exception("Unexpected token " + tokens.Peek());
            }
            // 这个name就是参数名,例如-type的"type",-size的"size"
            String name = tokens.Pop().Substring(1);
            // 在registry中找到与参数名对应的parser
            ParserBase parser = optionParserRegistry.GetValueOrDefault(name);

            if (parser == null)
            {
                throw new Exception("Unrecognized option " + name);
            }
            // Parser各自的parse()方法用于parse参数的arguments
            // 例如 -size +1M,那么"size"所对应的parser应当知道如何parse"+1M"
            return(parser.parse(tokens));
        }
        private void ImportSourceFolder(ParserBase importParser, string fileOrFolderName)
        {
            ErrorLog.Inst.WriteStatus("Importing Source Files...");
            var progressBar = ProgressDialog.Run(this, "Importing Source Files and Registry Entries ...",
                                                 "Importing Source Files and Registry Entries From \"{0}\"", fileOrFolderName);

            try
            {
                importParser.Parse(string.Format(@"\\?\{0}", fileOrFolderName));

                this.SuspendLayout();

                importParser.PopulateSourceTreeView(sourceFilesTree, sourceRegTree);

                this.ResumeLayout();
            }
            catch (Exception ex)
            {
                ErrorLog.Inst.ShowError("Source Files Import Error : {0}", ex.Message);
            }
            finally
            {
                progressBar.ShutDown();
            }
            ErrorLog.Inst.WriteStatus("Source Files and Registry Entries Import Completed");
        }
Esempio n. 5
0
 protected override ParserBase SelectActiveParser(
     ParserBase codeParser,
     ParserBase markupParser
     )
 {
     return(codeParser);
 }
Esempio n. 6
0
        protected virtual ParserResults RunParse(string document, Func <ParserBase, Action> parserActionSelector, bool designTimeParser, Func <ParserContext, ParserBase> parserSelector = null)
        {
            parserSelector = parserSelector ?? (c => c.ActiveParser);

            // Create the source
            ParserResults results = null;

            using (SeekableTextReader reader = new SeekableTextReader(document))
            {
                try
                {
                    ParserBase    codeParser   = CreateCodeParser();
                    ParserBase    markupParser = CreateMarkupParser();
                    ParserContext context      = CreateParserContext(reader, codeParser, markupParser);
                    context.DesignTimeMode = designTimeParser;

                    codeParser.Context   = context;
                    markupParser.Context = context;

                    // Run the parser
                    parserActionSelector(parserSelector(context))();
                    results = context.CompleteParse();
                }
                finally
                {
                    if (results != null && results.Document != null)
                    {
                        WriteTraceLine(String.Empty);
                        WriteTraceLine("Actual Parse Tree:");
                        WriteNode(0, results.Document);
                    }
                }
            }
            return(results);
        }
Esempio n. 7
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ParserContext"/> class.
		/// </summary>
		/// <param name="source">The source.</param>
		/// <param name="parser">The parser.</param>
		/// <param name="errorSink">The error sink.</param>
		public ParserContext(ITextDocument source, ParserBase parser, ParserErrorSink errorSink, TagProvidersCollection providers)
		{
			Source = new TextDocumentReader(source);
			Parser = parser;
			_errorSink = errorSink;
			TagProviders = providers;
		}
Esempio n. 8
0
        /// <summary> Returns a subclass of GenericMessage corresponding to a certain version.
        /// This is needed so that version-specific segments can be added as the message
        /// is parsed.
        /// </summary>
        public static Type getGenericMessageClass(String version)
        {
            if (!ParserBase.ValidVersion(version))
            {
                throw new ArgumentException("The version " + version + " is not recognized");
            }

            Type c = null;

            if (version.Equals("2.1"))
            {
                c = typeof(V21);
            }
            else if (version.Equals("2.2"))
            {
                c = typeof(V22);
            }
            else if (version.Equals("2.3"))
            {
                c = typeof(V23);
            }
            else if (version.Equals("2.3.1"))
            {
                c = typeof(V231);
            }
            else if (version.Equals("2.4"))
            {
                c = typeof(V24);
            }
            else if (version.Equals("2.5"))
            {
                c = typeof(V25);
            }
            return(c);
        }
Esempio n. 9
0
    static void Main(string[] args)
    {
        ParserBase parser = new ParserBase();

        Console.WriteLine(parser.DynamicRenderControl <HyperLink>(parser.Parse("")));
        Console.ReadLine();
    }
Esempio n. 10
0
        /// <summary>
        /// Returns a subclass of GenericMessage corresponding to a certain version.
        /// This is needed so that version-specific segments can be added as the message
        /// is parsed.
        /// </summary>
        public static Type GetGenericMessageClass(string version)
        {
            if (!ParserBase.ValidVersion(version))
            {
                throw new ArgumentException($"The version {version} is not recognized");
            }

            Type c;

            if (GenericMessages.ContainsKey(version))
            {
                c = GenericMessages[version];
            }
            else
            {
                var versionClassName = $"V{version.Replace(".", string.Empty)}";
                var fullName         = $"{typeof(GenericMessage).FullName}+{versionClassName}";

                c = Type.GetType(fullName, false);

                if (c != null)
                {
                    GenericMessages.TryAdd(version, c);
                }
            }

            return(c);
        }
 public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
 {
     if (incomingCodeParser is CSharpCodeParser)
     {
         return(new SimpleCSharpCodeParser());
     }
     return(base.DecorateCodeParser(incomingCodeParser));
 }
Esempio n. 12
0
 /// <summary>
 /// Gets an instance of the markup parser and is provided an opportunity to decorate or replace it
 /// </summary>
 /// <param name="incomingMarkupParser">The markup parser</param>
 /// <returns>Either the same markup parser, after modifications, or a different markup parser</returns>
 public virtual ParserBase DecorateMarkupParser(ParserBase incomingMarkupParser)
 {
     if (incomingMarkupParser == null)
     {
         throw new ArgumentNullException("incomingMarkupParser");
     }
     return(incomingMarkupParser);
 }
Esempio n. 13
0
        [Test] public void TestHtmlExtract()
        {
            const string t = "<a href=\"/Archives/edgar/data/0000878146/000125529405000179/0001255294-05-000179-index.htm\">5</a>";
            var          p = new ParserBase();
            var          o = p.GetLinkText(t);

            Assert.AreEqual(o, "5");
        }
 public override ParserContext CreateParserContext(
     ITextDocument input,
     ParserBase codeParser,
     ParserBase markupParser,
     ErrorSink errorSink)
 {
     return(base.CreateParserContext(input, codeParser, markupParser, errorSink));
 }
Esempio n. 15
0
        public WhiteSpaceBusterHtmlMarkupParser(ParserBase inner, RazorOptimizer optimizer)
        {
            Require.NotNull(inner, nameof(inner));
            Require.NotNull(optimizer, nameof(optimizer));

            _inner     = inner;
            _optimizer = optimizer;
        }
 /// <summary>
 /// Constructoe
 /// </summary>
 /// <param name="codeParser">The Script source code parser instance</param>
 /// <param name="markupParser">The Markup parser</param>
 /// <param name="parserVisitor">The Parser visitor on recognized Razor tree elements</param>
 public RazorTranspiler(ParserBase codeParser, ParserBase markupParser, BaseParserVisitor parserVisitor)
 {
     if (codeParser == null || markupParser == null)
     {
         throw new NullReferenceException(codeParser == null ? "codeParser" : "markupParser");
     }
     Parser  = new RazorParser(codeParser, markupParser);
     Visitor = parserVisitor == null ? new BaseParserVisitor() : parserVisitor;
 }
Esempio n. 17
0
        /// <summary>
        /// Gets an instance of the code parser and is provided an opportunity to decorate or replace it
        /// </summary>
        /// <param name="incomingCodeParser">The code parser</param>
        /// <returns>Either the same code parser, after modifications, or a different code parser</returns>
        public virtual ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
        {
            if (incomingCodeParser == null)
            {
                throw new ArgumentNullException(nameof(incomingCodeParser));
            }

            return(incomingCodeParser);
        }
Esempio n. 18
0
        /// <inheritdoc />
        public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
        {
            if (incomingCodeParser == null)
            {
                throw new ArgumentNullException(nameof(incomingCodeParser));
            }

            return(new MvcRazorCodeParser());
        }
Esempio n. 19
0
        public void MakeControlMSH_UnknownVersion_ThrowsHL7Exception()
        {
            // Arrange
            var version = "1";
            var factory = new DefaultModelClassFactory();

            // Act / Assert
            Assert.Throws <HL7Exception>(() => ParserBase.MakeControlMSH(version, factory));
        }
Esempio n. 20
0
        public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
        {
            if (incomingCodeParser is System.Web.Razor.Parser.CSharpCodeParser)
            {
                return(new ServiceStackCSharpCodeParser());
            }

            return(base.DecorateCodeParser(incomingCodeParser));
        }
        /// <summary>
        /// Decorates the code parser.
        /// </summary>
        /// <param name="incomingCodeParser">The incoming code parser.</param>
        /// <returns></returns>
        public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
        {
            if (incomingCodeParser is CSharpCodeParser)
            {
                return(new NancyCSharpRazorCodeParser(this.razorAssemblyProvider));
            }

            return(base.DecorateCodeParser(incomingCodeParser));
        }
Esempio n. 22
0
        static void Main(string[] args) {

            //ISearch syahoo = new SearchYahoo();
            //var result = syahoo.GetSearchResults("anxiety", 2);

            ISearch sr = new SearchGoogle();
            beginTime = DateTime.Now;

#if USE_ASYNC

            //sr.GetSearchResultsAsync("anxiety", NUM_PAGES, ProcessResult);

            IProcessor<ProcessorResultKWPosition> processor = new ProcessorKWPosition("helpguide.org", ResulsProcessing);  
            //IProcessor processor = new ProcessorKWPosition("phobia-anxiety.org");
            

            //var processor = new ProcessorKWPosition("phobia-anxiety.org", ResulsProcessing);
            sr.GetSearchResultsAsync("anxiety", NUM_PAGES, processor.ProcessResultAsync);
                    
#else
            var result = sr.GetSearchResults("anxiety", NUM_PAGES);

#if USE_PARSE

            var endTime = DateTime.Now;
            var totTime = (endTime - beginTime).TotalMilliseconds;
            Console.WriteLine("total execution time ms: {0}", totTime);

            ParserBase pparser = ParserFactoryStatic.GetParser(result.SearchEngine.ToString());

            var parseResults = pparser.Parse(result.SearchResponseRaw);

            if (parseResults != null) {
                for (int i = 0; i < parseResults.Count; i++) {
                    //Console.WriteLine("links[i]: " + links[i]);
                    Debug.WriteLine(string.Format("parseResults[{0}]: {1}", i, parseResults[i]));
                }
            }
#else
            var links = pparser.ParseGetLinks(result.SearchResponseRaw);
            if (links != null)
            {
                for (int i = 0; i < links.Count; i++)
                {
                    //Console.WriteLine("links[i]: " + links[i]);
                    Debug.WriteLine(string.Format("links[{0}]: {1}", i, links[i]));
                }
            }   
#endif    


#endif

            Console.ReadLine();

        }
Esempio n. 23
0
        public void MakeControlMSH_ValidVersion_ReturnsExpectedMsh(string version, Type expectedType)
        {
            // Arrange
            var factory = new DefaultModelClassFactory();

            // Act
            var msh = ParserBase.MakeControlMSH(version, factory);

            // Assert
            Assert.IsInstanceOf(expectedType, msh);
        }
Esempio n. 24
0
        public void DecorateMarkupParserReturnsIncomingParser()
        {
            // Arrange
            ParserBase expected = new HtmlMarkupParser();

            // Act
            ParserBase actual = CreateHost().DecorateMarkupParser(expected);

            // Assert
            Assert.Same(expected, actual);
        }
Esempio n. 25
0
        public void DecorateCodeParserDoesNotModifyIncomingParser()
        {
            // Arrange
            ParserBase expected = new CSharpCodeParser();

            // Act
            ParserBase actual = CreateHost().DecorateCodeParser(expected);

            // Assert
            Assert.Same(expected, actual);
        }
Esempio n. 26
0
        public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
        {
            if (incomingCodeParser is CSharpCodeParser)
                return new CSharp.CSharpCodeParser();
#if !RAZOR4
            if (incomingCodeParser is VBCodeParser)
                return new VisualBasic.VBCodeParser();
#endif
            
            return base.DecorateCodeParser(incomingCodeParser);
        }
Esempio n. 27
0
 public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser)
 {
     if (incomingCodeParser is CSharpCodeParser)
     {
         return(new MvcCSharpRazorCodeParser());
     }
     else
     {
         return(base.DecorateCodeParser(incomingCodeParser));
     }
 }
Esempio n. 28
0
        protected internal virtual RazorParser CreateParser()
        {
            ParserBase codeParser   = Host.CodeLanguage.CreateCodeParser();
            ParserBase markupParser = Host.CreateMarkupParser();

            return(new RazorParser(Host.DecorateCodeParser(codeParser),
                                   Host.DecorateMarkupParser(markupParser))
            {
                DesignTimeMode = Host.DesignTimeMode
            });
        }
Esempio n. 29
0
 private void OnSkeletonModelParseComplate(ParserBase parser)
 {
     this._model = (parser as SkinnedMeshParser).go;
     this.smParser.parseCompleteListener = null;
     this._loaded = true;
     this.source  = null;
     if (this.asset.loadedListener != null)
     {
         this.asset.loadedListener(this.asset);
     }
 }
Esempio n. 30
0
 public virtual ParserContext CreateParserContext(ITextDocument input,
                                                  ParserBase codeParser,
                                                  ParserBase markupParser,
                                                  ErrorSink errorSink)
 {
     return(new ParserContext(input,
                              codeParser,
                              markupParser,
                              SelectActiveParser(codeParser, markupParser),
                              errorSink));
 }
        public void CreateCodeParserReturnsNewCSharpCodeParser()
        {
            // Arrange
            RazorCodeLanguage service = new CSharpRazorCodeLanguage();

            // Act
            ParserBase parser = service.CreateCodeParser();

            // Assert
            Assert.NotNull(parser);
            Assert.IsType <CSharpCodeParser>(parser);
        }
        public void CreateCodeParserReturnsNewCSharpCodeParser()
        {
            // Arrange
            RazorCodeLanguage service = new CSharpRazorCodeLanguage();

            // Act
            ParserBase parser = service.CreateCodeParser();

            // Assert
            Assert.IsNotNull(parser);
            Assert.IsInstanceOfType(parser, typeof(CSharpCodeParser));
        }
Esempio n. 33
0
 void AddOptionParserPair(string standardOption, ParserBase parser)
 {
     optionsLookupTable.Add(standardOption.ToLowerInvariant(), standardOption);
     parsersTable.Add(standardOption, parser);
 }
 public static ParserBase[] GetParsers(VisualStudioVersion vsVersion)
 {
     ParserBase[] lParsers = new ParserBase[3];
     switch (vsVersion)
     {
         case VisualStudioVersion.VS2002:
         case VisualStudioVersion.VS2003:
             lParsers[0] = new CSharp30Parser();
             lParsers[1] = new VB10Parser();
             lParsers[2] = new ParserCpp();
             break;
         case VisualStudioVersion.VS2005:
             lParsers[0] = new CSharp30Parser();
             lParsers[1] = new VB10Parser();
             lParsers[2] = new ParserCpp();
             break;
     }
     return lParsers;
 }