当前位置: 首页>>代码示例>>C#>>正文


C# Tokenizer.ChangeTokenState方法代码示例

本文整理汇总了C#中Tokenizer.ChangeTokenState方法的典型用法代码示例。如果您正苦于以下问题:C# Tokenizer.ChangeTokenState方法的具体用法?C# Tokenizer.ChangeTokenState怎么用?C# Tokenizer.ChangeTokenState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tokenizer的用法示例。


在下文中一共展示了Tokenizer.ChangeTokenState方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            switch(c){
                case Chars.HYPHEN_MINUS:
                    t.ChangeTokenState<ScriptDataDoubleEscapedDashState>();
                    t.EmitToken(Chars.HYPHEN_MINUS);
                    return;
                case Chars.LESS_THAN_SIGN:
                    t.ChangeTokenState<ScriptDataDoubleEscapedLessThanSignState>();
                    t.EmitToken(Chars.LESS_THAN_SIGN);
                    return;
                case Chars.NULL:
                    OnMessageRaised(new NullInScriptError());
                    t.EmitToken(Chars.REPLACEMENT_CHARACTER);
                    return;
                case null:
                    OnMessageRaised(new SuddenlyEndAtScriptError());

                    t.UnConsume(1);
                    t.ChangeTokenState<DataState>();
                    return;
                default:
                    t.EmitToken(c);
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:28,代码来源:ScriptDataDoubleEscapedState.cs

示例2: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            switch(c){
                case Chars.CHARACTER_TABULATION:
                case Chars.LINE_FEED:
                case Chars.FORM_FEED:
                case Chars.SPACE:
                    t.ChangeTokenState<BeforeAttributeNameState>();
                    return;
                case Chars.SOLIDUS:
                    t.ChangeTokenState<SelfClosingStartTagState>();
                    return;
                case Chars.GREATER_THAN_SIGN:
                    t.ChangeTokenState<DataState>();
                    t.EmitToken();
                    return;
                case null:
                    OnMessageRaised(new SuddenlyEndAtAttributeError());
                    t.UnConsume(1);
                    t.ChangeTokenState<DataState>();
                    return;
                default:
                    OnMessageRaised(new MissingSpaceAfterAttributeValueError(c));
                    t.UnConsume(1);
                    t.ChangeTokenState<BeforeAttributeNameState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:30,代码来源:AfterAttributeValueQuotedState.cs

示例3: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     switch(c){
         case Chars.GREATER_THAN_SIGN:
             OnMessageRaised(new EmptyEndTagError());
             t.ChangeTokenState<DataState>();
             return;
         case null:
             OnMessageRaised(new SuddenlyEndAtTagError());
             t.EmitToken(Chars.LESS_THAN_SIGN);
             t.EmitToken(Chars.SOLIDUS);
             t.UnConsume(1);
             t.ChangeTokenState<DataState>();
             return;
     }
     if(c.IsLatinCapitalLetter()){
         t.CurrentToken = new EndTagToken(){Name = c.ToLower().ToString()};
         t.ChangeTokenState<TagNameState>();
         return;
     } else if(c.IsLatinSmallLetter()){
         t.CurrentToken = new EndTagToken(){Name = c.ToString()};
         t.ChangeTokenState<TagNameState>();
         return;
     }
     OnMessageRaised(new UnknownEndTagError());
     t.ChangeTokenState<BogusCommentState>();
     return;
 }
开发者ID:bakera,项目名称:Test,代码行数:29,代码来源:EndTagOpenState.cs

示例4: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            if(c.IsLatinCapitalLetter()){
                t.TemporaryBuffer = "";
                t.TemporaryBuffer += c.ToLower();
                t.EmitToken(Chars.LESS_THAN_SIGN);
                t.EmitToken(c);
                t.ChangeTokenState<ScriptDataDoubleEscapeStartState>();
                return;
            } else if(c.IsLatinSmallLetter()){
                t.TemporaryBuffer = "";
                t.TemporaryBuffer += c;
                t.EmitToken(Chars.LESS_THAN_SIGN);
                t.EmitToken(c);
                t.ChangeTokenState<ScriptDataDoubleEscapeStartState>();
                return;
            }

            switch(c){
                case Chars.SOLIDUS:
                    t.TemporaryBuffer = "";
                    t.ChangeTokenState<ScriptDataEscapedEndTagOpenState>();
                    return;
                default:
                    t.EmitToken(Chars.LESS_THAN_SIGN);
                    t.UnConsume(1);
                    t.ChangeTokenState<ScriptDataEscapedState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:32,代码来源:ScriptDataEscapedLessThanSignState.cs

示例5: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            if(c.IsLatinCapitalLetter()){
                t.TemporaryBuffer += c.ToLower();
                t.EmitToken(c);
                return;
            } else if(c.IsLatinSmallLetter()){
                t.TemporaryBuffer += c;
                t.EmitToken(c);
                return;
            }

            switch(c){
                case Chars.CHARACTER_TABULATION:
                case Chars.LINE_FEED:
                case Chars.FORM_FEED:
                case Chars.SPACE:
                case Chars.SOLIDUS:
                case Chars.GREATER_THAN_SIGN:
                    if(t.TemporaryBuffer.Equals("script", StringComparison.InvariantCulture)){
                        t.ChangeTokenState<ScriptDataDoubleEscapedState>();
                    } else {
                        t.ChangeTokenState<ScriptDataEscapedState>();
                    }
                    t.EmitToken(c);
                    return;
                default:
                    t.UnConsume(1);
                    t.ChangeTokenState<ScriptDataEscapedState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:34,代码来源:ScriptDataDoubleEscapeStartState.cs

示例6: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            switch(c){
                case Chars.CHARACTER_TABULATION:
                case Chars.LINE_FEED:
                case Chars.FORM_FEED:
                case Chars.SPACE:
                    return;
                case Chars.GREATER_THAN_SIGN:{
                    t.ChangeTokenState<DataState>();
                    t.EmitToken();
                    return;
                }
                case null:
                    OnMessageRaised(new SuddenlyEndAtDoctypeError());
                    ((DoctypeToken)t.CurrentToken).ForceQuirks = true;
                    t.UnConsume(1);
                    t.ChangeTokenState<DataState>();
                    t.EmitToken();
                    return;
                default:
                    OnMessageRaised(new UnknownIdentifierAfterDoctypeError());
                    t.ChangeTokenState<BogusDoctypeState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:28,代码来源:AfterDoctypeSystemIdentifierState.cs

示例7: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();
            switch(c){
                case Chars.HYPHEN_MINUS:
                    t.ChangeTokenState<CommentEndState>();
                    return;
                case Chars.NULL:
                    OnMessageRaised(new NullInCommentError());
                    t.CurrentCommentToken.Append(Chars.HYPHEN_MINUS);
                    t.CurrentCommentToken.Append(Chars.REPLACEMENT_CHARACTER);

                    t.ChangeTokenState<CommentState>();
                    return;
                case null:
                    OnMessageRaised(new SuddenlyEndAtCommentError());
                    t.EmitToken();
                    t.UnConsume(1);
                    t.ChangeTokenState<DataState>();
                    return;
                default:
                    t.CurrentCommentToken.Append(Chars.HYPHEN_MINUS);
                    t.CurrentCommentToken.Append(c);
                    t.ChangeTokenState<CommentState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:27,代码来源:CommentEndDashState.cs

示例8: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            switch(c){
                case Chars.CHARACTER_TABULATION:
                case Chars.LINE_FEED:
                case Chars.FORM_FEED:
                case Chars.SPACE:
                    return;
                case Chars.SOLIDUS:
                    t.ChangeTokenState<SelfClosingStartTagState>();
                    return;
                case Chars.EQUALS_SIGN:
                    t.ChangeTokenState<BeforeAttributeValueState>();
                    return;
                case Chars.GREATER_THAN_SIGN:
                    t.ChangeTokenState<DataState>();
                    t.EmitToken();
                    return;
                case Chars.NULL:
                    if(t.CurrentTagToken.FixAttribute() == false){
                        OnMessageRaised(new DuplicateAttributeError(t.CurrentTagToken.CurrentAttribute.Name));
                        t.CurrentTagToken.CurrentAttribute = null;
                    }
                    OnMessageRaised(new NullInAttributeNameError());
                    t.CurrentTagToken.CreateAttribute(Chars.REPLACEMENT_CHARACTER, "");
                    return;
                case Chars.QUOTATION_MARK:
                case Chars.APOSTROPHE:
                case Chars.LESS_THAN_SIGN:
                    OnMessageRaised(new InvaridCharAtAfterAttributeNameError(c,  t.CurrentTagToken.CurrentAttribute.Name));
                    goto default;
                case null:
                    OnMessageRaised(new SuddenlyEndAtAttributeError());
                    t.UnConsume(1);
                    t.ChangeTokenState<DataState>();
                    return;
                default:
                    if(t.CurrentTagToken.FixAttribute() == false){
                        OnMessageRaised(new DuplicateAttributeError(t.CurrentTagToken.CurrentAttribute.Name));
                        t.CurrentTagToken.CurrentAttribute = null;
                    }
                    if(c.IsLatinCapitalLetter()){
                        t.CurrentTagToken.CreateAttribute(c.ToLower(), "");
                    } else {
                        t.CurrentTagToken.CreateAttribute(c, "");
                    }
                    t.ChangeTokenState<AttributeNameState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:52,代码来源:AfterAttributeNameState.cs

示例9: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     if(c == Chars.SOLIDUS){
         t.TemporaryBuffer = "";
         t.ChangeTokenState<RAWTEXTEndTagOpenState>();
         return;
     }
     t.EmitToken(Chars.LESS_THAN_SIGN);
     t.UnConsume(1);
     t.ChangeTokenState<RAWTEXTState>();
     return;
 }
开发者ID:bakera,项目名称:Test,代码行数:13,代码来源:RAWTEXTLessThanSignState.cs

示例10: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     switch(c){
         case Chars.HYPHEN_MINUS:
             t.EmitToken(Chars.HYPHEN_MINUS);
             t.ChangeTokenState<ScriptDataEscapedDashDashState>();
             return;
         default:
             t.UnConsume(1);
             t.ChangeTokenState<ScriptDataState>();
             return;
     }
 }
开发者ID:bakera,项目名称:Test,代码行数:14,代码来源:ScriptDataEscapeStartDashState.cs

示例11: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            switch(c){
                case Chars.SOLIDUS:
                    t.TemporaryBuffer = "";
                    t.ChangeTokenState<ScriptDataDoubleEscapeEndState>();
                    return;
                default:
                    t.UnConsume(1);
                    t.ChangeTokenState<ScriptDataDoubleEscapedState>();
                    return;
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:15,代码来源:ScriptDataDoubleEscapedLessThanSignState.cs

示例12: Read

        public override void Read(Tokenizer t)
        {
            char? c = t.ConsumeChar();

            if(c.IsLatinCapitalLetter()){
                t.CurrentTagToken.Name += c.ToLower();
                t.TemporaryBuffer += c;
                return;
            } else if(c.IsLatinSmallLetter()){
                t.CurrentTagToken.Name += c;
                t.TemporaryBuffer += c;
                return;
            }

            switch(c){
                case Chars.CHARACTER_TABULATION:
                case Chars.LINE_FEED:
                case Chars.FORM_FEED:
                case Chars.SPACE:
                    if(t.IsAppropriateEndTagToken){
                        t.ChangeTokenState<BeforeAttributeNameState>();
                        return;
                    }
                    goto default;
                case Chars.SOLIDUS:
                    if(t.IsAppropriateEndTagToken){
                        t.ChangeTokenState<SelfClosingStartTagState>();
                        return;
                    }
                    goto default;
                case Chars.GREATER_THAN_SIGN:
                    if(t.IsAppropriateEndTagToken){
                        t.EmitToken();
                        t.ChangeTokenState<DataState>();
                        return;
                    }
                    goto default;
                default:{
                    t.EmitToken(Chars.LESS_THAN_SIGN);
                    t.EmitToken(Chars.SOLIDUS);

                    t.EmitToken(t.TemporaryBuffer);
                    t.UnConsume(1);
                    t.ChangeTokenState<ScriptDataEscapedState>();
                    return;
                }
            }
        }
开发者ID:bakera,项目名称:Test,代码行数:48,代码来源:ScriptDataEscapedEndTagNameState.cs

示例13: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     switch(c){
         case Chars.RIGHT_SQUARE_BRACKET:
             if(IsStringMatch(t, CDATASectionEndId)){
                 t.ChangeTokenState<DataState>();
                 return;
             }
             break;
         case null:
             t.UnConsume(1);
             t.ChangeTokenState<DataState>();
             return;
     }
     t.EmitToken(c);
 }
开发者ID:bakera,项目名称:Test,代码行数:17,代码来源:CDATASectionState.cs

示例14: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     switch(c){
         case Chars.GREATER_THAN_SIGN:{
             t.ChangeTokenState<DataState>();
             return;
         }
         case null:
             t.UnConsume(1);
             t.ChangeTokenState<DataState>();
             t.EmitToken();
             return;
         default:
             return;
     }
 }
开发者ID:bakera,项目名称:Test,代码行数:17,代码来源:BogusDoctypeState.cs

示例15: Read

 public override void Read(Tokenizer t)
 {
     char? c = t.ConsumeChar();
     if(c == Chars.SOLIDUS){
         t.TemporaryBuffer = "";
         t.ChangeTokenState<ScriptDataEndTagOpenState>();
         return;
     }
     if(c == Chars.EXCLAMATION_MARK){
         t.EmitToken(Chars.LESS_THAN_SIGN);
         t.EmitToken(Chars.EXCLAMATION_MARK);
         t.ChangeTokenState<ScriptDataEscapeStartState>();
         return;
     }
     t.EmitToken(Chars.LESS_THAN_SIGN);
     t.UnConsume(1);
     t.ChangeTokenState<ScriptDataState>();
     return;
 }
开发者ID:bakera,项目名称:Test,代码行数:19,代码来源:ScriptDataLessThanSignState.cs


注:本文中的Tokenizer.ChangeTokenState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。