Commit graph

2684 commits

Author SHA1 Message Date
Nobuyoshi Nakada
839b763119 Use named reference for dyna_push 2023-10-23 17:40:33 +09:00
Nobuyoshi Nakada
7e80f0b5a2 Extract p_in_kwarg to save and update lexer contexts 2023-10-23 17:40:33 +09:00
Nobuyoshi Nakada
428f9f5dc0 Move push_pvtbl and push_pktbl in nterms 2023-10-23 17:40:33 +09:00
Nobuyoshi Nakada
3b05238289 Extract p_assoc and p_in to save lexer contexts 2023-10-23 17:40:33 +09:00
yui-knk
08e25985d1 Expand OP_ASGN1 nd_args to nd_index and nd_rvalue
ARGSCAT has been used for nd_args to hold index and rvalue,
because there was limitation on the number of members for Node.
We can easily change structure of node now, let's expand it.
2023-10-20 07:56:20 +09:00
yui-knk
606452d1a9 Remove not used fields from STR 2023-10-15 16:16:06 +09:00
yui-knk
5342dbf00b Check node type before accessing nd_next
This is also a preparation for removing not_used members from
STR NODE. Current codes work without node type check because NODE_STR
has not_used2 member corresponding to nd_next of NODE_LIST and
NODE_DSTR. However it causes problme once not_used members are
removed from NODE_STR.
2023-10-15 16:16:06 +09:00
yui-knk
e7e31d7784 Stop updating node type from NODE_STR to NODE_DSTR
This is a preparation for removing not_used members from STR NODE.
Once not_used members are removed from STR NODE, STR NODE is smaller than
DSTR NODE. Therefore allocate NODE_DSTR instead of reusing NODE_STR.
2023-10-15 16:16:06 +09:00
yui-knk
a4e3d595cd Remove not used fields from XSTR 2023-10-15 16:16:06 +09:00
yui-knk
cab67d227a Remove not used fields from LIT 2023-10-15 16:16:06 +09:00
yui-knk
25072d2e87 Fix node type casts
Use new node type set by nd_set_type.
2023-10-14 11:12:20 +09:00
Nobuyoshi Nakada
a405b28e85 Delete heredoc line mark references 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada
5fc9810bf3 Shorten rb_strterm_literal_t members 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada
a075c55d0c Manage rb_strterm_t without imemo 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada
cb06b6632a Remove unions in rb_strterm structs for alignment 2023-10-14 11:08:43 +09:00
yui-knk
2794a8fef6 [Bug #19919] Warn class variable assignment and constant declaration in condition 2023-10-13 07:35:24 +09:00
Nobuyoshi Nakada
81399a5c46
Use lex_eol macros 2023-10-13 02:32:45 +09:00
Nobuyoshi Nakada
17b0643392
[Bug #19924] Source code should be unsigned char stream
Use `peekc` or `nextc` to fetch the next character, instead of reading
from `lex.pcur` directly, for compilers that plain char is signed.
2023-10-13 02:28:35 +09:00
yui-knk
f9fe7aeef4 Extract NODE_FL_NEWLINE access to macro 2023-10-11 19:22:34 +09:00
Nobuyoshi Nakada
a84d0945fa
Semicolon after SWITCH_BY_COND_TYPE for auto-indent [ci skip] 2023-10-11 10:37:40 +09:00
Nobuyoshi Nakada
47274ba8c1 Extract numparam nterms 2023-10-10 16:32:40 +09:00
Nobuyoshi Nakada
9095e712a3 Use rb_node_exits_t instead of NODE 2023-10-10 16:32:40 +09:00
Nobuyoshi Nakada
e2998c42e1 Forward declaration of struct RNode_DEF_TEMP and its typedef 2023-10-10 16:32:40 +09:00
yui-knk
5245123a4b Remove not used fields from DEFN 2023-10-10 11:05:29 +09:00
Nobuyoshi Nakada
a8d71535ff Pre-allocate NODE_DEFN/NODE_DEFS nodes
To fix the order of node IDs, for typeprof tests.
2023-10-10 00:09:52 +09:00
Nobuyoshi Nakada
4c00ab7fd6 Refactor NODE_DEF_TEMP
Use `NODE_DEF_TEMP` as the wrapper of `NODE_DEFS` in ripper, not only
of `NODE_DEFN`, so that `endless_method_name` works consistently.
2023-10-10 00:09:52 +09:00
yui-knk
b9a2348632 Take care of internal node type
In parse.y, node can be NODE_DEF_TEMP or NODE_EXITS.
Hit "unknown node" without taking care of them.
For example `ruby --dump=y lib/cgi/util.rb` causes
"[BUG] unknown node: 107".
2023-10-09 12:38:32 +09:00
yui-knk
b5d74f4f26 Remove not used fields from EVSTR 2023-10-08 16:34:32 +09:00
yui-knk
5810304c2e Remove not used fields from asgn nodes 2023-10-07 17:54:35 +09:00
yui-knk
b7ee728a83 Correctly casting node for accessing nd_value and nd_vid in parse.y 2023-10-07 17:54:35 +09:00
yui-knk
f28d380374 Pass nd_value to NODE_REQUIRED_KEYWORD_P 2023-10-07 17:54:35 +09:00
yui-knk
b1a3c11c86 Use rb_node_masgn_t instead of NODE 2023-10-07 17:54:35 +09:00
yui-knk
5c779dc45d Remove not used fields from MATCH3 2023-10-06 15:32:33 +09:00
yui-knk
58fc45325f Remove not used fields from YIELD 2023-10-06 07:31:53 +09:00
yui-knk
f6a2af255b Remove not used fields from ZLIST 2023-10-06 07:31:22 +09:00
Nobuyoshi Nakada
a5cc6341c0
Remove NODE_VALUES
This node type was added for the multi-value experiment back in 2004.
The feature itself was removed after a few years, but this is its
remnant.
2023-10-06 03:39:58 +09:00
Nobuyoshi Nakada
efa18fd6b3 Chain nodes to exit only 2023-10-05 14:23:42 +09:00
Nobuyoshi Nakada
5c82b9baed Do not chain unexpected node 2023-10-05 14:23:42 +09:00
Nobuyoshi Nakada
f5f3b35b93 Remove unused nodes in NODE_RETURN and NODE_REDO 2023-10-05 14:23:42 +09:00
Nobuyoshi Nakada
70e1635950 Move internal NODE_DEF_TEMP to parse.y 2023-10-05 14:23:42 +09:00
yui-knk
a472fd55da Remove not used fields from colon nodes 2023-10-05 13:19:09 +09:00
yui-knk
4a3f88f161 Fix cast type 2023-10-05 13:19:09 +09:00
yui-knk
ed8a3428e4 Remove not used fields from variable nodes 2023-10-04 12:15:39 +09:00
Nobuyoshi Nakada
9059dfce12
yield cannot be placed outside methods even in blocks 2023-10-02 23:20:03 +09:00
yui-knk
4da04d5f43 Include new node types into %printer 2023-10-02 13:49:57 +09:00
yui-knk
81668579ed Remove not used fields from call nodes 2023-10-02 09:41:45 +09:00
yui-knk
fdc329ea6f Correctly casting node for accessing nd_args in parse.y 2023-10-02 09:41:45 +09:00
yui-knk
c1894a9d8b Use rb_node_fcall_t instead of NODE 2023-10-02 09:41:45 +09:00
yui-knk
50756a1f08 Use rb_node_block_pass_t instead of NODE 2023-10-01 19:38:03 +09:00
yui-knk
08239fd6af Use rb_node_args_t and rb_node_args_aux_t instead of NODE 2023-10-01 19:38:03 +09:00