AspNetEdit.Editor.Persistence.AspParser.GetServerTag C# (CSharp) Method

GetServerTag() private method

private GetServerTag ( TagType &tagtype, string &id, TagAttributes &attributes ) : void
tagtype TagType
id string
attributes TagAttributes
return void
        void GetServerTag(out TagType tagtype, out string id, out TagAttributes attributes)
        {
            string inside_tags;
            bool old = tokenizer.ExpectAttrValue;

            tokenizer.ExpectAttrValue = false;
            if (Eat ('@')){
                tokenizer.ExpectAttrValue = old;
                tagtype = TagType.Directive;
                id = "";
                if (Eat (Token.DIRECTIVE))
                    id = tokenizer.Value;

                attributes = GetAttributes ();
                if (!Eat ('%') || !Eat ('>'))
                    OnError ("expecting '%>'");

                return;
            }

            if (Eat (Token.DOUBLEDASH)) {
                tokenizer.ExpectAttrValue = old;
                tokenizer.Verbatim = true;
                inside_tags = GetVerbatim (tokenizer.get_token (), "--%>");
                tokenizer.Verbatim = false;
                id = null;
                attributes = null;
                tagtype = TagType.ServerComment;
                return;
            }

            tokenizer.ExpectAttrValue = old;
            bool varname;
            bool databinding;
            varname = Eat ('=');
            databinding = !varname && Eat ('#');

            tokenizer.Verbatim = true;
            inside_tags = GetVerbatim (tokenizer.get_token (), "%>");
            tokenizer.Verbatim = false;
            id = inside_tags;
            attributes = null;
            tagtype = (databinding ? TagType.DataBinding :
                  (varname ? TagType.CodeRenderExpression : TagType.CodeRender));
        }