]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/mathml_editor/src/TPushParser.hh
ocaml 3.09 transition
[helm.git] / helm / DEVEL / mathml_editor / src / TPushParser.hh
index 06020b52ff6b6b2ca14094a18c9a6ef4afeabb60..a94402fbfdb2a420606e429f7602641420b05f23 100644 (file)
@@ -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 <lpadovan@cs.unibo.it>,
+ *                    2003 Paolo Marinelli <pmarinel@cs.unibo.it>.
+ *
+ * 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 <lpadovan@cs.unibo.it>
+ */
 
 #ifndef __TPushParser_hh__
 #define __TPushParser_hh__
@@ -19,7 +43,7 @@ public:
 
   virtual void reset(void);
   virtual void push(const TToken&);
-  virtual std::string drop(void);
+  virtual std::string drop(bool);
   virtual void setCursorHint(const std::string&);
   virtual bool hideCursor(void);
   virtual bool showCursor(void);
@@ -31,48 +55,44 @@ public:
 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);
-
-  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);
+  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);
+
+  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
   {