[前][次][番号順一覧][スレッド一覧]

ruby-changes:56145

From: Hiroshi <ko1@a...>
Date: Wed, 19 Jun 2019 18:36:03 +0900 (JST)
Subject: [ruby-changes:56145] Hiroshi SHIBATA: 40f8c82b96 (trunk): Partly revert directory structure for cparse.

https://git.ruby-lang.org/ruby.git/commit/?id=40f8c82b96

From 40f8c82b960041d29aba028cc9fe01177bdc4f84 Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Wed, 19 Jun 2019 18:35:09 +0900
Subject: Partly revert directory structure for cparse.

  It break the some build environment.

diff --git a/ext/racc/cparse.c b/ext/racc/cparse.c
deleted file mode 100644
index cc0e865..0000000
--- a/ext/racc/cparse.c
+++ /dev/null
@@ -1,861 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-/*
-
-    cparse.c -- Racc Runtime Core
-
-    Copyright (c) 1999-2006 Minero Aoki
-
-    This library is free software.
-    You can distribute/modify this program under the same terms of ruby.
-
-    $originalId: cparse.c,v 1.8 2006/07/06 11:39:46 aamine Exp $
-
-*/
-
-#include <ruby.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-/* -----------------------------------------------------------------------
-                        Important Constants
------------------------------------------------------------------------ */
-
-#define RACC_VERSION "1.4.15"
-
-#define DEFAULT_TOKEN -1
-#define ERROR_TOKEN    1
-#define FINAL_TOKEN    0
-
-#define vDEFAULT_TOKEN  INT2FIX(DEFAULT_TOKEN)
-#define vERROR_TOKEN    INT2FIX(ERROR_TOKEN)
-#define vFINAL_TOKEN    INT2FIX(FINAL_TOKEN)
-
-/* -----------------------------------------------------------------------
-                          File Local Variables
------------------------------------------------------------------------ */
-
-static VALUE RaccBug;
-static VALUE CparseParams;
-
-static ID id_yydebug;
-static ID id_nexttoken;
-static ID id_onerror;
-static ID id_noreduce;
-static ID id_errstatus;
-
-static ID id_d_shift;
-static ID id_d_reduce;
-static ID id_d_accept;
-static ID id_d_read_token;
-static ID id_d_next_state;
-static ID id_d_e_pop;
-
-/* -----------------------------------------------------------------------
-                              Utils
------------------------------------------------------------------------ */
-
-/* For backward compatibility */
-#ifndef ID2SYM
-# define ID2SYM(i) ULONG2NUM(i)
-#endif
-#ifndef SYM2ID
-#  define SYM2ID(v) ((ID)NUM2ULONG(v))
-#endif
-#ifndef SYMBOL_P
-#  define SYMBOL_P(v) FIXNUM_P(v)
-#endif
-#ifndef LONG2NUM
-#  define LONG2NUM(i) INT2NUM(i)
-#endif
-
-#ifndef HAVE_RB_ARY_SUBSEQ
-#  define rb_ary_subseq(ary, beg, len) rb_ary_new4(len, RARRAY_PTR(ary) + beg)
-#endif
-
-static ID value_to_id _((VALUE v));
-static inline long num_to_long _((VALUE n));
-
-static ID
-value_to_id(VALUE v)
-{
-    if (! SYMBOL_P(v)) {
-        rb_raise(rb_eTypeError, "not symbol");
-    }
-    return SYM2ID(v);
-}
-
-static inline long
-num_to_long(VALUE n)
-{
-    return NUM2LONG(n);
-}
-
-#define AREF(s, idx) \
-    ((0 <= idx && idx < RARRAY_LEN(s)) ? rb_ary_entry(s, idx) : Qnil)
-
-/* -----------------------------------------------------------------------
-                        Parser Stack Interfaces
------------------------------------------------------------------------ */
-
-static VALUE get_stack_tail _((VALUE stack, long len));
-static void cut_stack_tail _((VALUE stack, long len));
-
-static VALUE
-get_stack_tail(VALUE stack, long len)
-{
-    if (len < 0) return Qnil;  /* system error */
-    if (len > RARRAY_LEN(stack)) len = RARRAY_LEN(stack);
-    return rb_ary_subseq(stack, RARRAY_LEN(stack) - len, len);
-}
-
-static void
-cut_stack_tail(VALUE stack, long len)
-{
-    while (len > 0) {
-        rb_ary_pop(stack);
-        len--;
-    }
-}
-
-#define STACK_INIT_LEN 64
-#define NEW_STACK() rb_ary_new2(STACK_INIT_LEN)
-#define PUSH(s, i) rb_ary_store(s, RARRAY_LEN(s), i)
-#define POP(s) rb_ary_pop(s)
-#define LAST_I(s) \
-    ((RARRAY_LEN(s) > 0) ? rb_ary_entry(s, RARRAY_LEN(s) - 1) : Qnil)
-#define GET_TAIL(s, len) get_stack_tail(s, len)
-#define CUT_TAIL(s, len) cut_stack_tail(s, len)
-
-/* -----------------------------------------------------------------------
-                       struct cparse_params
------------------------------------------------------------------------ */
-
-struct cparse_params {
-    VALUE value_v;         /* VALUE version of this struct */
-
-    VALUE parser;          /* parser object */
-
-    int   lex_is_iterator;
-    VALUE lexer;           /* scanner object */
-    ID    lexmid;          /* name of scanner method (must be an iterator) */
-
-    /* State transition tables (immutable)
-       Data structure is from Dragon Book 4.9 */
-    /* action table */
-    VALUE action_table;
-    VALUE action_check;
-    VALUE action_default;
-    VALUE action_pointer;
-    /* goto table */
-    VALUE goto_table;
-    VALUE goto_check;
-    VALUE goto_default;
-    VALUE goto_pointer;
-
-    long  nt_base;         /* NonTerminal BASE index */
-    VALUE reduce_table;    /* reduce data table */
-    VALUE token_table;     /* token conversion table */
-
-    /* parser stacks and parameters */
-    VALUE state;
-    long curstate;
-    VALUE vstack;
-    VALUE tstack;
-    VALUE t;
-    long shift_n;
-    long reduce_n;
-    long ruleno;
-
-    long errstatus;         /* nonzero in error recovering mode */
-    long nerr;              /* number of error */
-
-    int use_result_var;
-
-    VALUE retval;           /* return value of parser routine */
-    long fin;               /* parse result status */
-#define CP_FIN_ACCEPT  1
-#define CP_FIN_EOT     2
-#define CP_FIN_CANTPOP 3
-
-    int debug;              /* user level debug */
-    int sys_debug;          /* system level debug */
-
-    long i;                 /* table index */
-};
-
-/* -----------------------------------------------------------------------
-                        Parser Main Routines
------------------------------------------------------------------------ */
-
-static VALUE racc_cparse _((VALUE parser, VALUE arg, VALUE sysdebug));
-static VALUE racc_yyparse _((VALUE parser, VALUE lexer, VALUE lexmid,
-                             VALUE arg, VALUE sysdebug));
-
-static void call_lexer _((struct cparse_params *v));
-static VALUE lexer_i _((RB_BLOCK_CALL_FUNC_ARGLIST(block_args, data)));
-
-static VALUE assert_array _((VALUE a));
-static long assert_integer _((VALUE n));
-static VALUE assert_hash _((VALUE h));
-static VALUE initialize_params _((VALUE vparams, VALUE parser, VALUE arg,
-                                 VALUE lexer, VALUE lexmid));
-static void cparse_params_mark _((void *ptr));
-static size_t cparse_params_memsize _((const void *ptr));
-
-static void parse_main _((struct cparse_params *v,
-                         VALUE tok, VALUE val, int resume));
-static void extract_user_token _((struct cparse_params *v,
-                                  VALUE block_args, VALUE *tok, VALUE *val));
-static void shift _((struct cparse_params* v, long act, VALUE tok, VALUE val));
-static int reduce _((struct cparse_params* v, long act));
-static VALUE reduce0 _((VALUE block_args, VALUE data, VALUE self));
-
-#ifdef DEBUG
-# define D_puts(msg)        if (v->sys_debug) puts(msg)
-# define D_printf(fmt,arg)  if (v->sys_debug) printf(fmt,arg)
-#else
-# define D_puts(msg)
-# define D_printf(fmt,arg)
-#endif
-
-#undef RUBY_UNTYPED_DATA_WARNING
-#define RUBY_UNTYPED_DATA_WARNING 1
-
-static const rb_data_type_t cparse_params_type = {
-    "racc/cparse",
-    {
-	cparse_params_mark,
-	RUBY_TYPED_DEFAULT_FREE,
-	cparse_params_memsize,
-    },
-#ifdef RUBY_TYPED_FREE_IMMEDIATELY
-    0, 0,
-    RUBY_TYPED_FREE_IMMEDIATELY,
-#endif
-};
-
-static VALUE
-racc_cparse(VALUE parser, VALUE arg, VALUE sysdebug)
-{
-    VALUE vparams;
-    struct cparse_params *v;
-
-    vparams = TypedData_Make_Struct(CparseParams, struct cparse_params,
-				    &cparse_params_type, v);
-    D_puts("starting cparse");
-    v->sys_debug = RTEST(sysdebug);
-    vparams = initialize_params(vparams, parser, arg, Qnil, Qnil);
-    v->lex_is_iterator = FALSE;
-    parse_main(v, Qnil, Qnil, 0);
-
-    RB_GC_GUARD(vparams);
-    return v->retval;
-}
-
-static VALUE
-racc_yyparse(VALUE parser, VALUE lexer, VALUE lexmid, VALUE arg, VALUE sysdebug)
-{
-    VALUE vparams;
-    struct cparse_params *v;
-
-    vparams = TypedData_Make_Struct(CparseParams, struct cparse_params,
-				    &cparse_params_type, v);
-    v->sys_debug = RTEST(sysdebug);
-    D_puts("start C yyparse");
-    vparams = initialize_params(vparams, parser, arg, lexer, lexmid);
-    v->lex_is_iterator = TRUE;
-    D_puts("params initialized");
-    parse_main(v, Qnil, Qnil, 0);
-    call_lexer(v);
-    if (!v->fin) {
-        rb_raise(rb_eArgError, "%s() is finished before EndOfToken",
-                 rb_id2name(v->lexmid));
-    }
-
-    RB_GC_GUARD(vparams);
-    return v->retval;
-}
-
-#ifdef HAVE_RB_BLOCK_CALL
-static void
-call_lexer(struct cparse_params *v)
-{
-    rb_block_call(v->lexer, v->lexmid, 0, NULL, lexer_i, v->value_v);
-}
-#else
-static VALUE
-lexer_iter(VALUE data)
-{
-    struct cparse_params *v = rb_check_typeddata(data, &cparse_params_type);
-
-    rb_funcall(v->lexer, v->lexmid, 0);
-    return Qnil;
-}
-
-static void
-call_lexer(struct cparse_params *v)
-{
-    rb_iterate(lexer_iter, v->value_v, lexer_i, v->value_v);
-}
-#endif
-
-static VALUE
-lexer_i(RB_BLOCK_CALL_FUNC_ARGLIST(block_args, data))
-{
-    struct cparse_params *v = rb_check_typeddata(data, &cparse_params_type);
-    VALUE tok, val;
-
-    if (v->fin)
-        rb_raise(rb_eArgError, "extra token after EndOfToken");
-    extract_user_token(v, block_args, &tok, &val);
-    parse_main(v, tok, val, 1);
-    if (v->fin && v->fin != CP_FIN_ACCEPT)
-       rb_iter_break();
-    return Qnil;
-}
-
-static VALUE
-assert_array(VALUE a)
-{
-    Check_Type(a, T_ARRAY);
-    return a;
-}
-
-static VALUE
-assert_hash(VALUE h)
-{
-    Check_Type(h, T_HASH);
-    return h;
-}
-
-static long
-assert_integer(VALUE n)
-{
-    return NUM2LONG(n);
-}
-
-static VALUE
-initialize_params(VALUE vparams, VALUE parser, VALUE arg, VALUE lexer, VALUE lexmid)
-{
-    struct cparse_params *v = rb_check_typeddata(vparams, &cparse_params_type);
-
-    v->value_v = vp (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]