2 #ifndef __TPushParser_hh__
3 #define __TPushParser_hh__
8 #include "APushParser.hh"
9 #include "TDictionary.hh"
10 #include "TDocument.hh"
13 class TPushParser : public APushParser
16 TPushParser(class ALogger&, const class TDictionary&);
17 TPushParser(class ALogger&, class AMathMLFactory&, const class TDictionary&);
18 virtual ~TPushParser();
20 virtual void reset(void);
21 virtual void push(const TToken&);
22 virtual std::string drop(void);
23 virtual void setCursorHint(const std::string&);
24 virtual bool hideCursor(void);
25 virtual bool showCursor(void);
27 virtual bool thaw(void);
29 DOM::Document document(void) const { return doc.document().cloneNode(true); }
34 std::string PRIME(void) const;
35 bool isPrimes(const TNode&) const;
44 void do_parameter(const std::string&);
45 void do_superscript(void);
46 void do_subscript(void);
47 void do_space(const std::string&);
48 void do_letter(const std::string&);
49 void do_digit(const std::string&);
50 void do_other(const std::string&);
51 void do_active(const std::string&);
52 void do_comment(void);
53 void do_control(const std::string&);
56 void gdelete_prev_token(void);
57 void gdelete_prev_script(void);
58 void gdelete_prev_group(void);
59 void gdelete_prev_macro(void);
60 void gdelete_prev(void);
62 void rgreplace_father(void);
64 void do_gdelete_script(void);
65 void do_gdelete_macro(void);
66 void do_gdelete_groupId(void);
67 void do_gdelete_phantom_group(void);
68 void do_gdelete(void);
71 void do_apostrophe(void);
72 void advance(const TNode&);
73 bool correctBrace(void);
75 void process(const TToken&);
79 Frame(const TDictionary::Entry& e) : entry(e), pos(0) { };
80 Frame(const TDictionary::Entry&e, unsigned p) : entry(e), pos(p) { };
81 const TDictionary::Entry& entry;
85 std::stack<Frame> frames;
89 unsigned hiddenCursor;
90 const class TDictionary& dictionary;
93 #endif // __TPushParser_hh__