summaryrefslogtreecommitdiff
path: root/node.h
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2022-10-01 17:44:28 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2022-10-08 17:59:11 +0900
commit4bfdf6d06ddbcf21345461038f2a9e3012f77268 (patch)
treec218b83b15c56b3a3727c5bd6a2d399564f01349 /node.h
parent4f24f3ea94e43d1021fdd8548480f130f5112b99 (diff)
downloadruby-4bfdf6d06ddbcf21345461038f2a9e3012f77268.tar.gz
Move `error` from top_stmts and top_stmt to stmt
By this change, syntax error is recovered smaller units. In the case below, "DEFN :bar" is same level with "CLASS :Foo" now. ``` module Z class Foo foo. end def bar end end ``` [Feature #19013]
Diffstat (limited to 'node.h')
-rw-r--r--node.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/node.h b/node.h
index d97c333ab5..2a27988ff5 100644
--- a/node.h
+++ b/node.h
@@ -125,6 +125,7 @@ enum node_type {
NODE_ARYPTN,
NODE_HSHPTN,
NODE_FNDPTN,
+ NODE_ERROR,
NODE_LAST
};
@@ -386,6 +387,7 @@ typedef struct RNode {
#define NEW_PREEXE(b,loc) NEW_SCOPE(b,loc)
#define NEW_POSTEXE(b,loc) NEW_NODE(NODE_POSTEXE,0,b,0,loc)
#define NEW_ATTRASGN(r,m,a,loc) NEW_NODE(NODE_ATTRASGN,r,m,a,loc)
+#define NEW_ERROR(loc) NEW_NODE(NODE_ERROR,0,0,0,loc)
#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1)
#define NODE_REQUIRED_KEYWORD_P(node) ((node)->nd_value == NODE_SPECIAL_REQUIRED_KEYWORD)