[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

problem: --src-prec jimple



>>>>> "stahl" == Richard Stahl <richard.stahl@imec.be> writes:

    stahl> I have the following problem:

    stahl> First I create an jimple file from the class file ...

    stahl> java soot.Main -J example

    stahl> Then I try to use this example.jimple as input for the soot:

    stahl> java soot.Main --src-prec jimple example

    stahl> but I get:

    stahl> Soot started on Fri Nov 08 16:09:54 CET 2002
    stahl> java.lang.RuntimeException: Parser exception occurred: 
    stahl> soot.jimple.parser.parser.ParserException: [27,52] expecting: ')'
    stahl>          at soot.jimple.parser.JimpleAST.<init>(JimpleAST.java:65)
    stahl>          at 
    stahl> soot.SootResolver.resolveClassAndSupportClasses(SootResolver.java:111)
    stahl>          at soot.Scene.loadClassAndSupport(Scene.java:350)
    stahl>          at soot.Main.loadNecessaryClasses(Main.java:1811)
    stahl>          at soot.Main.run(Main.java:1597)
    stahl>          at java.lang.Thread.run(Thread.java:479)

    stahl> Is it problem of my configuration of the soot
    stahl> or something else.

Are you running Soot release 1.2.3?  If so, I suspect you have
run into a bug that was introduced in that release: commas are
omitted between the parameters in method declarations in
generated jimple.

    stahl> Could you please give me some advice how to
    stahl> solve this problem.

Try applying the following patch to src/soot/SootMethod.java:


Index: 1.2.3.dev.12/src/soot/SootMethod.java
*** 1.2.3.dev.12/src/soot/SootMethod.java Mon, 01 Oct 2001 21:03:20 -0400 jerome (soot/Y/45_SootMethod 1.17.1.10.1.19 644)
--- 1.2.4.dev.5/src/soot/SootMethod.java Tue, 27 Aug 2002 12:23:10 -0400 jjorge1 (soot/Y/45_SootMethod 1.17.1.10.1.20 644)
***************
*** 736,745 ****
  		    else 
  			buffer.append( "r" + count++);
  		}
- 
- 		if (typeIt.hasNext())
- 		    buffer.append( ", ");
  	    }
  	}
  
          buffer.append(")");
--- 736,746 ----
  		    else 
  			buffer.append( "r" + count++);
  		}
  	    }
+ 
+ 	    if (typeIt.hasNext())
+ 		buffer.append( ", ");
+ 
  	}
  
          buffer.append(")");