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

ruby-changes:23556

From: nobu <ko1@a...>
Date: Thu, 10 May 2012 10:18:37 +0900 (JST)
Subject: [ruby-changes:23556] nobu:r35607 (trunk): parse.y: debugging stuff

nobu	2012-05-10 10:18:27 +0900 (Thu, 10 May 2012)

  New Revision: 35607

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35607

  Log:
    parse.y: debugging stuff
    
    * parse.y (lex_state_name): returns name for lex_state_e, for debug
      use.

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35606)
+++ ChangeLog	(revision 35607)
@@ -1,3 +1,8 @@
+Thu May 10 10:18:10 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (lex_state_name): returns name for lex_state_e, for debug
+	  use.
+
 Wed May  9 16:36:01 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/mkmf.rb (MakeMakefile#pkg_config): check if libs resulted from
Index: parse.y
===================================================================
--- parse.y	(revision 35606)
+++ parse.y	(revision 35607)
@@ -11,6 +11,9 @@
 
 %{
 
+#ifndef PARSER_DEBUG
+#define PARSER_DEBUG 0
+#endif
 #define YYDEBUG 1
 #define YYERROR_VERBOSE 1
 #define YYSTACK_USE_ALLOCA 0
@@ -74,6 +77,10 @@
     EXPR_MAX_STATE
 };
 
+#if PARSER_DEBUG
+static const char *lex_state_name(enum lex_state_e state);
+#endif
+
 typedef VALUE stack_type;
 
 # define BITSTACK_PUSH(stack, n)	((stack) = ((stack)<<1)|((n)&1))
@@ -8479,6 +8486,28 @@
 }
 #endif /* !RIPPER */
 
+#if PARSER_DEBUG
+static const char *
+lex_state_name(enum lex_state_e state)
+{
+    switch (state) {
+      case EXPR_BEG:    return "EXPR_BEG";
+      case EXPR_END:    return "EXPR_END";
+      case EXPR_ENDARG: return "EXPR_ENDARG";
+      case EXPR_ENDFN:  return "EXPR_ENDFN";
+      case EXPR_ARG:    return "EXPR_ARG";
+      case EXPR_CMDARG: return "EXPR_CMDARG";
+      case EXPR_MID:    return "EXPR_MID";
+      case EXPR_FNAME:  return "EXPR_FNAME";
+      case EXPR_DOT:    return "EXPR_DOT";
+      case EXPR_CLASS: 	return "EXPR_CLASS";
+      case EXPR_VALUE: 	return "EXPR_VALUE";
+      case EXPR_MAX_STATE: break;
+    }
+    return NULL;
+}
+#endif
+
 #ifdef RIPPER
 static VALUE
 assignable_gen(struct parser_params *parser, VALUE lhs)
@@ -9807,6 +9836,9 @@
 
     (void)nodetype;
     (void)nodeline;
+#if PARSER_DEBUG
+    (void)lex_state_name(-1);
+#endif
 
     Init_id();
 }

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

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