[jboss-svn-commits] JBL Code SVN: r29311 - in labs/jbosstm/workspace/adinn/byteman/trunk: src/org/jboss/byteman/rule/grammar and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 11 09:09:37 EDT 2009


Author: adinn
Date: 2009-09-11 09:09:37 -0400 (Fri, 11 Sep 2009)
New Revision: 29311

Modified:
   labs/jbosstm/workspace/adinn/byteman/trunk/dd/grammar/cup/ECAGrammar.cup
   labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECAGrammarParser.java
   labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECATokenLexer.java
   labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/sym.java
   labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java
Log:
better parser error message and error line number -- fixes for BYTEMAN-3

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/dd/grammar/cup/ECAGrammar.cup
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/dd/grammar/cup/ECAGrammar.cup	2009-09-11 11:43:24 UTC (rev 29310)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/dd/grammar/cup/ECAGrammar.cup	2009-09-11 13:09:37 UTC (rev 29311)
@@ -480,7 +480,7 @@
 	|	meth_expr:e {: RESULT = e; :}
 	|	simple_expr:e {: RESULT = e; :}
 	|	simple_name:n {: RESULT = n; :}
-	|   error expr:e2 {: error("missing separator", e2left, e2right); RESULT = e2; :}
+	|   error:err expr:e {: error("invalid expression", errleft, errright); RESULT = e; :}
 	;
 
 ternary_oper_expr

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECAGrammarParser.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECAGrammarParser.java	2009-09-11 11:43:24 UTC (rev 29310)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECAGrammarParser.java	2009-09-11 13:09:37 UTC (rev 29311)
@@ -1,7 +1,7 @@
 
 //----------------------------------------------------
 // The following code was generated by CUP v0.10k
-// Fri Sep 11 11:13:18 BST 2009
+// Fri Sep 11 14:07:24 BST 2009
 //----------------------------------------------------
 
 package org.jboss.byteman.rule.grammar;
@@ -10,7 +10,7 @@
 import org.jboss.byteman.rule.grammar.ParseNode;
 
 /** CUP v0.10k generated parser.
-  * @version Fri Sep 11 11:13:18 BST 2009
+  * @version Fri Sep 11 14:07:24 BST 2009
   */
 public class ECAGrammarParser extends java_cup.runtime.lr_parser {
 
@@ -1701,10 +1701,13 @@
           case 55: // expr ::= error expr 
             {
               ParseNode RESULT = null;
-		int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
-		int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
-		ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
-		 error("missing separator", e2left, e2right); RESULT = e2; 
+		int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
+		int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
+		Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
+		int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
+		int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
+		ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
+		 error("invalid expression", errleft, errright); RESULT = e; 
               CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
             }
           return CUP$ECAGrammarParser$result;

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECATokenLexer.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECATokenLexer.java	2009-09-11 11:43:24 UTC (rev 29310)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ECATokenLexer.java	2009-09-11 13:09:37 UTC (rev 29311)
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.2 on 9/11/09 11:13 AM */
+/* The following code was generated by JFlex 1.4.2 on 9/11/09 2:07 PM */
 
 /*
 * JBoss, Home of Professional Open Source
@@ -33,7 +33,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
- * on 9/11/09 11:13 AM from the specification file
+ * on 9/11/09 2:07 PM from the specification file
  * <tt>dd/grammar/flex/ECAToken.flex</tt>
  */
 public class ECATokenLexer implements java_cup.runtime.Scanner {

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/sym.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/sym.java	2009-09-11 11:43:24 UTC (rev 29310)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/sym.java	2009-09-11 13:09:37 UTC (rev 29311)
@@ -1,7 +1,7 @@
 
 //----------------------------------------------------
 // The following code was generated by CUP v0.10k
-// Fri Sep 11 11:13:18 BST 2009
+// Fri Sep 11 14:07:24 BST 2009
 //----------------------------------------------------
 
 package org.jboss.byteman.rule.grammar;

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java	2009-09-11 11:43:24 UTC (rev 29310)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java	2009-09-11 13:09:37 UTC (rev 29311)
@@ -137,12 +137,14 @@
                 int idx = 0;
                 int lineNumber = 0;
 
-                while (lines[idx].trim().equals("") || lines[idx].trim().startsWith("#")) {
+                while (idx < len && (lines[idx].trim().equals("") || lines[idx].trim().startsWith("#"))) {
                     idx++;
-                    if (idx == len) {
-                        throw new ParseException("Rule contains no text :\n" + script);
-                    }
                 }
+                if (idx == len) {
+                    // empty rule -- just skip
+                    baseline += len;
+                    continue;
+                }
                 if (lines[idx].startsWith("RULE ")) {
                     ruleName = lines[idx].substring(5).trim();
                     idx++;



More information about the jboss-svn-commits mailing list