void IDocumentParser.Execute(RazorParser parser) { _parser = parser; var prevIndex = _parser.charIndex - 1; var prevChar = _parser.GetCharacterAtIndex(prevIndex); if (prevChar == RazorParser.QuoteChr || prevChar == RazorParser.SingleQuoteChr) { _parser.WriteHtml(RazorParser.TagStartChr); return; } var textIndex = _parser.FindNextChars(_parser.charIndex, RazorParser.TextTag); _tcounter = 1; if (textIndex > -1) { _parser.charIndex = textIndex; _textMode = true; _parser.StartViewResponse(); } else { _parser.charIndex++; if (NeedViewResponse()) { _parser.StartViewResponse(); } _buffer.Append(RazorParser.TagStartChr); } _parser.ProcessBlock(Process); }
private void Parse() { if (_blockType == BlockType.Code) { _parser.ProcessBlock(HandleCodeBlock); } else if (_blockType == BlockType.Text) { _parser.StartViewResponse(); _parser.ProcessBlock(HandleText); } else if (_blockType == BlockType.ExplicitExpression) { _parser.ProcessBlock(HandleExplicitExpression); } else if (_blockType == BlockType.Expression) { _parser.ProcessBlock(HandleExpressionBlock); } else if (_blockType == BlockType.If) { MoveToBlockStart(); _parser.ProcessBlock(HandleIfExpression); } else if (_blockType == BlockType.Helper) { MoveToBlockStart(); _parser.StartViewResponseForHelper(); _parser.ProcessBlock(HandleHelperBlock); } else if (_blockType == BlockType.For || _blockType == BlockType.Switch || _blockType == BlockType.While || _blockType == BlockType.With) { MoveToBlockStart(); _parser.ProcessBlock(HandleCodeBlock); _parser.WriteCode(RazorParser.BlockEndBrace); } else if (_blockType == BlockType.Comment) { _parser.ProcessBlock(HandleComment); } else if (_blockType == BlockType.DoWhile) { _parser.ProcessBlock(HandleDoWhileExpression); } }