[jboss-svn-commits] JBL Code SVN: r27940 - 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
Mon Jul 13 04:35:52 EDT 2009
Author: adinn
Date: 2009-07-13 04:35:51 -0400 (Mon, 13 Jul 2009)
New Revision: 27940
Modified:
labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ExpressionHelper.java
labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ParseNode.java
labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java
Log:
various small changes to improve qaulity of error reporting - fixes for BYTEMAN-3
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ExpressionHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ExpressionHelper.java 2009-07-13 08:09:09 UTC (rev 27939)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ExpressionHelper.java 2009-07-13 08:35:51 UTC (rev 27940)
@@ -83,7 +83,7 @@
// we should only get these as identifiers for binding types or throw types which are
// explicitly caught by the bindings or throw processing case handlers so this is an error
- throw new TypeException("ExpressionHelper.createExpression : unexpected occurence of IDENTIFIER in parse tree " + exprTree.getText() + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createExpression : unexpected IDENTIFIER " + exprTree.getText() + " in " + exprTree.getPos());
}
}
break;
@@ -118,7 +118,7 @@
int tag0 = child0.getTag();
if (tag0 != IDENTIFIER) {
// uurgh we expected a method name
- throw new TypeException("ExpressionHelper.createExpression : invalid unexpected type tag for method selector " + tag + " for expression " + child0.getText() + child0.getPos());
+ throw new TypeException("ExpressionHelper.createExpression : invalid method selector " + tag + " in expression " + child0.getText() + child0.getPos());
}
expr = createCallExpression(rule, bindings, child0, child1, child2, type);
@@ -131,7 +131,7 @@
int tag0 = child0.getTag();
if (tag0 != IDENTIFIER) {
- throw new TypeException("ExpressionHelper.createExpression : unexpected type tag in throw expression tree " + tag + " for expression " + child0.getText() + child0.getPos());
+ throw new TypeException("ExpressionHelper.createExpression : invalid throw type " + tag + " in expression " + child0.getText() + child0.getPos());
} else {
expr = createThrowExpression(rule, bindings, child0, child1);
}
@@ -198,7 +198,7 @@
break;
default:
{
- throw new TypeException("ExpressionHelper.createExpression : unexpected type tag in expression tree " + tag + " for expression " + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createExpression : unexpected token type " + tag + " for expression " + exprTree.getPos());
}
}
@@ -364,13 +364,13 @@
Integer intObject = (Integer) child1.getChild(0);
expr = new DollarExpression(rule, type, exprTree, intObject.intValue());
} else {
- throw new TypeException("ExpressionHelper.createUnaryExpression : unexpected type tag " + child1.getTag() + " for dollar expression tree " + child1.getText() + "" + child1.getPos());
+ throw new TypeException("ExpressionHelper.createUnaryExpression : unexpected token type " + child1.getTag() + " for dollar expression tree " + child1.getText() + "" + child1.getPos());
}
}
break;
default:
{
- throw new TypeException("ExpressionHelper.createUnaryExpression : unexpected type tag " + exprTree.getTag() + " for expression tree " + exprTree.getText() + "" + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createUnaryExpression : unexpected token type " + exprTree.getTag() + " for expression tree " + exprTree.getText() + "" + exprTree.getPos());
}
}
@@ -475,7 +475,7 @@
break;
default:
{
- throw new TypeException("ExpressionHelper.createBinaryExpression : unexpected type tag in expression tree " + exprTree.getTag() + " for expression " + exprTree.getText() + "" + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createBinaryExpression : unexpected token type " + exprTree.getTag() + " for expression " + exprTree.getText() + "" + exprTree.getPos());
}
}
@@ -515,7 +515,7 @@
expr = new ConditionalEvalExpression(rule, type1, exprTree, operand0, operand1, operand2);
} else {
// mismatched types so don't generate a result
- throw new TypeException("ExpressionHelper.createTernaryExpression : mismatched types " + type1.getName() + " and " + type2.getName() + " in conditional expression " + exprTree.getText() + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createTernaryExpression : mismatched expression types " + type1.getName() + " and " + type2.getName() + " in conditional expression " + exprTree.getText() + exprTree.getPos());
}
} else {
// have to wait for type check to resolve types
@@ -525,7 +525,7 @@
break;
default:
{
- throw new TypeException("ExpressionHelper.createTernaryExpression : unexpected type tag in expression tree " + exprTree.getTag() + " for expression " + exprTree.getText() + "" + exprTree.getPos());
+ throw new TypeException("ExpressionHelper.createTernaryExpression : unexpected token type " + exprTree.getTag() + " for expression " + exprTree.getText() + "" + exprTree.getPos());
}
}
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ParseNode.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ParseNode.java 2009-07-13 08:09:09 UTC (rev 27939)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/grammar/ParseNode.java 2009-07-13 08:35:51 UTC (rev 27940)
@@ -157,7 +157,7 @@
* @return a string representing the position for this node
*/
public String getPos() {
- return " " + file + " @ " + line + "." + column;
+ return " " + file + " line " + line;
}
/**
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-07-13 08:09:09 UTC (rev 27939)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/test/TestScript.java 2009-07-13 08:35:51 UTC (rev 27940)
@@ -119,11 +119,13 @@
int parseErrorCount = 0;
int typeErrorCount = 0;
int compileErrorCount = 0;
+ int baseline = 0;
for (String script : ruleScripts) {
String ruleName = "";
+ String[] lines = script.split("\n");
+ int len = lines.length;
try {
- String[] lines = script.split("\n");
String targetClassName;
String targetMethodName;
String targetHelperName = null;
@@ -132,7 +134,6 @@
String text = "";
String sepr = "";
int idx = 0;
- int len = lines.length;
int lineNumber = 0;
while (lines[idx].trim().equals("") || lines[idx].trim().startsWith("#")) {
@@ -219,7 +220,7 @@
System.out.println("org.jboss.byteman.agent.Transformer : unknown helper class " + targetHelperName + " for rule " + ruleName);
}
}
- Rule rule = Rule.create(ruleName, targetClassName, targetMethodName, targetHelperClass, targetLocation, text, lineNumber, file, loader);
+ Rule rule = Rule.create(ruleName, targetClassName, targetMethodName, targetHelperClass, targetLocation, text, baseline + lineNumber, file, loader);
System.err.println("TestScript: parsed rule " + rule.getName());
System.err.println(rule);
@@ -262,10 +263,12 @@
if (paramErrorCount == 0) {
rule.typeCheck();
System.err.println("TestScript: type checked rule " + ruleName);
+ System.err.println();
} else {
errorCount += paramErrorCount;
typeErrorCount += paramErrorCount;
System.err.println("TestScript: failed to type check rule " + ruleName);
+ System.err.println();
}
}
}
@@ -301,10 +304,12 @@
if (paramErrorCount == 0) {
rule.typeCheck();
System.err.println("TestScript: type checked rule " + ruleName);
+ System.err.println();
} else {
errorCount += paramErrorCount;
typeErrorCount += paramErrorCount;
System.err.println("TestScript: failed to type check rule " + ruleName);
+ System.err.println();
}
}
}
@@ -313,30 +318,38 @@
} catch(ClassNotFoundException cfe) {
errorCount++;
System.err.println("TestScript: unable to load class " + targetClassName);
+ System.err.println();
}
if (!found) {
errorCount++;
System.err.println("TestScript: no matching method for rule " + ruleName);
+ System.err.println();
} else if (multiple) {
errorCount++;
System.err.println("TestScript: multiple matching methods for rule " + ruleName);
+ System.err.println();
}
} catch (ParseException e) {
errorCount++;
parseErrorCount++;
System.err.println("TestScript: parse exception for rule " + ruleName + " : " + e);
e.printStackTrace(System.err);
+ System.err.println();
} catch (TypeException e) {
typeErrorCount++;
errorCount++;
System.err.println("TestScript: type exception for rule " + ruleName + " : " + e);
e.printStackTrace(System.err);
+ System.err.println();
} catch (CompileException e) {
compileErrorCount++;
errorCount++;
System.err.println("TestScript: createHelperAdapter exception for rule " + " : " + ruleName + e);
e.printStackTrace(System.err);
+ System.err.println();
}
+
+ baseline += len;
}
if (errorCount != 0) {
System.err.println("TestScript: " + errorCount + " total errors");
More information about the jboss-svn-commits
mailing list