summaryrefslogtreecommitdiff
path: root/hieroglyph/hgstack.h
diff options
context:
space:
mode:
Diffstat (limited to 'hieroglyph/hgstack.h')
-rw-r--r--hieroglyph/hgstack.h48
1 files changed, 22 insertions, 26 deletions
diff --git a/hieroglyph/hgstack.h b/hieroglyph/hgstack.h
index 89ca889..ef09b18 100644
--- a/hieroglyph/hgstack.h
+++ b/hieroglyph/hgstack.h
@@ -1,10 +1,10 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* hgstack.h
- * Copyright (C) 2005-2006 Akira TAGOH
+ * Copyright (C) 2005-2007 Akira TAGOH
*
* Authors:
- * Akira TAGOH <at@gclab.org>
+ * Akira TAGOH <akira@tagoh.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -21,35 +21,31 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-#ifndef __HG_STACK_H__
-#define __HG_STACK_H__
+#ifndef __HIEROGLYPH_HGSTACK_H__
+#define __HIEROGLYPH_HGSTACK_H__
#include <hieroglyph/hgtypes.h>
-G_BEGIN_DECLS
-
-HgStack *hg_stack_new (HgMemPool *pool,
- guint max_depth);
-guint hg_stack_depth(HgStack *stack);
-gboolean hg_stack_push (HgStack *stack,
- HgValueNode *node);
-HgValueNode *hg_stack_pop (HgStack *stack);
-void hg_stack_clear(HgStack *stack);
-HgValueNode *hg_stack_index(HgStack *stack,
- guint index_from_top);
-void hg_stack_roll (HgStack *stack,
- guint n_block,
- gint32 n_times);
-void hg_stack_dump (HgStack *stack,
- HgFileObject *file);
+G_BEGIN_DECLS
-/* internal use */
-void _hg_stack_use_stack_validator(HgStack *stack,
- gboolean flag);
-gboolean _hg_stack_push (HgStack *stack,
- HgValueNode *node);
+hg_stack_t *hg_stack_new (hg_vm_t *vm,
+ gsize depth) G_GNUC_WARN_UNUSED_RESULT;
+void hg_stack_free (hg_vm_t *vm,
+ hg_stack_t *stack);
+gboolean hg_stack_push (hg_stack_t *stack,
+ hg_object_t *object);
+hg_object_t *hg_stack_pop (hg_stack_t *stack);
+void hg_stack_clear (hg_stack_t *stack);
+gsize hg_stack_length(hg_stack_t *stack);
+hg_object_t *hg_stack_index (hg_stack_t *stack,
+ gsize index);
+gboolean hg_stack_roll (hg_stack_t *stack,
+ gsize n_block,
+ gssize n_times);
+void hg_stack_dump (hg_vm_t *vm,
+ hg_stack_t *stack);
G_END_DECLS
-#endif /* __HG_STACK_H__ */
+#endif /* __HIEROGLYPH_HGSTACK_H__ */