Ejemplo n.º 1
0
        protected static Token FindAncestorToken(Token searchTarget, Func<Token, bool> predicate)
        {
            if (predicate(searchTarget))
                return searchTarget;

            return searchTarget.Parent != null ? FindAncestorToken(searchTarget.Parent, predicate) : null;
        }
        void ApplyImpl(Token rootToken)
        {
            for (int i = 0; i < rootToken.Children.Count; i++)
            {
                var token = rootToken.Children[i];

                if (token is LineBreakToken
                    && (
                       	token.Parent.Children.IndexOf(token) == 0
                       	|| token.Parent.Children.IndexOf(token) == token.Parent.Children.Count - 1
                       )
                    )
                    token.Parent.RemoveChild(token);

                ApplyImpl(token);
            }
        }
Ejemplo n.º 3
0
 internal abstract string RenderOpeningTag(Token token);
Ejemplo n.º 4
0
 internal abstract string RenderClosingTag(Token token);
Ejemplo n.º 5
0
 internal abstract bool CanRender(Token token);
Ejemplo n.º 6
0
 internal override string RenderOpeningTag(Token token)
 {
     return "<br />";
 }
Ejemplo n.º 7
0
 internal abstract bool Apply(StringReader reader, ref Token parentToken, ref Token previousToken);
Ejemplo n.º 8
0
 internal override bool CanRender(Token token)
 {
     return token is LineBreakToken;
 }
Ejemplo n.º 9
0
 internal override string RenderClosingTag(Token token)
 {
     return string.Empty;
 }
Ejemplo n.º 10
0
 internal override string RenderClosingTag(Token token)
 {
     return "</p>";
 }
Ejemplo n.º 11
0
 internal override bool CanRender(Token token)
 {
     return token is ParagraphToken;
 }
Ejemplo n.º 12
0
 internal void RemoveChild(Token token)
 {
     Children.Remove(token);
 }
Ejemplo n.º 13
0
 internal void AddChild(Token token)
 {
     token.Parent = this;
     Children.Add(token);
 }
Ejemplo n.º 14
0
 internal override bool CanRender(Token token)
 {
     return token is StrongToken;
 }