Parse() public method

public Parse ( ) : void
return void
Example #1
0
		void ParseAttributeTag (string code, ILocation location)
		{
			AspParser outerParser = location as AspParser;
			int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
			AspParser parser = new AspParser ("@@attribute_tag@@", new StringReader (code), location.BeginLine - 1, positionOffset, outerParser);
			parser.Error += new ParseErrorHandler (ParseError);
			parser.TagParsed += new TagParsedHandler (TagParsed);
			parser.TextParsed += new TextParsedHandler (TextParsed);
			parser.Parse ();
			if (text.Length > 0)
				FlushText ();
		}
Example #2
0
			void DoParse (string str)
			{
				AspParser outerParser = location as AspParser;
				int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
				AspParser parser = new AspParser ("@@code_render@@", new StringReader (str), location.BeginLine - 1, positionOffset, outerParser);
				parser.Error += new ParseErrorHandler (ParseError);
				parser.TagParsed += new TagParsedHandler (TagParsed);
				parser.TextParsed += new TextParsedHandler (TextParsed);
				parser.Parse ();
			}
		void ParseDirective (string line)
		{
			AspParser parser;

			using (StringReader input = new StringReader (line)) {
				parser = new AspParser (physPath, input);
			}
			
			parser.Error += new ParseErrorHandler (ParseError);
			parser.TagParsed += new TagParsedHandler (TagParsed);
			parser.TextParsed += new TextParsedHandler (TextParsed);

			parser.Parse ();
		}
Example #4
0
		void TextParsed (ILocation location, string text)
		{
			if (ignore_text)
				return;

			if (inScript) {
				this.text.Append (text);
				FlushText (true);
				return;
			}

			IList blocks = SplitTextIntoBlocks (text);
			foreach (TextBlock block in blocks) {
				switch (block.Type) {
					case TextBlockType.Verbatim:
						this.text.Append (block.Content);
						break;

					case TextBlockType.Expression:
						if (this.text.Length > 0)
							FlushText (true);
						CodeRenderParser r = new CodeRenderParser (block.Content, stack.Builder, location);
						r.AddChildren (this);
						break;

					case TextBlockType.Tag:
						ParseAttributeTag (block.Content, location);
						break;

					case TextBlockType.Comment: {
						this.text.Append ("<!--");
						FlushText (true);
						string blockToParse = block.Content.Substring (4, block.Length - 7);
						bool condEndif;
						if (blockToParse.EndsWith ("<![endif]")) {
							blockToParse = blockToParse.Substring (0, blockToParse.Length - 9);
							condEndif = true;
						} else
							condEndif = false;

						AspParser outerParser = location as AspParser;
						int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
						AspParser parser = new AspParser ("@@comment_code@@", new StringReader (blockToParse), location.BeginLine - 1, positionOffset, outerParser);
						parser.Error += new ParseErrorHandler (ParseError);
						parser.TagParsed += new TagParsedHandler (TagParsed);
						parser.TextParsed += new TextParsedHandler (TextParsed);
						parser.Parse ();
						if (condEndif)
							this.text.Append ("<![endif]");
						this.text.Append ("-->");
						FlushText (true);
						break;
					}
				}
			}
		}
			public void AddChildren ()
			{
				int index = str.IndexOf ("<%");
				if (index > 0) {
					TextParsed (null, str.Substring (0, index));
					str = str.Substring (index);
				}

				AspParser parser = new AspParser ("@@inner_string@@", new StringReader (str));
				parser.Error += new ParseErrorHandler (ParseError);
				parser.TagParsed += new TagParsedHandler (TagParsed);
				parser.TextParsed += new TextParsedHandler (TextParsed);
				parser.Parse ();
			}