summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/absyn.h
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-16 00:19:13 +0000
committerKarl Berry <karl@freefriends.org>2009-05-16 00:19:13 +0000
commitbab45528d65eaafe68a705dbb2a57075c7b7cbd8 (patch)
tree10b4ae2b5195c8dede153ab89359ec00f55f325f /Build/source/utils/asymptote/absyn.h
parent8643d90372e9c31e0f461c15c596b60a545bd7d3 (diff)
asymptote 1.72 sources (not integrated into build yet)
git-svn-id: svn://tug.org/texlive/trunk@13110 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/absyn.h')
-rw-r--r--Build/source/utils/asymptote/absyn.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/absyn.h b/Build/source/utils/asymptote/absyn.h
new file mode 100644
index 00000000000..c8b85009ec4
--- /dev/null
+++ b/Build/source/utils/asymptote/absyn.h
@@ -0,0 +1,65 @@
+/****
+ * absyn.h
+ * Andy Hammerlindl 2002/07/14
+ *
+ * Defines the basic types of abstract syntax objects using forward
+ * class declarations.
+ *****/
+
+#ifndef ABSYN_H
+#define ABSYN_H
+
+#include "common.h"
+#include "errormsg.h" // For position
+
+// Forward declaration for markPos.
+namespace trans {
+class coenv;
+}
+
+namespace absyntax {
+
+class absyn : public gc {
+protected:
+ const position pos;
+
+ void markPos(trans::coenv& c);
+
+public:
+ absyn(position pos)
+ : pos(pos) {}
+
+ virtual ~absyn();
+
+ position getPos() const
+ {
+ return pos;
+ }
+
+ virtual void prettyprint(ostream &out, Int indent) = 0;
+private: // Non-copyable
+ void operator=(const absyn&);
+ absyn(const absyn&);
+};
+
+void prettyindent(ostream &out, Int indent);
+void prettyname(ostream &out, string name, Int indent);
+
+class name;
+class ty;
+class varinit;
+class exp;
+class runnable;
+class stm;
+class dec;
+class block;
+
+typedef block file;
+
+// This is the abstract syntax tree of a file, assigned to when running
+// yyparse.
+extern file *root;
+
+}
+
+#endif