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

Re: Original names; was: Assignment statement isn't parsing



I didn't miss Pat's email about the splitter.  The 'verbatim' option 
subsumes 'no-splitting' and a slew of others, because it prevents _any_ 
BodyTransformers, including LocalSplitter, from transforming the body. 
At least that's what I see in the source code that I have.

About the output being wrong:  The real reason I'm making such a fuss 
about this is because I'm trying very hard to keep the original variable 
names.  I realize that I won't always be able to do that, because the 
info won't always be in the class files that I parse.  However, I don't 
believe that that justifies my failure to get the results I want in this 
case.  This is what I want to see with the command line below:

void run()
{
    .unknown this, $stack0, e;

    this := @this;
    $stack0 = 0;
    e = $stack0;
    $stack0 = this;
    $stack0 = $stack0.calc();
    e = $stack0;  // This line is the key.
    return;
}

Navindra Umanee wrote:
>>(command line: java soot.Main --soot-classpath 
>>.:$JAVA_HOME/jre/lib/rt.jar -p jb use-original-names -p jb verbatim -j 
>>A).  This is the result I get:
>>
> 
> I think you missed Pat's email about the splitter.  I added "-p jb
> no-splitting" and it seemed to produce the desired output.  Either
> way, I'm not sure I see what the problem was with the original
> output...
> 
> 
>>public class A extends java.lang.Object
>>{
>>     void run()
>>     {
>>         .unknown this, $stack0, e, l1;
>>
>>         this := @this;
>>         $stack0 = 0;
>>         e = $stack0;
>>         $stack0 = this;
>>         $stack0 = $stack0.calc();
>>         l1 = $stack0;
>>         return;
>>     }
>>
-- 
Nathan Kitchen
kitchen@ee.byu.edu