diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-12-15 00:37:45 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-12-15 01:52:15 +0900 |
commit | 637c3cfc5dc2c044c6eeb2793bf399b6745daa8b (patch) | |
tree | 60de35964d2d24f3301e066d8744d30792462e23 /parse.y | |
parent | a3934cd1e57f9d49d24cdaf29ed2bde2fd70cae6 (diff) |
Turn SET_LEX_STATE macro into an inline function call
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5266
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -165,10 +165,8 @@ enum lex_state_e { #define IS_lex_state_all(ls) IS_lex_state_all_for(p->lex.state, (ls)) # define SET_LEX_STATE(ls) \ - (p->lex.state = \ - (p->debug ? \ - rb_parser_trace_lex_state(p, p->lex.state, (ls), __LINE__) : \ - (enum lex_state_e)(ls))) + parser_set_lex_state(p, ls, __LINE__) +static inline enum lex_state_e parser_set_lex_state(struct parser_params *p, enum lex_state_e ls, int line); typedef VALUE stack_type; @@ -10694,6 +10692,14 @@ new_regexp(struct parser_params *p, VALUE re, VALUE opt, const YYLTYPE *loc) } #endif /* !RIPPER */ +static inline enum lex_state_e +parser_set_lex_state(struct parser_params *p, enum lex_state_e ls, int line) +{ + if (p->debug) { + ls = rb_parser_trace_lex_state(p, p->lex.state, ls, line); + } + return p->lex.state = ls; +} #ifndef RIPPER static const char rb_parser_lex_state_names[][8] = { |