This project is closed and read-only.
Backport #5331 » parser.y.ripper_yydebug.patch
| parse.y (working copy) | ||
|---|---|---|
|
return TypedData_Wrap_Struct(0, &parser_data_type, p);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper#end_seen? -> Boolean
|
||
|
*
|
||
|
* Return true if parsed source ended by +\_\_END\_\_+.
|
||
|
*/
|
||
|
VALUE
|
||
|
rb_parser_end_seen_p(VALUE vparser)
|
||
|
{
|
||
| ... | ... | |
|
return ruby__end__seen ? Qtrue : Qfalse;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper#encoding -> encoding
|
||
|
*
|
||
|
* Return encoding of the source.
|
||
|
*/
|
||
|
VALUE
|
||
|
rb_parser_encoding(VALUE vparser)
|
||
|
{
|
||
| ... | ... | |
|
return rb_enc_from_encoding(parser->enc);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.yydebug -> true or false
|
||
|
*
|
||
|
* Get yydebug.
|
||
|
*/
|
||
|
VALUE
|
||
|
rb_parser_get_yydebug(VALUE self)
|
||
|
{
|
||
| ... | ... | |
|
return yydebug ? Qtrue : Qfalse;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.yydebug = flag
|
||
|
*
|
||
|
* Set yydebug.
|
||
|
*/
|
||
|
VALUE
|
||
|
rb_parser_set_yydebug(VALUE self, VALUE flag)
|
||
|
{
|
||
| ... | ... | |
|
#endif
|
||
|
|
||
|
#ifdef RIPPER
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.yydebug -> true or false
|
||
|
*
|
||
|
* Get yydebug.
|
||
|
*/
|
||
|
static VALUE
|
||
|
ripper_get_yydebug(VALUE self)
|
||
|
{
|
||
|
struct parser_params *parser;
|
||
|
|
||
|
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
||
|
return yydebug ? Qtrue : Qfalse;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.yydebug = flag
|
||
|
*
|
||
|
* Set yydebug.
|
||
|
*/
|
||
|
VALUE
|
||
|
ripper_set_yydebug(VALUE self, VALUE flag)
|
||
|
{
|
||
|
struct parser_params *parser;
|
||
|
|
||
|
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
||
|
yydebug = RTEST(flag);
|
||
|
return flag;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.end_seen? -> Boolean
|
||
|
*
|
||
|
* Return true if parsed source ended by +\_\_END\_\_+.
|
||
|
*/
|
||
|
VALUE
|
||
|
ripper_end_seen_p(VALUE vparser)
|
||
|
{
|
||
|
struct parser_params *parser;
|
||
|
|
||
|
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
||
|
return ruby__end__seen ? Qtrue : Qfalse;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ripper.encoding -> encoding
|
||
|
*
|
||
|
* Return encoding of the source.
|
||
|
*/
|
||
|
VALUE
|
||
|
ripper_encoding(VALUE vparser)
|
||
|
{
|
||
|
struct parser_params *parser;
|
||
|
|
||
|
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
||
|
return rb_enc_from_encoding(parser->enc);
|
||
|
}
|
||
|
|
||
|
#ifdef RIPPER_DEBUG
|
||
|
extern int rb_is_pointer_to_heap(VALUE);
|
||
|
|
||
| ... | ... | |
|
rb_define_method(Ripper, "column", ripper_column, 0);
|
||
|
rb_define_method(Ripper, "filename", ripper_filename, 0);
|
||
|
rb_define_method(Ripper, "lineno", ripper_lineno, 0);
|
||
|
rb_define_method(Ripper, "end_seen?", rb_parser_end_seen_p, 0);
|
||
|
rb_define_method(Ripper, "encoding", rb_parser_encoding, 0);
|
||
|
rb_define_method(Ripper, "yydebug", rb_parser_get_yydebug, 0);
|
||
|
rb_define_method(Ripper, "yydebug=", rb_parser_set_yydebug, 1);
|
||
|
rb_define_method(Ripper, "end_seen?", ripper_end_seen_p, 0);
|
||
|
rb_define_method(Ripper, "encoding", ripper_encoding, 0);
|
||
|
rb_define_method(Ripper, "yydebug", ripper_get_yydebug, 0);
|
||
|
rb_define_method(Ripper, "yydebug=", ripper_set_yydebug, 1);
|
||
|
#ifdef RIPPER_DEBUG
|
||
|
rb_define_method(rb_mKernel, "assert_Qundef", ripper_assert_Qundef, 2);
|
||
|
rb_define_method(rb_mKernel, "rawVALUE", ripper_value, 1);
|
||