[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