Feature #2674 » ripper_with_T_FILE.diff
| parse.y | ||
|---|---|---|
|
#include "eventids1.c"
|
||
|
#include "eventids2.c"
|
||
|
static ID ripper_id_gets;
|
||
|
static VALUE ripper_dispatch0(struct parser_params*,ID);
|
||
|
static VALUE ripper_dispatch1(struct parser_params*,ID,VALUE);
|
||
| ... | ... | |
|
static VALUE
|
||
|
ripper_lex_get_generic(struct parser_params *parser, VALUE src)
|
||
|
{
|
||
|
return rb_funcall(src, ripper_id_gets, 0);
|
||
|
return rb_io_gets(src);
|
||
|
}
|
||
|
static VALUE
|
||
| ... | ... | |
|
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
||
|
rb_scan_args(argc, argv, "12", &src, &fname, &lineno);
|
||
|
if (rb_obj_respond_to(src, ripper_id_gets, 0)) {
|
||
|
if (RB_TYPE_P(src, T_FILE)) {
|
||
|
parser->parser_lex_gets = ripper_lex_get_generic;
|
||
|
}
|
||
|
else {
|
||
| ... | ... | |
|
{
|
||
|
parser_data_type.parent = RTYPEDDATA_TYPE(rb_parser_new());
|
||
|
ripper_id_gets = rb_intern("gets");
|
||
|
ripper_init_eventids1();
|
||
|
ripper_init_eventids2();
|
||
|
/* ensure existing in symbol table */
|
||
- « Previous
- 1
- 2
- Next »