X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTPushParser.hh;h=a94402fbfdb2a420606e429f7602641420b05f23;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=e852bc6072e189a5e995c3346683fac04f0437ad;hpb=2f7288d494e3053b02d589ffcd3d54b7c595d2cc;p=helm.git diff --git a/helm/DEVEL/mathml_editor/src/TPushParser.hh b/helm/DEVEL/mathml_editor/src/TPushParser.hh index e852bc607..a94402fbf 100644 --- a/helm/DEVEL/mathml_editor/src/TPushParser.hh +++ b/helm/DEVEL/mathml_editor/src/TPushParser.hh @@ -1,3 +1,27 @@ +/* This file is part of EdiTeX, an editor of mathematical + * expressions based on TeX syntax. + * + * Copyright (C) 2002-2003 Luca Padovani , + * 2003 Paolo Marinelli . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * For more information, please visit the project's home page + * http://helm.cs.unibo.it/editex/ + * or send an email to + */ #ifndef __TPushParser_hh__ #define __TPushParser_hh__ @@ -17,54 +41,58 @@ public: TPushParser(class ALogger&, class AMathMLFactory&, const class TDictionary&); virtual ~TPushParser(); + virtual void reset(void); virtual void push(const TToken&); + virtual std::string drop(bool); virtual void setCursorHint(const std::string&); + virtual bool hideCursor(void); + virtual bool showCursor(void); -protected: - TDocument document(void) const { return doc; } + virtual bool thaw(void); + + DOM::Document document(void) const { return doc.document().cloneNode(true); } private: void init(void); - std::string PRIME(void) const; + TNode PRIME(void); bool isPrimes(const TNode&) const; - void do_begin(void); - void do_end(void); - void do_shift(void); - void do_align(void); - void do_eol(void); - void do_parameter(const std::string&); - void do_superscript(void); - void do_subscript(void); - void do_space(const std::string&); - void do_letter(const std::string&); - void do_digit(const std::string&); - void do_other(const std::string&); - void do_active(const std::string&); - void do_comment(void); - void do_control(const std::string&); - - - void gdelete_prev_token(void); - void gdelete_prev_script(void); - void gdelete_prev_group(void); - void gdelete_prev_macro(void); - void gdelete_prev(void); + bool do_begin(void); + bool do_end(void); + bool do_shift(void); + bool do_align(void); + bool do_eol(void); + bool do_parameter(const std::string&); + bool do_superscript(void); + bool do_subscript(void); + bool do_ignorablespace(const std::string&); + bool do_space(const std::string&); + bool do_letter(const std::string&); + bool do_digit(const std::string&); + bool do_other(const std::string&); + bool do_active(const std::string&); + bool do_comment(void); + bool do_control(const std::string&); + std::string drop_prev_token(bool); + std::string drop_prev_script(bool); + std::string drop_prev_group(bool); + std::string drop_prev_macro(bool); + std::string drop_prev(bool); void rgreplace_father(void); + std::string do_drop_script(bool); + std::string do_drop_macro(bool); + std::string do_drop_groupId(bool); + std::string do_drop_phantom_group(bool); + std::string do_drop(bool); - void do_gdelete_script(void); - void do_gdelete_macro(void); - void do_gdelete_groupId(void); - void do_gdelete_phantom_group(void); - void do_gdelete(void); - - void do_cr(void); - void do_apostrophe(void); + bool do_cr(void); + bool do_apostrophe(void); void advance(const TNode&); + bool correctBrace(void); - void process(const TToken&); + bool process(const TToken&); struct Frame { @@ -78,6 +106,7 @@ private: unsigned nextId; TDocument doc; TNode cursor; + unsigned hiddenCursor; const class TDictionary& dictionary; };