IsEmpty() 공개 메소드

public IsEmpty ( ) : bool
리턴 bool
예제 #1
0
        public static string process(string s)
        {
            Stack tags    = new Stack(100),
                  temp    = new Stack(100);
            string tag    = "",
                   word   = "",
                   result = "";
            bool state    = false;
            int  i;

            for (i = 0; i < s.Length; i++)
            {
                if (s[i] == '<')
                {
                    state = true;
                    if (word != "")
                    {
                        while ((tag = tags.Pop()) != null)
                        {
                            word = operation(tag, word);
                            temp.Push(tag);
                        }
                        while ((tag = temp.Pop()) != null)
                        {
                            tags.Push(tag);
                        }
                        result += word;
                    }
                    word = "";
                    tag += s[i];
                }
                else if (state && s[i] == '>')
                {
                    tag += s[i];
                    if (tag[1] == '/')
                    {
                        if (tags.IsEmpty())                         // >pop yapıyorsun ama stack boş.
                        {
                            return("");
                        }
                        if (balance(tags.Peek(), tag))
                        {
                            tags.Pop();
                        }
                        else                           // >pop yapılan elaman ile özdeş değil.
                        {
                            return("");
                        }
                    }
                    else
                    {
                        tags.Push(tag);
                    }
                    tag   = "";
                    state = false;
                }
                else if (state)
                {
                    tag += s[i];
                }
                else
                {
                    word += s[i];
                }
            }
            result += word;
            if (!tags.IsEmpty())             // >hala item var o yüzden hatalı.
            {
                return("");
            }
            return(result);
        }
예제 #2
0
파일: tag2text.cs 프로젝트: gdemir/pro-lang
 public static string process(string s)
 {
     Stack tags = new Stack(100),
           temp = new Stack(100);
     string tag = "",
            word = "",
            result = "";
     bool state = false;
     int i;
     for (i = 0; i < s.Length; i++) {
         if (s[i] == '<') {
             state = true;
             if (word != "") {
                 while ((tag = tags.Pop()) != null) {
                     word = operation(tag, word);
                     temp.Push(tag);
                 }
                 while ((tag = temp.Pop()) != null)
                     tags.Push(tag);
                 result += word;
             }
             word = "";
             tag += s[i];
         } else if (state && s[i] == '>') {
             tag += s[i];
             if (tag[1] == '/') {
                 if (tags.IsEmpty()) // >pop yapıyorsun ama stack boş.
                     return "";
                 if (balance(tags.Peek(), tag)) {
                     tags.Pop();
                 } else // >pop yapılan elaman ile özdeş değil.
                     return "";
             } else
                 tags.Push(tag);
             tag = "";
             state = false;
         } else if (state)
             tag += s[i];
         else
             word += s[i];
     }
     result += word;
     if (!tags.IsEmpty()) // >hala item var o yüzden hatalı.
         return "";
     return result;
 }