Exemplo n.º 1
0
        public void Advance()
        {
            CharacterReader r = new CharacterReader("One Two Three");

            Assert.AreEqual('O', r.Consume());
            r.Advance();
            Assert.AreEqual('e', r.Consume());
        }
Exemplo n.º 2
0
 public void AdvanceTransition(TokeniserState state)
 {
     _reader.Advance();
     this._state = state;
 }
Exemplo n.º 3
0
            internal override void Read(Tokeniser t, CharacterReader r)
            {
                char c = r.Current();
                switch (c)
                {
                    case '-':
                        t.Emit(c);
                        t.AdvanceTransition(TokeniserState.ScriptDataDoubleEscapedDash);
                        break;

                    case '<':
                        t.Emit(c);
                        t.AdvanceTransition(TokeniserState.ScriptDataDoubleEscapedLessthanSign
                            );
                        break;

                    case TokeniserState.nullChar:
                        t.Error(this);
                        r.Advance();
                        t.Emit(TokeniserState.replacementChar);
                        break;

                    case TokeniserState.eof:
                        t.EofError(this);
                        t.Transition(TokeniserState.Data);
                        break;

                    default:
                        string data = r.ConsumeToAny('-', '<', TokeniserState.nullChar);
                        t.Emit(data);
                        break;
                }
            }
Exemplo n.º 4
0
            /// handles data in title, textarea etc
            internal override void Read(Tokeniser t, CharacterReader r)
            {
                switch (r.Current())
                {
                    case '&':
                        t.AdvanceTransition(TokeniserState.CharacterReferenceInRcdata);
                        break;

                    case '<':
                        t.AdvanceTransition(TokeniserState.RcdataLessthanSign);
                        break;

                    case TokeniserState.nullChar:
                        t.Error(this);
                        r.Advance();
                        t.Emit(TokeniserState.replacementChar);
                        break;

                    case TokeniserState.eof:
                        t.Emit(new Token.EOF());
                        break;

                    default:
                        string data = r.ConsumeToAny('&', '<', TokeniserState.nullChar);
                        t.Emit(data);
                        break;
                }
            }
Exemplo n.º 5
0
            internal override void Read(Tokeniser t, CharacterReader r)
            {
                switch (r.Current())
                {
                    case TokeniserState.nullChar:
                        t.Error(this);
                        r.Advance();
                        t.Emit(TokeniserState.replacementChar);
                        break;

                    case TokeniserState.eof:
                        t.Emit(new Token.EOF());
                        break;

                    default:
                        string data = r.ConsumeTo(TokeniserState.nullChar);
                        t.Emit(data);
                        break;
                }
            }
Exemplo n.º 6
0
 internal override void Read(Tokeniser t, CharacterReader r)
 {
     if (r.IsEmpty())
     {
         t.EofError(this);
         t.doctypePending.forceQuirks = true;
         t.EmitDoctypePending();
         t.Transition(TokeniserState.Data);
         return;
     }
     if (r.MatchesAny('\t', '\n', '\r', '\f', ' '))
     {
         r.Advance();
         // ignore whitespace
     }
     else if (r.Matches('>'))
     {
         t.EmitDoctypePending();
         t.AdvanceTransition(TokeniserState.Data);
     }
     else if (r.MatchConsumeIgnoreCase("PUBLIC"))
     {
         t.Transition(TokeniserState.AfterDoctypePublicKeyword);
     }
     else if (r.MatchConsumeIgnoreCase("SYSTEM"))
     {
         t.Transition(TokeniserState.AfterDoctypeSystemKeyword);
     }
     else
     {
         t.Error(this);
         t.doctypePending.forceQuirks = true;
         t.AdvanceTransition(TokeniserState.BogusDoctype);
     }
 }
Exemplo n.º 7
0
            internal override void Read(Tokeniser t, CharacterReader r)
            {
                char c = r.Current();
                switch (c)
                {
                    case '-':
                        t.AdvanceTransition(TokeniserState.CommentEndDash);
                        break;

                    case TokeniserState.nullChar:
                        t.Error(this);
                        r.Advance();
                        t.commentPending.data.Append(TokeniserState.replacementChar);
                        break;

                    case TokeniserState.eof:
                        t.EofError(this);
                        t.EmitCommentPending();
                        t.Transition(TokeniserState.Data);
                        break;

                    default:
                        t.commentPending.data.Append(r.ConsumeToAny('-', TokeniserState.nullChar
                            ));
                        break;
                }
            }