AspNetEdit.Editor.Persistence.AspTokenizer.ReadAttValue C# (CSharp) Method

ReadAttValue() private method

private ReadAttValue ( int start ) : int
start int
return int
        int ReadAttValue(int start)
        {
            int quoteChar = 0;
            bool quoted = false;

            if (start == '"' || start == '\'') {
                quoteChar = start;
                quoted = true;
            } else {
                sb.Append ((char) start);
            }

            int c;
            int last = 0;
            bool inServerTag = false;

            while ((c = sr.Peek ()) != -1) {
                if (c == '%' && last == '<') {
                    inServerTag = true;
                } else if (inServerTag && c == '>' && last == '%') {
                    inServerTag = false;
                } else if (!inServerTag) {
                    if (!quoted && c == '/') {
                        read_char ();
                        c = sr.Peek ();
                        if (c == -1) {
                            c = '/';
                        } else if (c == '>') {
                            ungetc ('/');
                            break;
                        }
                    } else if (!quoted && (c == '>' || Char.IsWhiteSpace ((char) c))) {
                        break;
                    } else if (quoted && c == quoteChar && last != '\\') {
                        read_char ();
                        break;
                    }
                }

                sb.Append ((char) c);
                read_char ();
                last = c;
            }

            return Token.ATTVALUE;
        }