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(bool);
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); }
35 bool isPrimes(const TNode&) const;
42 bool do_parameter(const std::string&);
43 bool do_superscript(void);
44 bool do_subscript(void);
45 bool do_space(const std::string&);
46 bool do_letter(const std::string&);
47 bool do_digit(const std::string&);
48 bool do_other(const std::string&);
49 bool do_active(const std::string&);
50 bool do_comment(void);
51 bool do_control(const std::string&);
54 std::string drop_prev_token(bool);
55 std::string drop_prev_script(bool);
56 std::string drop_prev_group(bool);
57 std::string drop_prev_macro(bool);
58 std::string drop_prev(bool);
59 void rgreplace_father(void);
60 std::string do_drop_script(bool);
61 std::string do_drop_macro(bool);
62 std::string do_drop_groupId(bool);
63 std::string do_drop_phantom_group(bool);
64 std::string do_drop(bool);
67 bool do_apostrophe(void);
68 void advance(const TNode&);
69 bool correctBrace(void);
71 bool process(const TToken&);
75 Frame(const TDictionary::Entry& e) : entry(e), pos(0) { };
76 Frame(const TDictionary::Entry&e, unsigned p) : entry(e), pos(p) { };
77 const TDictionary::Entry& entry;
81 std::stack<Frame> frames;
85 unsigned hiddenCursor;
86 const class TDictionary& dictionary;
89 #endif // __TPushParser_hh__