[jruby-parser~mercurial:31] Added a test for position

  • From: emononen@kenai.com
  • To: commits@jruby-parser.kenai.com
  • Subject: [jruby-parser~mercurial:31] Added a test for position
  • Date: Thu, 8 Apr 2010 16:42:13 +0000

Project:    jruby-parser
Repository: mercurial
Revision:   31
Author:     emononen
Date:       2010-04-08 11:51:23 UTC
Link:       

Log Message:
------------
support for alias with quotation marks, mostly a port of the fix for 
JRUBY-4119
Fixed alias position
Added a test for position


Revisions:
----------
29
30
31


Modified Paths:
---------------
src/org/jrubyparser/NodeVisitor.java
src/org/jrubyparser/ast/AliasNode.java
src/org/jrubyparser/ast/NodeType.java
src/org/jrubyparser/ast/UndefNode.java
src/org/jrubyparser/parser/ParserSupport.java
src/org/jrubyparser/parser/Ruby18Parser.java
src/org/jrubyparser/parser/Ruby18Parser.y
src/org/jrubyparser/parser/Ruby18YyTables.java
src/org/jrubyparser/parser/Ruby19Parser.java
src/org/jrubyparser/parser/Ruby19Parser.y
src/org/jrubyparser/parser/Ruby19YyTables.java
src/org/jrubyparser/rewriter/ReWriteVisitor.java
test/parser/alias_spec.rb


Added Paths:
------------
src/org/jrubyparser/ast/LiteralNode.java
test/parser/alias_spec.rb


Diffs:
------
diff -r 4e63f1f82658 -r fea8c0c54303 src/org/jrubyparser/NodeVisitor.java
--- a/src/org/jrubyparser/NodeVisitor.java      Thu Nov 05 13:32:57 2009 +0100
+++ b/src/org/jrubyparser/NodeVisitor.java      Thu Apr 08 10:21:32 2010 +0200
@@ -77,6 +77,7 @@
 import org.jrubyparser.ast.InstAsgnNode;
 import org.jrubyparser.ast.InstVarNode;
 import org.jrubyparser.ast.IterNode;
+import org.jrubyparser.ast.LiteralNode;
 import org.jrubyparser.ast.LocalAsgnNode;
 import org.jrubyparser.ast.LocalVarNode;
 import org.jrubyparser.ast.Match2Node;
@@ -176,6 +177,7 @@
     public Object visitInstVarNode(InstVarNode iVisited);
     public Object visitIfNode(IfNode iVisited);
     public Object visitIterNode(IterNode iVisited);
+    public Object visitLiteralNode(LiteralNode iVisited);
     public Object visitLocalAsgnNode(LocalAsgnNode iVisited);
     public Object visitLocalVarNode(LocalVarNode iVisited);
     public Object visitMultipleAsgnNode(MultipleAsgnNode iVisited);

diff -r 4e63f1f82658 -r fea8c0c54303 src/org/jrubyparser/ast/AliasNode.java
--- a/src/org/jrubyparser/ast/AliasNode.java    Thu Nov 05 13:32:57 2009 +0100
+++ b/src/org/jrubyparser/ast/AliasNode.java    Thu Apr 08 10:21:32 2010 +0200
@@ -36,10 +36,10 @@
 /** Represents an alias statement (<code>alias newName oldName</code>).
  */
 public class AliasNode extends Node {
-    private String oldName;
-    private String newName;
+    private Node oldName;
+    private Node newName;
 
-    public AliasNode(SourcePosition position, String newName, String 
oldName) {
+    public AliasNode(SourcePosition position, Node newName, Node oldName) {
         super(position);
         this.oldName = oldName;
         this.newName = newName;
@@ -61,7 +61,7 @@
      * Gets the newName.
      * @return the newName as in the alias statement :  <code> alias 
<b>newName</b> oldName </code>
      */
-    public String getNewName() {
+    public Node getNewName() {
         return newName;
     }
 
@@ -69,12 +69,12 @@
      * Gets the oldName.
      * @return the oldName as in the alias statement :  <code> alias newName 
<b>oldName</b></code>
      */
-    public String getOldName() {
+    public Node getOldName() {
         return oldName;
     }
     
     public List<Node> childNodes() {
-        return EMPTY_LIST;
+        return Node.createList(newName, oldName);
     }
     
 }

diff -r 4e63f1f82658 -r fea8c0c54303 src/org/jrubyparser/ast/LiteralNode.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/jrubyparser/ast/LiteralNode.java  Thu Apr 08 10:21:32 2010 +0200
@@ -0,0 +1,45 @@
+package org.jrubyparser.ast;
+
+import java.util.List;
+import org.jrubyparser.NodeVisitor;
+import org.jrubyparser.lexer.Token;
+
+/**
+ * This is not a node in the classic sense in that it has no defined or
+ * interpret method which can be called.  It just stores the position of
+ * the literal and the name/value of the literal.  We made it a node so that
+ * the parser needs to work less hard in its productions.  dynamic literals
+ * are nodes and by having literals also be nodes means they have a common
+ * subtype which is not Object.
+ */
+public class LiteralNode extends Node implements InvisibleNode {
+    private String name;
+
+    public LiteralNode(Token token) {
+        super(token.getPosition());
+
+        this.name = (String) token.getValue();
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Accept for the visitor pattern.
+     * @param iVisitor the visitor
+     **/
+    public Object accept(NodeVisitor iVisitor) {
+        return iVisitor.visitLiteralNode(this);
+    }
+
+    public List<Node> childNodes() {
+        return EMPTY_LIST;
+    }
+
+    @Override
+    public NodeType getNodeType() {
+        return NodeType.LITERALNODE;
+    }
+
+}
\ No newline at end of file

diff -r 4e63f1f82658 -r fea8c0c54303 src/org/jrubyparser/ast/NodeType.java
--- a/src/org/jrubyparser/ast/NodeType.java     Thu Nov 05 13:32:57 2009 +0100
+++ b/src/org/jrubyparser/ast/NodeType.java     Thu Apr 08 10:21:32 2010 +0200
@@ -43,7 +43,8 @@
     SELFNODE, SPLATNODE, STARNODE, STRNODE, SUPERNODE, SVALUENODE, 
SYMBOLNODE, TOARYNODE,
     TRUENODE, UNDEFNODE, UNTILNODE, VALIASNODE, VCALLNODE, WHENNODE, 
WHILENODE, XSTRNODE, YIELDNODE,
     ZARRAYNODE, ZEROARGNODE, ZSUPERNODE, COMMENTNODE, ROOTNODE, 
ATTRASSIGNNODE, ARGSPUSHNODE,
-    OPTARGNODE, ARGAUXILIARYNODE, LAMBDANODE, MULTIPLEASGN19NODE, RESTARG, 
ENCODINGNODE;
+    OPTARGNODE, ARGAUXILIARYNODE, LAMBDANODE, MULTIPLEASGN19NODE, RESTARG, 
ENCODINGNODE,
+    LITERALNODE;
 
     /**
      * Whether this node type would always evaluate as being true.

diff -r 4e63f1f82658 -r fea8c0c54303 src/org/jrubyparser/ast/UndefNode.java
--- a/src/org/jrubyparser/ast/UndefNode.java    Thu Nov 05 13:32:57 2009 +0100
+++ b/src/org/jrubyparser/ast/UndefNode.java    Thu Apr 08 10:21:32 2010 +0200
@@ -37,9 +37,9 @@
  * Represents an 'undef' statement.
  */
 public class UndefNode extends Node {
-    private String name;
+    private Node name;
 
-    public UndefNode(SourcePosition position, String name) {
+    public UndefNode(SourcePosition position, Node name) {
         super(position);
         this.name = name;
     }
@@ -60,12 +60,12 @@
      * Gets the name.
      * @return Returns a String
      */
-    public String getName() {
+    public Node getName() {
         return name;
     }
     
     public List<Node> childNodes() {
-        return EMPTY_LIST;
+        return Node.createList(name);
     }
     
 }

diff -r 4e63f1f82658 -r fea8c0c54303 
src/org/jrubyparser/parser/ParserSupport.java
--- a/src/org/jrubyparser/parser/ParserSupport.java     Thu Nov 05 13:32:57 
2009 +0100
+++ b/src/org/jrubyparser/parser/ParserSupport.java     Thu Apr 08 10:21:32 
2010 +0200
@@ -117,6 +117,9 @@
 import org.jrubyparser.BlockStaticScope;
 import org.jrubyparser.LocalStaticScope;
 import org.jrubyparser.StaticScope;
+import org.jrubyparser.ast.AliasNode;
+import org.jrubyparser.ast.LiteralNode;
+import org.jrubyparser.ast.UndefNode;
 
 /** 
  *
@@ -1082,4 +1085,12 @@
             ListNode post, BlockArgNode block) {
         return new ArgsNode(position, pre, optional, rest, post, block);
     }
+
+    public Node newAlias(SourcePosition position, Node newNode, Node 
oldNode) {
+        return new AliasNode(position, newNode, oldNode);
+    }
+
+    public Node newUndef(SourcePosition position, Node nameNode) {
+        return new UndefNode(position, nameNode);
+    }
 }

diff -r 4e63f1f82658 -r fea8c0c54303 
src/org/jrubyparser/parser/Ruby18Parser.java
--- a/src/org/jrubyparser/parser/Ruby18Parser.java      Thu Nov 05 13:32:57 
2009 +0100
+++ b/src/org/jrubyparser/parser/Ruby18Parser.java      Thu Apr 08 10:21:32 
2010 +0200
@@ -1,4 +1,4 @@
-// created by jay 1.0.2 (c) 2002-2004 ats@cs.rit.edu
+// created by jay 1.1.0 (c) 2002-2006 ats@cs.rit.edu
 // skeleton Java 1.0 (c) 2002 ats@cs.rit.edu
 
                                        // line 2 "Ruby18Parser.y"
@@ -41,7 +41,6 @@
 
 import java.io.IOException;
 
-import org.jrubyparser.ast.AliasNode;
 import org.jrubyparser.ast.ArgsNode;
 import org.jrubyparser.ast.ArgumentNode;
 import org.jrubyparser.ast.ArrayNode;
@@ -77,6 +76,7 @@
 import org.jrubyparser.ast.InstVarNode;
 import org.jrubyparser.ast.IterNode;
 import org.jrubyparser.ast.ListNode;
+import org.jrubyparser.ast.LiteralNode;
 import org.jrubyparser.ast.ModuleNode;
 import org.jrubyparser.ast.MultipleAsgnNode;
 import org.jrubyparser.ast.NewlineNode;
@@ -105,7 +105,6 @@
 import org.jrubyparser.ast.StrNode;
 import org.jrubyparser.ast.SymbolNode;
 import org.jrubyparser.ast.ToAryNode;
-import org.jrubyparser.ast.UndefNode;
 import org.jrubyparser.ast.UnnamedRestArgNode;
 import org.jrubyparser.ast.UntilNode;
 import org.jrubyparser.ast.VAliasNode;
@@ -149,7 +148,7 @@
         support.setWarnings(warnings);
         lexer.setWarnings(warnings);
     }
-                                       // line 153 "-"
+                                       // line 152 "-"
   // %token constants
   public static final int kCLASS = 257;
   public static final int kMODULE = 258;
@@ -289,59 +288,59 @@
       Order is mandated by <i>jay</i>.
     */
   protected static final short[] yyLhs = {
-//yyLhs 494
-    -1,    99,     0,    34,    33,    35,    35,    35,    35,   102,
-    36,    36,    36,    36,    36,    36,    36,    36,    36,    36,
-   103,    36,    36,    36,    36,    36,    36,    36,    36,    36,
-    36,    36,    36,    36,    36,    37,    37,    37,    37,    37,
-    37,    41,    32,    32,    32,    32,    32,    57,    57,    57,
-   104,    92,    40,    40,    40,    40,    40,    40,    40,    40,
-    93,    93,    95,    95,    94,    94,    94,    94,    94,    94,
-    65,    65,    80,    80,    66,    66,    66,    66,    66,    66,
-    66,    66,    73,    73,    73,    73,    73,    73,    73,    73,
-     8,     8,    31,    31,    31,     9,     9,     9,     9,     9,
-     2,     2,    61,   106,    61,    10,    10,    10,    10,    10,
-    10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-    10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-    10,   105,   105,   105,   105,   105,   105,   105,   105,   105,
-   105,   105,   105,   105,   105,   105,   105,   105,   105,   105,
-   105,   105,   105,   105,   105,   105,   105,   105,   105,   105,
-   105,   105,   105,   105,   105,   105,   105,   105,   105,   105,
-   105,   105,    38,    38,    38,    38,    38,    38,    38,    38,
+//yyLhs 496
+    -1,   100,     0,    33,    32,    34,    34,    34,    34,   103,
+    35,    35,    35,    35,    35,    35,    35,    35,    35,    35,
+   104,    35,    35,    35,    35,    35,    35,    35,    35,    35,
+    35,    35,    35,    35,    35,    36,    36,    36,    36,    36,
+    36,    40,    31,    31,    31,    31,    31,    56,    56,    56,
+   105,    91,    39,    39,    39,    39,    39,    39,    39,    39,
+    92,    92,    94,    94,    93,    93,    93,    93,    93,    93,
+    64,    64,    79,    79,    65,    65,    65,    65,    65,    65,
+    65,    65,    72,    72,    72,    72,    72,    72,    72,    72,
+     7,     7,    30,    30,    30,     8,     8,     8,     8,     8,
+    97,    97,    98,    98,    60,   107,    60,     9,     9,     9,
+     9,     9,     9,     9,     9,     9,     9,     9,     9,     9,
+     9,     9,     9,     9,     9,     9,     9,     9,     9,     9,
+     9,     9,     9,   106,   106,   106,   106,   106,   106,   106,
+   106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
+   106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
+   106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
+   106,   106,   106,   106,    37,    37,    37,    37,    37,    37,
+    37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
+    37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
+    37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
+    37,    37,    37,    37,    37,    37,    37,    37,    66,    69,
+    69,    69,    69,    69,    69,    50,    50,    50,    50,    54,
+    54,    46,    46,    46,    46,    46,    46,    46,    46,    46,
+    47,    47,    47,    47,    47,    47,    47,    47,    47,    47,
+    47,    47,   110,    52,    48,   111,    48,   112,    48,    85,
+    84,    84,    78,    78,    63,    63,    63,    38,    38,    38,
+    38,    38,    38,    38,    38,    38,    38,   113,    38,    38,
     38,    38,    38,    38,    38,    38,    38,    38,    38,    38,
-    38,    38,    38,    38,    38,    38,    38,    38,    38,    38,
-    38,    38,    38,    38,    38,    38,    38,    38,    38,    38,
-    38,    38,    38,    38,    38,    38,    67,    70,    70,    70,
-    70,    70,    70,    51,    51,    51,    51,    55,    55,    47,
-    47,    47,    47,    47,    47,    47,    47,    47,    48,    48,
-    48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
-   109,    53,    49,   110,    49,   111,    49,    86,    85,    85,
-    79,    79,    64,    64,    64,    39,    39,    39,    39,    39,
-    39,    39,    39,    39,    39,   112,    39,    39,    39,    39,
-    39,    39,    39,    39,    39,    39,    39,    39,    39,    39,
-    39,    39,    39,   114,   116,    39,   117,   118,    39,    39,
-    39,    39,   119,   120,    39,   121,    39,   123,   124,    39,
-   125,    39,   126,    39,   127,   128,    39,    39,    39,    39,
-    39,    42,   113,   113,   113,   113,   115,   115,   115,    45,
-    45,    43,    43,    71,    71,    72,    72,    72,    72,   129,
-    91,    56,    56,    56,    24,    24,    24,    24,    24,    24,
-   130,    90,   131,    90,    68,    84,    84,    84,    44,    44,
-    96,    96,    69,    69,    69,    46,    46,    50,    50,    28,
-    28,    28,    16,    17,    17,    18,    19,    20,    25,    25,
-    76,    76,    27,    27,    26,    26,    75,    75,    21,    21,
-    22,    22,    23,   132,    23,   133,    23,    62,    62,    62,
-    62,     4,     3,     3,     3,     3,    30,    29,    29,    29,
-    29,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,    54,    97,    63,    63,    52,   134,    52,    52,
-    58,    58,    59,    59,    59,    59,    59,    59,    59,    59,
-    59,    11,    11,    11,    11,    11,    77,    77,    60,    78,
-    78,    13,    13,    98,    98,    14,    14,    89,    88,    88,
-    15,   135,    15,    83,    83,    83,    81,    81,    82,     5,
-     5,     5,     6,     6,     6,     6,     7,     7,     7,    12,
-    12,   100,   100,   107,   107,   108,   108,   108,   122,   122,
-   101,   101,    74,    87,
+    38,    38,    38,    38,    38,   115,   117,    38,   118,   119,
+    38,    38,    38,    38,   120,   121,    38,   122,    38,   124,
+   125,    38,   126,    38,   127,    38,   128,   129,    38,    38,
+    38,    38,    38,    41,   114,   114,   114,   114,   116,   116,
+   116,    44,    44,    42,    42,    70,    70,    71,    71,    71,
+    71,   130,    90,    55,    55,    55,    23,    23,    23,    23,
+    23,    23,   131,    89,   132,    89,    67,    83,    83,    83,
+    43,    43,    95,    95,    68,    68,    68,    45,    45,    49,
+    49,    27,    27,    27,    15,    16,    16,    17,    18,    19,
+    24,    24,    75,    75,    26,    26,    25,    25,    74,    74,
+    20,    20,    21,    21,    22,   133,    22,   134,    22,    61,
+    61,    61,    61,     3,     2,     2,     2,     2,    29,    28,
+    28,    28,    28,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,    53,    96,    62,    62,    51,   135,
+    51,    51,    57,    57,    58,    58,    58,    58,    58,    58,
+    58,    58,    58,    10,    10,    10,    10,    10,    76,    76,
+    59,    77,    77,    12,    12,    99,    99,    13,    13,    88,
+    87,    87,    14,   136,    14,    82,    82,    82,    80,    80,
+    81,     4,     4,     4,     5,     5,     5,     5,     6,     6,
+     6,    11,    11,   101,   101,   108,   108,   109,   109,   109,
+   123,   123,   102,   102,    73,    86,
     }, yyLen = {
-//yyLen 494
+//yyLen 496
      2,     0,     2,     4,     2,     1,     1,     3,     2,     0,
      4,     3,     3,     3,     2,     3,     3,     3,     3,     3,
      0,     5,     4,     3,     3,     3,     6,     5,     5,     5,
@@ -352,351 +351,351 @@
      1,     3,     2,     3,     1,     4,     3,     3,     3,     3,
      2,     1,     1,     4,     3,     3,     3,     3,     2,     1,
      1,     1,     2,     1,     3,     1,     1,     1,     1,     1,
-     1,     1,     1,     0,     4,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,     1,     0,     4,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     3,     5,     3,     6,     5,     5,     5,     5,
-     4,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-     4,     4,     2,     2,     3,     3,     3,     3,     3,     3,
-     3,     3,     3,     3,     3,     3,     3,     2,     2,     3,
-     3,     3,     3,     3,     5,     1,     1,     1,     2,     2,
-     5,     2,     3,     3,     4,     4,     6,     1,     1,     1,
-     2,     5,     2,     5,     4,     7,     3,     1,     4,     3,
-     5,     7,     2,     5,     4,     6,     7,     9,     3,     1,
-     0,     2,     1,     0,     3,     0,     4,     2,     2,     1,
-     1,     3,     3,     4,     2,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     3,     0,     5,     3,     3,     2,
-     4,     3,     3,     1,     4,     3,     1,     5,     2,     1,
-     2,     6,     6,     0,     0,     7,     0,     0,     7,     5,
-     4,     5,     0,     0,     9,     0,     6,     0,     0,     8,
-     0,     5,     0,     6,     0,     0,     9,     1,     1,     1,
-     1,     1,     1,     1,     1,     2,     1,     1,     1,     1,
-     5,     1,     2,     1,     1,     1,     2,     1,     3,     0,
-     5,     2,     4,     4,     2,     4,     4,     3,     2,     1,
-     0,     5,     0,     5,     5,     1,     4,     2,     1,     1,
-     6,     0,     1,     1,     1,     2,     1,     2,     1,     1,
-     1,     1,     1,     1,     2,     3,     3,     3,     3,     3,
-     0,     3,     1,     2,     3,     3,     0,     3,     0,     2,
-     0,     2,     1,     0,     3,     0,     4,     1,     1,     1,
-     1,     2,     1,     1,     1,     1,     3,     1,     1,     2,
-     2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     0,     4,     2,
-     4,     2,     6,     4,     4,     2,     4,     2,     2,     1,
-     0,     1,     1,     1,     1,     1,     1,     3,     3,     1,
-     3,     1,     1,     2,     1,     1,     1,     2,     2,     0,
-     1,     0,     5,     1,     2,     2,     1,     3,     3,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     0,     1,     0,     1,     0,     1,     1,     1,     1,
-     1,     2,     0,     0,
+     1,     1,     1,     1,     3,     5,     3,     6,     5,     5,
+     5,     5,     4,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     4,     4,     2,     2,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
+     2,     3,     3,     3,     3,     3,     5,     1,     1,     1,
+     2,     2,     5,     2,     3,     3,     4,     4,     6,     1,
+     1,     1,     2,     5,     2,     5,     4,     7,     3,     1,
+     4,     3,     5,     7,     2,     5,     4,     6,     7,     9,
+     3,     1,     0,     2,     1,     0,     3,     0,     4,     2,
+     2,     1,     1,     3,     3,     4,     2,     1,     1,     1,
+     1,     1,     1,     1,     1,     1,     3,     0,     5,     3,
+     3,     2,     4,     3,     3,     1,     4,     3,     1,     5,
+     2,     1,     2,     6,     6,     0,     0,     7,     0,     0,
+     7,     5,     4,     5,     0,     0,     9,     0,     6,     0,
+     0,     8,     0,     5,     0,     6,     0,     0,     9,     1,
+     1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
+     1,     1,     5,     1,     2,     1,     1,     1,     2,     1,
+     3,     0,     5,     2,     4,     4,     2,     4,     4,     3,
+     2,     1,     0,     5,     0,     5,     5,     1,     4,     2,
+     1,     1,     6,     0,     1,     1,     1,     2,     1,     2,
+     1,     1,     1,     1,     1,     1,     2,     3,     3,     3,
+     3,     3,     0,     3,     1,     2,     3,     3,     0,     3,
+     0,     2,     0,     2,     1,     0,     3,     0,     4,     1,
+     1,     1,     1,     2,     1,     1,     1,     1,     3,     1,
+     1,     2,     2,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+     4,     2,     4,     2,     6,     4,     4,     2,     4,     2,
+     2,     1,     0,     1,     1,     1,     1,     1,     1,     3,
+     3,     1,     3,     1,     1,     2,     1,     1,     1,     2,
+     2,     0,     1,     0,     5,     1,     2,     2,     1,     3,
+     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     0,     1,     0,     1,     0,     1,     1,
+     1,     1,     1,     2,     0,     0,
     }, yyDefRed = {
-//yyDefRed 885
+//yyDefRed 886
      1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   293,   296,     0,     0,     0,   319,   320,     0,
-     0,     0,   417,   416,   418,   419,     0,     0,     0,    20,
-     0,   421,   420,     0,     0,   413,   412,     0,   415,     0,
+     0,     0,   295,   298,     0,     0,     0,   321,   322,     0,
+     0,     0,   419,   418,   420,   421,     0,     0,     0,    20,
+     0,   423,   422,     0,     0,   415,   414,     0,   417,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   388,   390,   390,     0,     0,   424,   425,   407,   408,
-     0,   370,     0,   266,     0,   373,   267,   268,     0,   269,
-   270,   265,   369,   371,    35,     2,     0,     0,     0,     0,
-     0,     0,     0,   271,     0,    43,     0,     0,    70,     0,
-     5,     0,     0,    60,     0,     0,   317,   318,   283,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   422,     0,
-    93,     0,   321,     0,   272,   310,   140,   151,   141,   164,
-   137,   157,   147,   146,   162,   145,   144,   139,   165,   149,
-   138,   152,   156,   158,   150,   143,   159,   166,   161,     0,
-     0,     0,     0,   136,   155,   154,   167,   168,   169,   170,
-   171,   135,   142,   133,   134,     0,     0,     0,    97,     0,
-   126,   127,   124,   108,   109,   110,   113,   115,   111,   128,
-   129,   116,   117,   461,   121,   120,   107,   125,   123,   122,
-   118,   119,   114,   112,   105,   106,   130,   312,    98,     0,
-   460,    99,   160,   153,   163,   148,   131,   132,    95,    96,
-     0,   102,   101,   100,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   489,   488,     0,     0,
-     0,   490,     0,     0,     0,     0,     0,     0,     0,   333,
-   334,     0,     0,     0,     0,   229,    45,     0,     0,     0,
-   466,   237,    46,    44,     0,    59,     0,     0,   348,    58,
-    38,     0,     9,   484,     0,     0,     0,   192,     0,     0,
+     0,   390,   392,   392,     0,     0,   426,   427,   409,   410,
+     0,   372,     0,   268,     0,   375,   269,   270,     0,   271,
+   272,   267,   371,   373,    35,     2,     0,     0,     0,     0,
+     0,     0,     0,   273,     0,    43,     0,     0,    70,     0,
+     5,     0,     0,    60,     0,     0,   319,   320,   285,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   424,     0,
+    93,     0,   323,     0,   274,   312,   142,   153,   143,   166,
+   139,   159,   149,   148,   164,   147,   146,   141,   167,   151,
+   140,   154,   158,   160,   152,   145,   161,   168,   163,     0,
+     0,     0,     0,   138,   157,   156,   169,   170,   171,   172,
+   173,   137,   144,   135,   136,     0,     0,     0,    97,     0,
+   128,   129,   126,   110,   111,   112,   115,   117,   113,   130,
+   131,   118,   119,   463,   123,   122,   109,   127,   125,   124,
+   120,   121,   116,   114,   107,   108,   132,   314,    98,     0,
+   462,    99,   162,   155,   165,   150,   133,   134,    95,    96,
+   101,   100,   103,     0,   102,   104,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   491,   490,     0,
+     0,     0,   492,     0,     0,     0,     0,     0,     0,     0,
+   335,   336,     0,     0,     0,     0,   231,    45,     0,     0,
+     0,   468,   239,    46,    44,     0,    59,     0,     0,   350,
+    58,    38,     0,     9,   486,     0,     0,     0,   194,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   217,     0,     0,   463,     0,     0,     0,     0,     0,
-     0,     0,    68,   208,    39,   207,   404,   403,   405,   401,
-   402,     0,     0,     0,     0,     0,     0,     0,     0,   352,
-   350,   344,     0,   288,   374,   290,     4,     0,     0,     0,
+     0,     0,   219,     0,     0,   465,     0,     0,     0,     0,
+     0,     0,     0,    68,   210,    39,   209,   406,   405,   407,
+   403,   404,     0,     0,     0,     0,     0,     0,     0,     0,
+   354,   352,   346,     0,   290,   376,   292,     4,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   339,   341,     0,     0,     0,     0,     0,     0,    72,
-     0,     0,     0,     0,     0,     0,     0,   409,   410,     0,
-    90,     0,    92,     0,   427,   305,   426,     0,     0,     0,
-     0,     0,     0,   479,   480,   314,   103,     0,     0,   274,
-     0,   324,   323,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   491,     0,     0,     0,
-     0,     0,     0,   302,     0,   257,     0,     0,   230,   259,
-     0,   232,   285,     0,     0,   252,   251,     0,     0,     0,
-     0,     0,    11,    13,    12,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-   218,   281,     0,   486,   219,     0,   221,     0,   465,   464,
-   282,     0,     0,     0,     0,   395,   393,   406,   392,   391,
-   375,   389,   376,   377,   378,   379,   382,     0,   384,   385,
-     0,     0,     0,    50,    53,     0,    15,    16,    17,    18,
-    19,    36,    37,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   341,   343,     0,     0,     0,     0,     0,     0,
+    72,     0,     0,     0,     0,     0,     0,     0,   411,   412,
+     0,    90,     0,    92,     0,   429,   307,   428,     0,     0,
+     0,     0,     0,     0,   481,   482,   316,   105,     0,     0,
+   276,     0,   326,   325,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   493,     0,     0,
+     0,     0,     0,     0,   304,     0,   259,     0,     0,   232,
+   261,     0,   234,   287,     0,     0,   254,   253,     0,     0,
+     0,     0,     0,    11,    13,    12,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   279,     0,     0,
+     0,   220,   283,     0,   488,   221,     0,   223,     0,   467,
+   466,   284,     0,     0,     0,     0,   397,   395,   408,   394,
+   393,   377,   391,   378,   379,   380,   381,   384,     0,   386,
+   387,     0,     0,     0,    50,    53,     0,    15,    16,    17,
+    18,    19,    36,    37,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   474,     0,     0,   475,     0,     0,     0,     0,   347,
-     0,     0,   472,   473,     0,     0,    30,     0,     0,    23,
-     0,    31,   260,     0,     0,    66,    73,    24,    33,     0,
-    25,     0,     0,   429,     0,     0,     0,     0,     0,     0,
-    94,     0,     0,     0,     0,   443,   442,   441,   444,     0,
-   452,   451,   456,   455,   446,     0,     0,     0,     0,   449,
-     0,     0,   439,     0,     0,     0,   363,     0,     0,   364,
-     0,     0,   331,     0,   325,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   300,   328,   327,
-   294,   326,   297,     0,     0,     0,     0,     0,     0,     0,
-   236,   468,     0,     0,     0,   258,     0,     0,   467,   284,
-     0,     0,   255,     0,     0,   249,     0,     0,     0,     0,
-     0,   223,     0,    10,     0,     0,    22,     0,     0,     0,
-     0,     0,   222,     0,   261,     0,     0,     0,     0,     0,
-     0,     0,   381,   383,   387,   337,     0,     0,   335,     0,
-     0,     0,     0,     0,     0,   228,     0,   345,   227,     0,
-     0,   346,     0,     0,    48,   342,    49,   343,   264,     0,
-     0,    71,   308,     0,     0,   280,   311,     0,     0,     0,
-   453,   457,     0,   431,     0,   435,     0,   437,     0,   438,
-   315,   104,     0,     0,   366,   332,     0,     3,   368,     0,
-   329,     0,     0,     0,     0,     0,     0,   299,   301,   357,
-     0,     0,     0,     0,     0,     0,     0,     0,   234,     0,
-     0,     0,     0,     0,   242,   254,   224,     0,     0,   225,
-     0,     0,   287,    21,   276,     0,     0,     0,   397,   398,
-   399,   394,   400,   336,     0,     0,     0,     0,     0,     0,
-    27,     0,    28,     0,    55,    29,     0,     0,    57,     0,
-     0,     0,     0,     0,   428,   306,   462,   448,     0,   313,
-   447,     0,   458,     0,     0,   450,     0,     0,     0,     0,
-     0,     0,   365,     0,   367,     0,   291,     0,   292,     0,
-     0,     0,     0,   303,   231,     0,   233,   248,   256,     0,
-     0,     0,   239,     0,     0,   220,   396,   338,   353,   351,
-     0,   340,    26,     0,   263,     0,   430,     0,   433,   434,
-   436,     0,     0,     0,     0,     0,     0,     0,   356,   358,
-   354,   359,   295,   298,     0,     0,     0,     0,   238,     0,
-   244,     0,   226,    51,   309,     0,     0,     0,     0,     0,
-     0,     0,   360,     0,     0,   235,   240,     0,     0,     0,
-   243,   432,   316,     0,   330,   304,     0,     0,   245,     0,
-   241,     0,   246,     0,   247,
+     0,     0,   476,     0,     0,   477,     0,     0,     0,     0,
+   349,     0,     0,   474,   475,     0,     0,    30,     0,     0,
+    23,     0,    31,   262,     0,     0,    66,    73,    24,    33,
+     0,    25,     0,     0,   431,     0,     0,     0,     0,     0,
+     0,    94,     0,     0,     0,     0,   445,   444,   443,   446,
+     0,   454,   453,   458,   457,   448,     0,     0,     0,     0,
+   451,     0,     0,   441,     0,     0,     0,   365,     0,     0,
+   366,     0,     0,   333,     0,   327,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   302,   330,
+   329,   296,   328,   299,     0,     0,     0,     0,     0,     0,
+     0,   238,   470,     0,     0,     0,   260,     0,     0,   469,
+   286,     0,     0,   257,     0,     0,   251,     0,     0,     0,
+     0,     0,   225,     0,    10,     0,     0,    22,     0,     0,
+     0,     0,     0,   224,     0,   263,     0,     0,     0,     0,
+     0,     0,     0,   383,   385,   389,   339,     0,     0,   337,
+     0,     0,     0,     0,     0,     0,   230,     0,   347,   229,
+     0,     0,   348,     0,     0,    48,   344,    49,   345,   266,
+     0,     0,    71,   310,     0,     0,   282,   313,     0,     0,
+     0,   455,   459,     0,   433,     0,   437,     0,   439,     0,
+   440,   317,   106,     0,     0,   368,   334,     0,     3,   370,
+     0,   331,     0,     0,     0,     0,     0,     0,   301,   303,
+   359,     0,     0,     0,     0,     0,     0,     0,     0,   236,
+     0,     0,     0,     0,     0,   244,   256,   226,     0,     0,
+   227,     0,     0,   289,    21,   278,     0,     0,     0,   399,
+   400,   401,   396,   402,   338,     0,     0,     0,     0,     0,
+     0,    27,     0,    28,     0,    55,    29,     0,     0,    57,
+     0,     0,     0,     0,     0,   430,   308,   464,   450,     0,
+   315,   449,     0,   460,     0,     0,   452,     0,     0,     0,
+     0,     0,     0,   367,     0,   369,     0,   293,     0,   294,
+     0,     0,     0,     0,   305,   233,     0,   235,   250,   258,
+     0,     0,     0,   241,     0,     0,   222,   398,   340,   355,
+   353,     0,   342,    26,     0,   265,     0,   432,     0,   435,
+   436,   438,     0,     0,     0,     0,     0,     0,     0,   358,
+   360,   356,   361,   297,   300,     0,     0,     0,     0,   240,
+     0,   246,     0,   228,    51,   311,     0,     0,     0,     0,
+     0,     0,     0,   362,     0,     0,   237,   242,     0,     0,
+     0,   245,   434,   318,     0,   332,   306,     0,     0,   247,
+     0,   243,     0,   248,     0,   249,
     }, yyDgoto = {
-//yyDgoto 136
-     1,   208,   201,   289,    61,   109,   546,   519,   110,   203,
-   514,   564,   375,   565,   566,   189,    63,    64,    65,    66,
-    67,   292,   291,   459,    68,    69,    70,   467,    71,    72,
-    73,   111,    74,   205,   206,    76,    77,    78,    79,    80,
-    81,   210,   258,   710,   840,   711,   703,   236,   622,   416,
-   707,   665,   365,   245,    83,   667,    84,    85,   567,   568,
-   569,   204,   751,   212,   531,    87,    88,   237,   395,   578,
-   270,   228,   657,   213,    90,   298,   296,   570,   571,   272,
-    91,   273,   240,   277,   596,   408,   615,   409,   695,   782,
-   303,   342,   474,    92,    93,   266,   378,   214,   573,     2,
-   219,   220,   425,   255,   660,   191,   575,   254,   444,   246,
-   626,   731,   438,   383,   222,   600,   722,   223,   723,   608,
-   844,   545,   384,   542,   773,   370,   372,   574,   787,   509,
-   472,   471,   651,   650,   544,   371,
+//yyDgoto 137
+     1,   209,   290,    61,   109,   547,   520,   110,   201,   515,
+   565,   376,   566,   567,   189,    63,    64,    65,    66,    67,
+   293,   292,   460,    68,    69,    70,   468,    71,    72,    73,
+   111,    74,   206,   207,    76,    77,    78,    79,    80,    81,
+   211,   259,   711,   841,   712,   704,   237,   623,   417,   708,
+   666,   366,   246,    83,   668,    84,    85,   568,   569,   570,
+   203,   752,   213,   532,    87,    88,   238,   396,   579,   271,
+   229,   658,   214,    90,   299,   297,   571,   572,   273,    91,
+   274,   241,   278,   597,   409,   616,   410,   696,   783,   304,
+   343,   475,    92,    93,   267,   379,   215,   204,   205,   574,
+     2,   220,   221,   426,   256,   661,   191,   576,   255,   445,
+   247,   627,   732,   439,   384,   223,   601,   723,   224,   724,
+   609,   845,   546,   385,   543,   774,   371,   373,   575,   788,
+   510,   473,   472,   652,   651,   545,   372,
     }, yySindex = {
-//yySindex 885
-     0,     0,  4369, 13233, 16554, 16923, 17508, 17400,  4369, 15078,
- 15078,  6936,     0,     0, 16677, 13602, 13602,     0,     0, 13602,
-  -237,  -210,     0,     0,     0,     0, 15078, 17292,   141,     0,
-  -201,     0,     0,     0,     0,     0,     0,     0,     0, 16308,
- 16308,   -83,  -132,  5339, 15078, 15201, 16308, 17046, 16308, 16431,
- 17615,     0,     0,     0,   160,   183,     0,     0,     0,     0,
-     0,     0,  -195,     0,  -141,     0,     0,     0,  -186,     0,
-     0,     0,     0,     0,     0,     0,   103,   782,   291,  2326,
-     0,   -55,   180,     0,  -189,     0,  -107,   191,     0,   193,
-     0, 16800,   206,     0,   -85,   782,     0,     0,     0,  -237,
-  -210,   141,     0,     0,   152, 15078,  -228,  4369,     0,  -195,
-     0,    38,     0,   192,     0,     0,     0,     0,     0,     0,
+//yySindex 886
+     0,     0,  4234, 13190, 16634, 17003, 17588, 17480,  4234, 15035,
+ 15035,  6801,     0,     0, 16757, 13559, 13559,     0,     0, 13559,
+  -252,  -231,     0,     0,     0,     0, 15035, 17372,   108,     0,
+  -195,     0,     0,     0,     0,     0,     0,     0,     0, 16265,
+ 16265,  -191,  -114, 13067, 15035, 15158, 16265, 17126, 16265, 16388,
+ 17695,     0,     0,     0,   174,   183,     0,     0,     0,     0,
+     0,     0,  -211,     0,  -131,     0,     0,     0,  -203,     0,
+     0,     0,     0,     0,     0,     0,    98,    -1,   -69,  2191,
+     0,   -38,   135,     0,  -164,     0,   -79,   221,     0,   200,
+     0, 16880,   208,     0,   -58,    -1,     0,     0,     0,  -252,
+  -231,   108,     0,     0,  -105, 15035,   -46,  4234,     0,  -211,
+     0,    43,     0,   323,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  -139,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  -149,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
- 17615,     0,     0,     0,   230,   -21,    18,   -18,     0,   291,
-   190,   245,   -48,   236,    24,   190,     0,     0,   103,  -122,
-   305,     0, 15078, 15078,   170,     0,   359,     0,   224,     0,
-     0, 16308, 16308, 16308,  2326,     0,     0,   132,   454,   470,
-     0,     0,     0,     0, 13356,     0, 13725, 13602,     0,     0,
-     0,  -239,     0,     0, 15324,   148,  4369,     0,   365,   199,
-   205,   211,   201,  5339,   210,     0,   212,   291, 16308,   141,
-   196,     0,    66,   144,     0,   146,   144,   172,   237,     0,
-   452,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  -113,   261,   280,  -158,   195,   597,   200,  -166,     0,
-     0,     0,   217,     0,     0,     0,     0, 13110, 15078, 15078,
- 15078, 15078, 13233, 15078, 15078, 16308, 16308, 16308, 16308, 16308,
- 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308,
- 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308,
- 16308,     0,     0, 17777, 17832, 15201, 17887, 17887, 16431,     0,
- 15447,  5339, 17046,   530, 15447, 16431,   229,     0,     0,   291,
-     0,     0,     0,   103,     0,     0,     0, 17887, 17942, 15201,
-  4369, 15078,  1864,     0,     0,     0,     0, 15570,   309,     0,
-   201,     0,     0,  4369,   318, 17997, 18052, 15201, 16308, 16308,
- 16308,  4369,   329,  4369, 15693,   342,     0,   105,   105,     0,
- 18107, 18162, 15201,     0,   576,     0, 16308, 13848,     0,     0,
- 13971,     0,     0,   274, 13479,     0,     0,   -55,   141,   118,
-   286,   585,     0,     0,     0, 17400, 15078,  2326,  4369,   273,
- 17997, 18052, 16308, 16308, 16308,   298,     0,     0,   141,  2445,
-     0,     0, 15816,     0,     0, 16308,     0, 16308,     0,     0,
-     0,     0, 18217, 18272, 15201,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    12,     0,     0,
-   613,  -190,  -190,     0,     0,   782,     0,     0,     0,     0,
-     0,     0,     0,   199,  3378,  3378,  3378,  3378,  1780,  1780,
-  3336,  2850,  3378,  3378,  2389,  2389,   609,   609,   199,  1180,
-   199,   199,  -183,  -183,  1780,  1780,  1599,  1599,  3422,  -190,
-   316,     0,   319,  -210,     0,   321,     0,   323,  -210,     0,
-     0,   331,     0,     0,  -210,  -210,     0,  2326, 16308,     0,
-  3901,     0,     0,   618,   330,     0,     0,     0,     0,     0,
-     0,  2326,   103,     0, 15078,  4369,  -210,     0,     0,  -210,
-     0,   344,   426,    56,   635,     0,     0,     0,     0,  1570,
-     0,     0,     0,     0,     0,   396,   400,  4369,   103,     0,
-   664,   667,     0,   670, 17722, 17400,     0,     0,   372,     0,
-  4369,   453,     0,   325,     0,   378,   382,   387,   323,   383,
-  3901,   309,   462,   464, 16308,   686,   190,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   391, 15078,   390,
-     0,     0, 16308,   132,   687,     0, 16308,   132,     0,     0,
- 16308,  2326,     0,    14,   696,     0,   403,   405, 17887, 17887,
-   409,     0, 14094,     0,  -170,   389,     0,   199,   199,  2326,
-     0,   414,     0, 16308,     0,     0,     0,     0,     0,   415,
-  4369,   373,     0,     0,     0,     0,  4851,  4369,     0,  4369,
-  -190, 16308,  4369, 16431, 16431,     0,   217,     0,     0, 16431,
- 16308,     0,   217,   423,     0,     0,     0,     0,     0, 16308,
- 15939,     0,     0,   103,   509,     0,     0,   435, 16308,   141,
-     0,     0,   519,     0,  1570,     0,  -164,     0,   254,     0,
-     0,     0, 17169,   190,     0,     0,  4369,     0,     0, 15078,
-     0,   521, 16308, 16308, 16308,   449,   528,     0,     0,     0,
- 16062,  4369,  4369,  4369,     0,   105,   576, 14217,     0,   576,
-   576,   455, 14340, 14463,     0,     0,     0,  -210,  -210,     0,
-   -55,   118,     0,     0,     0,  2445,     0,   433,     0,     0,
-     0,     0,     0,     0,   439,   537,   441,  4369,  2326,   540,
-     0,  2326,     0,  2326,     0,     0,  2326,  2326,     0, 16431,
-  2326, 16308,     0,  4369,     0,     0,     0,     0,   475,     0,
-     0,   774,     0,   670,   635,     0,   670,  1864,   512,     0,
-   465,     0,     0,  4369,     0,   190,     0, 16308,     0, 16308,
-   -76,   555,   561,     0,     0, 16308,     0,     0,     0, 16308,
-   785,   787,     0, 16308,   497,     0,     0,     0,     0,     0,
-   477,     0,     0,  2326,     0,   579,     0,  -164,     0,     0,
-     0,  4369,     0, 18327, 18382, 15201,   -21,  4369,     0,     0,
-     0,     0,     0,     0,  4369,  2929,   576, 14586,     0, 14709,
-     0,   576,     0,     0,     0,   670,   587,     0,     0,     0,
-     0,   502,     0,   325,   591,     0,     0, 16308,   813, 16308,
-     0,     0,     0,     0,     0,     0,   576, 14832,     0,   576,
-     0, 16308,     0,   576,     0,
+     0,     0,     0,   240,     0,     0,    28,    69,    33,     0,
+   -69,    68,   347,     2,   300,    46,    68,     0,     0,    98,
+   -16,   319,     0, 15035, 15035,   106,     0,   407,     0,   150,
+     0,     0, 16265, 16265, 16265,  2191,     0,     0,   112,   411,
+   437,     0,     0,     0,     0, 13313,     0, 13682, 13559,     0,
+     0,     0,  -213,     0,     0, 15281,   146,  4234,     0,   412,
+   232,   235,   238,   201, 13067,   176,     0,   220,   -69, 16265,
+   108,   229,     0,   104,   132,     0,   134,   132,   213,   271,
+     0,   424,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   -90,   156,   215,  -157,   211,   292,   225,  -223,
+     0,     0,     0,   254,     0,     0,     0,     0,  5179, 15035,
+ 15035, 15035, 15035, 13190, 15035, 15035, 16265, 16265, 16265, 16265,
+ 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265,
+ 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265, 16265,
+ 16265, 16265,     0,     0,  4704,  5067, 15158, 17857, 17857, 16388,
+     0, 15404, 13067, 17126,   557, 15404, 16388,   265,     0,     0,
+   -69,     0,     0,     0,    98,     0,     0,     0, 17857, 17912,
+ 15158,  4234, 15035,  1283,     0,     0,     0,     0, 15527,   343,
+     0,   201,     0,     0,  4234,   358, 17967, 18022, 15158, 16265,
+ 16265, 16265,  4234,   357,  4234, 15650,   366,     0,   101,   101,
+     0, 18077, 18132, 15158,     0,   588,     0, 16265, 13805,     0,
+     0, 13928,     0,     0,   296, 13436,     0,     0,   -38,   108,
+    22,   297,   589,     0,     0,     0, 17480, 15035,  2191,  4234,
+   277, 17967, 18022, 16265, 16265, 16265,   299,     0,     0,   108,
+  2310,     0,     0, 15773,     0,     0, 16265,     0, 16265,     0,
+     0,     0,     0, 18187, 18242, 15158,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    75,     0,
+     0,   611,  -202,  -202,     0,     0,    -1,     0,     0,     0,
+     0,     0,     0,     0,   232,  3243,  3243,  3243,  3243,  1621,
+  1621,  3201,  2715,  3243,  3243,  2254,  2254,  -143,  -143,   232,
+  1609,   232,   232,   -86,   -86,  1621,  1621,  1402,  1402,  3287,
+  -202,   309,     0,   317,  -231,     0,   320,     0,   322,  -231,
+     0,     0,   316,     0,     0,  -231,  -231,     0,  2191, 16265,
+     0,  3766,     0,     0,   617,   329,     0,     0,     0,     0,
+     0,     0,  2191,    98,     0, 15035,  4234,  -231,     0,     0,
+  -231,     0,   341,   425,    79,   629,     0,     0,     0,     0,
+  1470,     0,     0,     0,     0,     0,   387,   388,  4234,    98,
+     0,   651,   653,     0,   657, 17802, 17480,     0,     0,   365,
+     0,  4234,   444,     0,    29,     0,   371,   373,   374,   322,
+   372,  3766,   343,   451,   456, 16265,   680,    68,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   382, 15035,
+   380,     0,     0, 16265,   112,   692,     0, 16265,   112,     0,
+     0, 16265,  2191,     0,    11,   699,     0,   404,   409, 17857,
+ 17857,   410,     0, 14051,     0,  -160,   386,     0,   232,   232,
+  2191,     0,   417,     0, 16265,     0,     0,     0,     0,     0,
+   416,  4234,  -176,     0,     0,     0,     0, 16511,  4234,     0,
+  4234,  -202, 16265,  4234, 16388, 16388,     0,   254,     0,     0,
+ 16388, 16265,     0,   254,   427,     0,     0,     0,     0,     0,
+ 16265, 15896,     0,     0,    98,   489,     0,     0,   439, 16265,
+   108,     0,     0,   517,     0,  1470,     0,  -155,     0,   173,
+     0,     0,     0, 17249,    68,     0,     0,  4234,     0,     0,
+ 15035,     0,   518, 16265, 16265, 16265,   453,   528,     0,     0,
+     0, 16019,  4234,  4234,  4234,     0,   101,   588, 14174,     0,
+   588,   588,   459, 14297, 14420,     0,     0,     0,  -231,  -231,
+     0,   -38,    22,     0,     0,     0,  2310,     0,   442,     0,
+     0,     0,     0,     0,     0,   443,   541,   445,  4234,  2191,
+   551,     0,  2191,     0,  2191,     0,     0,  2191,  2191,     0,
+ 16388,  2191, 16265,     0,  4234,     0,     0,     0,     0,   479,
+     0,     0,   778,     0,   657,   629,     0,   657,  1283,   527,
+     0,   491,     0,     0,  4234,     0,    68,     0, 16265,     0,
+ 16265,   166,   575,   576,     0,     0, 16265,     0,     0,     0,
+ 16265,   800,   802,     0, 16265,   506,     0,     0,     0,     0,
+     0,   494,     0,     0,  2191,     0,   594,     0,  -155,     0,
+     0,     0,  4234,     0, 18297, 18352, 15158,    28,  4234,     0,
+     0,     0,     0,     0,     0,  4234,  2794,   588, 14543,     0,
+ 14666,     0,   588,     0,     0,     0,   657,   597,     0,     0,
+     0,     0,   520,     0,    29,   601,     0,     0, 16265,   824,
+ 16265,     0,     0,     0,     0,     0,     0,   588, 14789,     0,
+   588,     0, 16265,     0,   588,     0,
     }, yyRindex = {
-//yyRindex 885
-     0,     0,   102,     0,     0,     0,     0,     0,   666,     0,
-     0,    -8,     0,     0,     0,  8516,  8645,     0,     0,  8756,
-  4638,  4029,     0,     0,     0,     0,     0,     0, 16185,     0,
-     0,     0,     0,  2085,  3180,     0,     0,  2208,     0,     0,
-     0,     0,     0,    52,     0,   516,   499,   136,     0,     0,
-   608,     0,     0,     0,   626,  -144,     0,     0,     0,     0,
-  9716,     0, 14955,     0,  7796,     0,     0,     0,  7925,     0,
-     0,     0,     0,     0,     0,     0,   327,    22,  5240,  1825,
-  8036,  3785,     0,     0,  4271,     0,  9845,     0,     0,     0,
-     0,   208,     0,     0,     0,   474,     0,     0,     0,  8165,
-  7076,   523,  5880,  6022,     0,     0,     0,    52,     0,     0,
+//yyRindex 886
+     0,     0,    93,     0,     0,     0,     0,     0,   352,     0,
+     0,   275,     0,     0,     0,  8381,  8510,     0,     0,  8621,
+  4503,  3894,     0,     0,     0,     0,     0,     0, 16142,     0,
+     0,     0,     0,  1950,  3045,     0,     0,  2073,     0,     0,
+     0,     0,     0,    82,     0,   526,   509,   195,     0,     0,
+   361,     0,     0,     0,   504,  -125,     0,     0,     0,     0,
+  9581,     0, 14912,     0,  7661,     0,     0,     0,  7790,     0,
+     0,     0,     0,     0,     0,     0,   216,   180,  1544,  1729,
+  7901,  3650,     0,     0,  4136,     0,  9710,     0,     0,     0,
+     0,   196,     0,     0,     0,   525,     0,     0,     0,  8030,
+  6941,   537,  5745,  5887,     0,     0,     0,    82,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   722,
-  1176,  1290,  1468,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1983,  2816,  3302,     0,  3788,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  1012,
+  1832,  2681,  3167,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,  3653,  4139,  4581,     0,  4626,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0, 13060,   296,     0,     0,  7205,  4757,
-     0,     0,  7445,     0,     0,     0,     0,     0,   594,     0,
-    10,     0,     0,     0,     0,   803,     0,  1164,     0,     0,
-     0,     0,     0,     0,  1064,     0,     0, 12795,  1938,  1938,
-     0,     0,     0,     0,     0,     0,     0,   529,     0,     0,
-     0,     0,     0,     0,     0,     0,    45,     0,     0,  8885,
-  8276,  8405,  9956,    52,     0,    94,     0,    25,     0,   533,
-     0,     0,   542,   542,     0,   510,   510,     0,     0,  1086,
-     0,  1202,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,  1825,     0,     0,   -94,     0,     0,  7070,
+  1220,     0,     0,  7310,     0,     0,     0,     0,     0,   612,
+     0,   289,     0,     0,     0,     0,   185,     0,   740,     0,
+     0,     0,     0,     0,     0, 12002,     0,     0, 12830,  2192,
+  2192,     0,     0,     0,     0,     0,     0,     0,   547,     0,
+     0,     0,     0,     0,     0,     0,     0,    51,     0,     0,
+  8750,  8141,  8270,  9821,    82,     0,    38,     0,    25,     0,
+   538,     0,     0,   545,   545,     0,   531,   531,     0,     0,
+   580,     0
[truncated due to length]



[jruby-parser~mercurial:31] Added a test for position

emononen 04/08/2010
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close