Example #1
0
 void procToken(Token t)
 {
     switch (t.Type)
     {
         case Token.TokType.OPEN_TAG:
             Element e = new Element();
             e.Name = t.Value;
             //m_tokStack.Push(t);
             m_eltStack.Push(e);
             break;
         case Token.TokType.CLOSE_TAG:
             List<Element> lst = new List<Element>();
             Element top = m_eltStack.Peek();
             string name = top.Name;
             while (name.CompareTo(t.Value) != 0)
             {
                 lst.Add(m_eltStack.Pop());
                 top = m_eltStack.Peek();
                 name = top.Name;
             }
             top.Children.AddRange(lst);
             if(name.CompareTo("OFX") == 0)
                 m_finished = true;
             break;
         case Token.TokType.TEXT:
             m_eltStack.Peek().appendText(t.Value);
             break;
         case Token.TokType.EOF:
             throw new ParserException(t, "Unexpected end of file");
     }
 }
Example #2
0
 static void showElement(Element e)
 {
     System.Console.Out.WriteLine("<" + e.Name + ">" + e.Text);
     foreach(Element c in e.Children)
     {
         showElement(c);
     }
     System.Console.Out.WriteLine("</" + e.Name + ">");
 }