aboutsummaryrefslogtreecommitdiffstats
path: root/ruby_parser.c
Commit message (Collapse)AuthorAgeFilesLines
* Change RNode structure from union to structyui-knk2023-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | All kind of AST nodes use same struct RNode, which has u1, u2, u3 union members for holding different kind of data. This has two problems. 1. Low flexibility of data structure Some nodes, for example NODE_TRUE, don’t use u1, u2, u3. On the other hand, NODE_OP_ASGN2 needs more than three union members. However they use same structure definition, need to allocate three union members for NODE_TRUE and need to separate NODE_OP_ASGN2 into another node. This change removes the restriction so make it possible to change data structure by each node type. 2. No compile time check for union member access It’s developer’s responsibility for using correct member for each node type when it’s union. This change clarifies which node has which type of fields and enables compile time check. This commit also changes node_buffer_elem_struct buf management to handle different size data with alignment.
* Directly free structure managed by imemo tmpbufyui-knk2023-09-221-2/+0
| | | | | | | | | NODE_ARGS, NODE_ARYPTN, NODE_FNDPTN manage memory of their structure by imemo tmpbuf Object. However rb_ast_struct has reference to NODE. Then these memory can be freed directly when rb_ast_struct is freed. This commit reduces parser's dependency on CRuby functions.
* Replace only use of `snprintf` in parserNobuyoshi Nakada2023-08-251-1/+0
|
* Remove SCRIPT_LINES__ related member functionsNobuyoshi Nakada2023-08-251-27/+0
|
* Move SCRIPT_LINES__ away from parse.yNobuyoshi Nakada2023-08-251-2/+2
|
* Remove uneeded fix2int and rational_raw property for Universal ParserS-H-GAMELINKS2023-08-111-2/+0
|
* Remove uneeded int2big property for Universal ParserS-H-GAMELINKS2023-08-051-1/+0
|
* Move some macro for universal parserS-H-GAMELINKS2023-07-091-9/+0
|
* Move ISASCII defination to parse.yS-H-GAMELINKS2023-07-081-1/+0
|
* Remove `st_functions_t`Nobuyoshi Nakada2023-06-241-2/+0
|
* [Feature #19719] Universal Parseryui-knk2023-06-121-0/+983
Introduce Universal Parser mode for the parser. This commit includes these changes: * Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions are passed via `struct rb_parser_config_struct` when this macro is enabled. * Add CI task with 'cppflags=-DUNIVERSAL_PARSER' for ubuntu.