summaryrefslogtreecommitdiff
path: root/prism_compile.h
diff options
context:
space:
mode:
authorJemma Issroff <jemmaissroff@gmail.com>2023-10-25 11:23:57 -0300
committerJemma Issroff <jemmaissroff@gmail.com>2023-10-25 18:18:35 -0300
commit8f71a5c53007b072341775e4161ec20b50ffc538 (patch)
tree711e0e6e3e61bf109a7e708313f56c24adbb6c90 /prism_compile.h
parent0abf2d86b963089a52af9ee221d1b7da7ba9b2ee (diff)
[PRISM] Move scope_node itself to CRuby, create prism_compile.h
Diffstat (limited to 'prism_compile.h')
-rw-r--r--prism_compile.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/prism_compile.h b/prism_compile.h
new file mode 100644
index 0000000000..dcafa85555
--- /dev/null
+++ b/prism_compile.h
@@ -0,0 +1,20 @@
+#include "prism/prism.h"
+
+// ScopeNodes are helper nodes, and will never be part of the AST. We manually
+// declare them here to avoid generating them.
+typedef struct pm_scope_node {
+ pm_node_t base;
+ struct pm_scope_node *previous;
+ pm_node_t *ast_node;
+ struct pm_parameters_node *parameters;
+ pm_node_t *body;
+ pm_constant_id_list_t locals;
+ pm_parser_t *parser;
+
+ // We don't have the CRuby types ID and st_table within Prism
+ // so we use void *
+ void *constants; // ID *constants
+ void *index_lookup_table; // st_table *index_lookup_table
+} pm_scope_node_t;
+
+void pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_t *previous, pm_parser_t *parser);