diff anagram/guisupport/tracedc.h @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/anagram/guisupport/tracedc.h	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,54 @@
+/*
+ * AnaGram, A System for Syntax Directed Programming
+ * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
+ * See the file COPYING for license and usage terms.
+ *
+ * tracedc.h
+ */
+
+#ifndef TRACEDC_H
+#define TRACEDC_H
+
+#include "dc.h"
+#include "tsd.h"
+
+
+class trace_window_dc : public dc {
+public:
+  dc::ref menu;
+  unsigned look_ahead;
+  tsd *parser_stack;
+
+  trace_window_dc(AgString, tsd *);
+  trace_window_dc(AgString, AgString, tsd *);
+  trace_window_dc(AgString, tsd *, unsigned, unsigned, unsigned);
+  trace_window_dc(trace_window_dc &x)
+  : dc(x), look_ahead(x.look_ahead),
+    parser_stack(copy_tuple_set(x.parser_stack))
+    {}
+
+  ~trace_window_dc(void) {
+    dc::ref m(menu);
+    menu.discardData();
+    //close_window(m);
+    //if (!clone()) delete_tsd(parser_stack);
+    delete_tsd(parser_stack);
+  }
+  void init(void);
+  class ref : public dc::ref {
+  public:
+    ref(void) {}
+    ref(trace_window_dc *x) : dc::ref(x) {}
+    ref(const ref &x) : dc::ref(x) {}
+    ref(dc::ref x) : dc::ref(x) {}
+
+    operator trace_window_dc *(void) {
+      return (trace_window_dc *) window;
+    }
+    trace_window_dc *operator ->(void) {
+      return (trace_window_dc *) window;
+    }
+  };
+};
+
+#endif /* TRACEDC_H */