Project

General

Profile

« Previous | Next » 

Revision 9a19cfd4

Added by hasumikin (hitoshi hasumi) over 1 year ago

[Universal Parser] Reduce dependence on RArray in parse.y

  • Introduce rb_parser_ary_t structure to partly eliminate RArray from parse.y

    • In this patch, parser_params->tokens and parser_params->ast->node_buffer->tokens are now rb_parser_ary_t *
    • Instead, ast_node_all_tokens() internally creates a Ruby Array object from the rb_parser_ary_t
    • Also, delete rb_ast_tokens() and rb_ast_set_tokens() in node.c
  • Implement rb_parser_str_escape()

    • This is a port of the rb_str_escape() function in string.c
    • rb_parser_str_escape() does not depend on VALUE (RString)
    • Instead, it uses rb_parser_stirng_t *
    • This function works when --dump=y option passed
  • Because WIP of the universal parser, similar functions like rb_parser_tokens_free() exist in both node.c and parse.y. Refactoring them may be needed in some way in the future

  • Although we considered redesigning the structure: ast->node_buffer->tokens into ast->tokens, we leave it as it is because rb_ast_t is an imemo. (We will address it in the future)