Interpreter.smali
.class public Lbsh/Interpreter;
.super Ljava/lang/Object;
# interfaces
.implements Lbsh/h;
.implements Ljava/io/Serializable;
.implements Ljava/lang/Runnable;
# static fields
.field public static a:Z
.field public static b:Z
.field public static c:Z
.field static transient d:Ljava/io/PrintStream;
.field static e:Ljava/lang/String;
.field static f:Lbsh/This;
# instance fields
.field transient g:Lbsh/Parser;
.field h:Lbsh/NameSpace;
.field transient i:Ljava/io/Reader;
.field transient j:Ljava/io/PrintStream;
.field transient k:Ljava/io/PrintStream;
.field l:Lbsh/h;
.field m:Lbsh/Interpreter;
.field n:Ljava/lang/String;
.field protected o:Z
.field protected p:Z
.field private q:Z
.field private r:Z
.field private s:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string/jumbo v0, "\n"
sput-object v0, Lbsh/Interpreter;->e:Ljava/lang/String;
invoke-static {}, Lbsh/Interpreter;->g()V
return-void
.end method
.method public constructor <init>()V
.registers 8
const/4 v6, 0x1
new-instance v1, Ljava/io/StringReader;
const-string/jumbo v0, ""
invoke-direct {v1, v0}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream;
sget-object v3, Ljava/lang/System;->err:Ljava/io/PrintStream;
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
invoke-direct/range {v0 .. v5}, Lbsh/Interpreter;-><init>(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;)V
iput-boolean v6, p0, Lbsh/Interpreter;->o:Z
const-string/jumbo v0, "bsh.evalOnly"
new-instance v1, Lbsh/Primitive;
invoke-direct {v1, v6}, Lbsh/Primitive;-><init>(Z)V
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
return-void
.end method
.method public constructor <init>(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;)V
.registers 14
const/4 v6, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move v4, p4
move-object v5, p5
move-object v7, v6
invoke-direct/range {v0 .. v7}, Lbsh/Interpreter;-><init>(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;Lbsh/Interpreter;Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;Lbsh/Interpreter;Ljava/lang/String;)V
.registers 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lbsh/Interpreter;->q:Z
const/4 v0, 0x1
iput-boolean v0, p0, Lbsh/Interpreter;->r:Z
new-instance v0, Lbsh/Parser;
invoke-direct {v0, p1}, Lbsh/Parser;-><init>(Ljava/io/Reader;)V
iput-object v0, p0, Lbsh/Interpreter;->g:Lbsh/Parser;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-object p1, p0, Lbsh/Interpreter;->i:Ljava/io/Reader;
iput-object p2, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
iput-object p3, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
iput-boolean p4, p0, Lbsh/Interpreter;->p:Z
sput-object p3, Lbsh/Interpreter;->d:Ljava/io/PrintStream;
iput-object p6, p0, Lbsh/Interpreter;->m:Lbsh/Interpreter;
if-eqz p6, :cond_29
invoke-virtual {p6}, Lbsh/Interpreter;->f()Z
move-result v2
invoke-virtual {p0, v2}, Lbsh/Interpreter;->a(Z)V
:cond_29
iput-object p7, p0, Lbsh/Interpreter;->n:Ljava/lang/String;
invoke-static {p0}, Lbsh/a;->a(Lbsh/Interpreter;)Lbsh/a;
move-result-object v2
if-nez p5, :cond_70
new-instance v3, Lbsh/NameSpace;
const-string/jumbo v4, "global"
invoke-direct {v3, v2, v4}, Lbsh/NameSpace;-><init>(Lbsh/a;Ljava/lang/String;)V
iput-object v3, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
:goto_3b
const-string/jumbo v2, "bsh"
invoke-virtual {p0, v2}, Lbsh/Interpreter;->d(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v2
instance-of v2, v2, Lbsh/This;
if-nez v2, :cond_49
invoke-direct {p0}, Lbsh/Interpreter;->h()V
:cond_49
if-eqz p4, :cond_4e
invoke-virtual {p0}, Lbsh/Interpreter;->d()V
:cond_4e
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
sget-boolean v4, Lbsh/Interpreter;->a:Z
if-eqz v4, :cond_6f
new-instance v4, Ljava/lang/StringBuffer;
invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v5, "Time to initialize interpreter: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v4
sub-long v0, v2, v0
invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuffer;->append(J)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lbsh/Interpreter;->b(Ljava/lang/String;)V
:cond_6f
return-void
:cond_70
iput-object p5, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
goto :goto_3b
.end method
.method public static final b(Ljava/lang/String;)V
.registers 4
sget-boolean v0, Lbsh/Interpreter;->a:Z
if-eqz v0, :cond_1d
sget-object v0, Lbsh/Interpreter;->d:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "// Debug: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
:cond_1d
return-void
.end method
.method public static f(Ljava/lang/String;)V
.registers 4
:try_start_0
new-instance v0, Ljava/io/PrintStream;
new-instance v1, Ljava/io/FileOutputStream;
invoke-direct {v1, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Ljava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V
invoke-static {v0}, Ljava/lang/System;->setOut(Ljava/io/PrintStream;)V
invoke-static {v0}, Ljava/lang/System;->setErr(Ljava/io/PrintStream;)V
:try_end_10
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_10} :catch_11
:goto_10
return-void
:catch_11
move-exception v0
sget-object v0, Ljava/lang/System;->err:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "Can\'t redirect output to file: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_10
.end method
.method private g(Ljava/lang/String;)Ljava/lang/String;
.registers 6
const/16 v3, 0x50
const/16 v2, 0x20
const/16 v0, 0xa
invoke-virtual {p1, v0, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
const/16 v1, 0xd
invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
if-le v1, v3, :cond_2f
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const/4 v2, 0x0
invoke-virtual {v0, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string/jumbo v1, " . . . "
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
:cond_2f
return-object v0
.end method
.method static g()V
.registers 4
:try_start_0
const-string/jumbo v0, "line.separator"
invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
sput-object v0, Lbsh/Interpreter;->e:Ljava/lang/String;
sget-object v0, Ljava/lang/System;->err:Ljava/io/PrintStream;
sput-object v0, Lbsh/Interpreter;->d:Ljava/io/PrintStream;
const-string/jumbo v0, "debug"
invoke-static {v0}, Ljava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z
move-result v0
sput-boolean v0, Lbsh/Interpreter;->a:Z
const-string/jumbo v0, "trace"
invoke-static {v0}, Ljava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z
move-result v0
sput-boolean v0, Lbsh/Interpreter;->b:Z
const-string/jumbo v0, "localscoping"
invoke-static {v0}, Ljava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z
move-result v0
sput-boolean v0, Lbsh/Interpreter;->c:Z
const-string/jumbo v0, "outfile"
invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_34
invoke-static {v0}, Lbsh/Interpreter;->f(Ljava/lang/String;)V
:try_end_34
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_34} :catch_35
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_34} :catch_50
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_34} :catch_6b
:cond_34
:goto_34
return-void
:catch_35
move-exception v0
sget-object v1, Ljava/lang/System;->err:Ljava/io/PrintStream;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v3, "Could not init static:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_34
:catch_50
move-exception v0
sget-object v1, Ljava/lang/System;->err:Ljava/io/PrintStream;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v3, "Could not init static(2):"
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_34
:catch_6b
move-exception v0
sget-object v1, Ljava/lang/System;->err:Ljava/io/PrintStream;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v3, "Could not init static(3):"
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_34
.end method
.method private h()V
.registers 5
invoke-virtual {p0}, Lbsh/Interpreter;->e()Lbsh/a;
move-result-object v0
const-string/jumbo v1, "bsh"
new-instance v2, Lbsh/NameSpace;
const-string/jumbo v3, "Bsh Object"
invoke-direct {v2, v0, v3}, Lbsh/NameSpace;-><init>(Lbsh/a;Ljava/lang/String;)V
invoke-virtual {v2, p0}, Lbsh/NameSpace;->a(Lbsh/Interpreter;)Lbsh/This;
move-result-object v2
invoke-virtual {p0, v1, v2}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
sget-object v1, Lbsh/Interpreter;->f:Lbsh/This;
if-nez v1, :cond_28
new-instance v1, Lbsh/NameSpace;
const-string/jumbo v2, "Bsh Shared System Object"
invoke-direct {v1, v0, v2}, Lbsh/NameSpace;-><init>(Lbsh/a;Ljava/lang/String;)V
invoke-virtual {v1, p0}, Lbsh/NameSpace;->a(Lbsh/Interpreter;)Lbsh/This;
move-result-object v1
sput-object v1, Lbsh/Interpreter;->f:Lbsh/This;
:cond_28
const-string/jumbo v1, "bsh.system"
sget-object v2, Lbsh/Interpreter;->f:Lbsh/This;
invoke-virtual {p0, v1, v2}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
const-string/jumbo v1, "bsh.shared"
sget-object v2, Lbsh/Interpreter;->f:Lbsh/This;
invoke-virtual {p0, v1, v2}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
new-instance v1, Lbsh/NameSpace;
const-string/jumbo v2, "Bsh Command Help Text"
invoke-direct {v1, v0, v2}, Lbsh/NameSpace;-><init>(Lbsh/a;Ljava/lang/String;)V
invoke-virtual {v1, p0}, Lbsh/NameSpace;->a(Lbsh/Interpreter;)Lbsh/This;
move-result-object v0
const-string/jumbo v1, "bsh.help"
invoke-virtual {p0, v1, v0}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
:try_start_4a
const-string/jumbo v0, "bsh.cwd"
const-string/jumbo v1, "user.dir"
invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
:try_end_57
.catch Ljava/lang/SecurityException; {:try_start_4a .. :try_end_57} :catch_72
:goto_57
const-string/jumbo v0, "bsh.interactive"
new-instance v1, Lbsh/Primitive;
iget-boolean v2, p0, Lbsh/Interpreter;->p:Z
invoke-direct {v1, v2}, Lbsh/Primitive;-><init>(Z)V
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
const-string/jumbo v0, "bsh.evalOnly"
new-instance v1, Lbsh/Primitive;
iget-boolean v2, p0, Lbsh/Interpreter;->o:Z
invoke-direct {v1, v2}, Lbsh/Primitive;-><init>(Z)V
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
return-void
:catch_72
move-exception v0
const-string/jumbo v0, "bsh.cwd"
const-string/jumbo v1, "."
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
goto :goto_57
.end method
.method private i()Lbsh/i;
.registers 2
iget-object v0, p0, Lbsh/Interpreter;->g:Lbsh/Parser;
iget-object v0, v0, Lbsh/Parser;->a:Lbsh/i;
return-object v0
.end method
.method private j()Z
.registers 2
iget-object v0, p0, Lbsh/Interpreter;->g:Lbsh/Parser;
invoke-virtual {v0}, Lbsh/Parser;->b()Z
move-result v0
return v0
.end method
.method private k()Ljava/lang/String;
.registers 2
:try_start_0
const-string/jumbo v0, "getBshPrompt()"
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
:try_end_9
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_9} :catch_a
:goto_9
return-object v0
:catch_a
move-exception v0
const-string/jumbo v0, "bsh % "
goto :goto_9
.end method
.method private readObject(Ljava/io/ObjectInputStream;)V
.registers 3
invoke-virtual {p1}, Ljava/io/ObjectInputStream;->defaultReadObject()V
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
if-eqz v0, :cond_1a
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
invoke-interface {v0}, Lbsh/h;->a()Ljava/io/PrintStream;
move-result-object v0
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/io/PrintStream;)V
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
invoke-interface {v0}, Lbsh/h;->b()Ljava/io/PrintStream;
move-result-object v0
invoke-virtual {p0, v0}, Lbsh/Interpreter;->b(Ljava/io/PrintStream;)V
:goto_19
return-void
:cond_1a
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/io/PrintStream;)V
sget-object v0, Ljava/lang/System;->err:Ljava/io/PrintStream;
invoke-virtual {p0, v0}, Lbsh/Interpreter;->b(Ljava/io/PrintStream;)V
goto :goto_19
.end method
# virtual methods
.method public a()Ljava/io/PrintStream;
.registers 2
iget-object v0, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
return-object v0
.end method
.method public a(Ljava/io/Reader;)Ljava/lang/Object;
.registers 4
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
const-string/jumbo v1, "eval stream"
invoke-virtual {p0, p1, v0, v1}, Lbsh/Interpreter;->a(Ljava/io/Reader;Lbsh/NameSpace;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public a(Ljava/io/Reader;Lbsh/NameSpace;Ljava/lang/String;)Ljava/lang/Object;
.registers 16
const/4 v9, 0x0
const/4 v5, 0x0
const/4 v10, 0x1
sget-boolean v1, Lbsh/Interpreter;->a:Z
if-eqz v1, :cond_1e
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "eval: nameSpace = "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, p2}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lbsh/Interpreter;->b(Ljava/lang/String;)V
:cond_1e
new-instance v1, Lbsh/Interpreter;
iget-object v3, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
iget-object v4, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
move-object v2, p1
move-object v6, p2
move-object v7, p0
move-object v8, p3
invoke-direct/range {v1 .. v8}, Lbsh/Interpreter;-><init>(Ljava/io/Reader;Ljava/io/PrintStream;Ljava/io/PrintStream;ZLbsh/NameSpace;Lbsh/Interpreter;Ljava/lang/String;)V
new-instance v6, Lbsh/c;
invoke-direct {v6, p2}, Lbsh/c;-><init>(Lbsh/NameSpace;)V
move v4, v5
move-object v3, v9
:goto_32
if-eqz v4, :cond_39
:cond_34
:goto_34
invoke-static {v3}, Lbsh/Primitive;->b(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
return-object v1
:cond_39
:try_start_39
invoke-direct {v1}, Lbsh/Interpreter;->j()Z
:try_end_3c
.catch Lbsh/ParseException; {:try_start_39 .. :try_end_3c} :catch_99
.catch Lbsh/InterpreterError; {:try_start_39 .. :try_end_3c} :catch_238
.catch Lbsh/TargetError; {:try_start_39 .. :try_end_3c} :catch_22b
.catch Lbsh/EvalError; {:try_start_39 .. :try_end_3c} :catch_222
.catch Ljava/lang/Exception; {:try_start_39 .. :try_end_3c} :catch_21f
.catch Lbsh/TokenMgrError; {:try_start_39 .. :try_end_3c} :catch_21c
.catchall {:try_start_39 .. :try_end_3c} :catchall_ab
move-result v5
:try_start_3d
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->d()I
move-result v2
if-lez v2, :cond_105
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->b()Lbsh/Node;
move-result-object v2
move-object v0, v2
check-cast v0, Lbsh/SimpleNode;
move-object v4, v0
:try_end_53
.catch Lbsh/ParseException; {:try_start_3d .. :try_end_53} :catch_99
.catch Lbsh/InterpreterError; {:try_start_3d .. :try_end_53} :catch_238
.catch Lbsh/TargetError; {:try_start_3d .. :try_end_53} :catch_231
.catch Lbsh/EvalError; {:try_start_3d .. :try_end_53} :catch_227
.catch Ljava/lang/Exception; {:try_start_3d .. :try_end_53} :catch_21f
.catch Lbsh/TokenMgrError; {:try_start_3d .. :try_end_53} :catch_21c
.catchall {:try_start_3d .. :try_end_53} :catchall_ab
:try_start_53
invoke-virtual {v4, p3}, Lbsh/SimpleNode;->e(Ljava/lang/String;)V
sget-boolean v2, Lbsh/Interpreter;->b:Z
if-eqz v2, :cond_75
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "// "
invoke-virtual {v2, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v4}, Lbsh/SimpleNode;->j()Ljava/lang/String;
move-result-object v7
invoke-virtual {v2, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lbsh/Interpreter;->c(Ljava/lang/Object;)V
:cond_75
invoke-virtual {v4, v6, v1}, Lbsh/SimpleNode;->a(Lbsh/c;Lbsh/Interpreter;)Ljava/lang/Object;
move-result-object v3
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v2
if-le v2, v10, :cond_c0
new-instance v2, Lbsh/InterpreterError;
new-instance v7, Ljava/lang/StringBuffer;
invoke-direct {v7}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v8, "Callstack growing: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v7
invoke-virtual {v7, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v7
invoke-direct {v2, v7}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V
throw v2
:try_end_99
.catch Lbsh/ParseException; {:try_start_53 .. :try_end_99} :catch_99
.catch Lbsh/InterpreterError; {:try_start_53 .. :try_end_99} :catch_11b
.catch Lbsh/TargetError; {:try_start_53 .. :try_end_99} :catch_148
.catch Lbsh/EvalError; {:try_start_53 .. :try_end_99} :catch_183
.catch Ljava/lang/Exception; {:try_start_53 .. :try_end_99} :catch_1c1
.catch Lbsh/TokenMgrError; {:try_start_53 .. :try_end_99} :catch_1f2
.catchall {:try_start_53 .. :try_end_99} :catchall_ab
:catch_99
move-exception v2
:try_start_9a
sget-boolean v3, Lbsh/Interpreter;->a:Z
if-eqz v3, :cond_a7
sget-boolean v3, Lbsh/Interpreter;->a:Z
invoke-virtual {v2, v3}, Lbsh/ParseException;->a(Z)Ljava/lang/String;
move-result-object v3
invoke-virtual {p0, v3}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
:cond_a7
invoke-virtual {v2, p3}, Lbsh/ParseException;->d(Ljava/lang/String;)V
throw v2
:try_end_ab
.catchall {:try_start_9a .. :try_end_ab} :catchall_ab
:catchall_ab
move-exception v2
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v1
invoke-virtual {v1}, Lbsh/i;->a()V
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v1
if-le v1, v10, :cond_bf
invoke-virtual {v6}, Lbsh/c;->a()V
invoke-virtual {v6, p2}, Lbsh/c;->a(Lbsh/NameSpace;)V
:cond_bf
throw v2
:cond_c0
:try_start_c0
instance-of v2, v3, Lbsh/p;
if-eqz v2, :cond_df
move-object v0, v3
check-cast v0, Lbsh/p;
move-object v2, v0
iget-object v3, v2, Lbsh/p;->b:Ljava/lang/Object;
:try_end_ca
.catch Lbsh/ParseException; {:try_start_c0 .. :try_end_ca} :catch_99
.catch Lbsh/InterpreterError; {:try_start_c0 .. :try_end_ca} :catch_11b
.catch Lbsh/TargetError; {:try_start_c0 .. :try_end_ca} :catch_148
.catch Lbsh/EvalError; {:try_start_c0 .. :try_end_ca} :catch_183
.catch Ljava/lang/Exception; {:try_start_c0 .. :try_end_ca} :catch_1c1
.catch Lbsh/TokenMgrError; {:try_start_c0 .. :try_end_ca} :catch_1f2
.catchall {:try_start_c0 .. :try_end_ca} :catchall_ab
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v1
invoke-virtual {v1}, Lbsh/i;->a()V
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v1
if-le v1, v10, :cond_34
invoke-virtual {v6}, Lbsh/c;->a()V
invoke-virtual {v6, p2}, Lbsh/c;->a(Lbsh/NameSpace;)V
goto/16 :goto_34
:cond_df
:try_start_df
iget-boolean v2, v1, Lbsh/Interpreter;->s:Z
if-eqz v2, :cond_105
sget-object v2, Lbsh/Primitive;->c:Lbsh/Primitive;
if-eq v3, v2, :cond_105
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "<"
invoke-virtual {v2, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v2
const-string/jumbo v7, ">"
invoke-virtual {v2, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lbsh/Interpreter;->c(Ljava/lang/Object;)V
:try_end_105
.catch Lbsh/ParseException; {:try_start_df .. :try_end_105} :catch_99
.catch Lbsh/InterpreterError; {:try_start_df .. :try_end_105} :catch_11b
.catch Lbsh/TargetError; {:try_start_df .. :try_end_105} :catch_148
.catch Lbsh/EvalError; {:try_start_df .. :try_end_105} :catch_183
.catch Ljava/lang/Exception; {:try_start_df .. :try_end_105} :catch_1c1
.catch Lbsh/TokenMgrError; {:try_start_df .. :try_end_105} :catch_1f2
.catchall {:try_start_df .. :try_end_105} :catchall_ab
:cond_105
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v2
if-le v2, v10, :cond_243
invoke-virtual {v6}, Lbsh/c;->a()V
invoke-virtual {v6, p2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v4, v5
goto/16 :goto_32
:catch_11b
move-exception v2
:goto_11c
:try_start_11c
invoke-virtual {v2}, Lbsh/InterpreterError;->printStackTrace()V
new-instance v3, Lbsh/EvalError;
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "Sourced file: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, p3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
const-string/jumbo v7, " internal Error: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Lbsh/InterpreterError;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v5, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v2, v4, v6}, Lbsh/EvalError;-><init>(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/c;)V
throw v3
:catch_148
move-exception v2
move v11, v5
move-object v5, v3
move v3, v11
:goto_14c
invoke-virtual {v2}, Lbsh/TargetError;->a()Lbsh/SimpleNode;
move-result-object v7
if-nez v7, :cond_155
invoke-virtual {v2, v4}, Lbsh/TargetError;->a(Lbsh/SimpleNode;)V
:cond_155
new-instance v4, Ljava/lang/StringBuffer;
invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "Sourced file: "
invoke-virtual {v4, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v4
invoke-virtual {v4, p3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Lbsh/TargetError;->a(Ljava/lang/String;)V
:try_end_16c
.catchall {:try_start_11c .. :try_end_16c} :catchall_ab
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v2
if-le v2, v10, :cond_23f
invoke-virtual {v6}, Lbsh/c;->a()V
invoke-virtual {v6, p2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v4, v3
move-object v3, v5
goto/16 :goto_32
:catch_183
move-exception v2
:goto_184
:try_start_184
sget-boolean v7, Lbsh/Interpreter;->a:Z
if-eqz v7, :cond_18b
invoke-virtual {v2}, Lbsh/EvalError;->printStackTrace()V
:cond_18b
invoke-virtual {v2}, Lbsh/EvalError;->a()Lbsh/SimpleNode;
move-result-object v7
if-nez v7, :cond_194
invoke-virtual {v2, v4}, Lbsh/EvalError;->a(Lbsh/SimpleNode;)V
:cond_194
new-instance v4, Ljava/lang/StringBuffer;
invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "Sourced file: "
invoke-virtual {v4, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v4
invoke-virtual {v4, p3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Lbsh/EvalError;->a(Ljava/lang/String;)V
:try_end_1ab
.catchall {:try_start_184 .. :try_end_1ab} :catchall_ab
invoke-direct {v1}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v6}, Lbsh/c;->d()I
move-result v2
if-le v2, v10, :cond_23c
invoke-virtual {v6}, Lbsh/c;->a()V
invoke-virtual {v6, p2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v4, v5
goto/16 :goto_32
:catch_1c1
move-exception v2
:goto_1c2
:try_start_1c2
sget-boolean v3, Lbsh/Interpreter;->a:Z
if-eqz v3, :cond_1c9
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
:cond_1c9
new-instance v3, Lbsh/EvalError;
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "Sourced file: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, p3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
const-string/jumbo v7, " unknown error: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v5, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v2, v4, v6}, Lbsh/EvalError;-><init>(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/c;)V
throw v3
:catch_1f2
move-exception v2
:goto_1f3
new-instance v3, Lbsh/EvalError;
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v7, "Sourced file: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, p3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
const-string/jumbo v7, " Token Parsing Error: "
invoke-virtual {v5, v7}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Lbsh/TokenMgrError;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v5, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v2, v4, v6}, Lbsh/EvalError;-><init>(Ljava/lang/String;Lbsh/SimpleNode;Lbsh/c;)V
throw v3
:try_end_21c
.catchall {:try_start_1c2 .. :try_end_21c} :catchall_ab
:catch_21c
move-exception v2
move-object v4, v9
goto :goto_1f3
:catch_21f
move-exception v2
move-object v4, v9
goto :goto_1c2
:catch_222
move-exception v2
move v5, v4
move-object v4, v9
goto/16 :goto_184
:catch_227
move-exception v2
move-object v4, v9
goto/16 :goto_184
:catch_22b
move-exception v2
move-object v5, v3
move v3, v4
move-object v4, v9
goto/16 :goto_14c
:catch_231
move-exception v2
move-object v4, v9
move v11, v5
move-object v5, v3
move v3, v11
goto/16 :goto_14c
:catch_238
move-exception v2
move-object v4, v9
goto/16 :goto_11c
:cond_23c
move v4, v5
goto/16 :goto_32
:cond_23f
move v4, v3
move-object v3, v5
goto/16 :goto_32
:cond_243
move v4, v5
goto/16 :goto_32
.end method
.method public a(Ljava/lang/String;)Ljava/lang/Object;
.registers 4
sget-boolean v0, Lbsh/Interpreter;->a:Z
if-eqz v0, :cond_1b
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v1, "eval(String): "
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lbsh/Interpreter;->b(Ljava/lang/String;)V
:cond_1b
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {p0, p1, v0}, Lbsh/Interpreter;->b(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public a(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object;
.registers 6
invoke-virtual {p0, p1}, Lbsh/Interpreter;->e(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
sget-boolean v1, Lbsh/Interpreter;->a:Z
if-eqz v1, :cond_1f
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "Sourcing file: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lbsh/Interpreter;->b(Ljava/lang/String;)V
:cond_1f
new-instance v1, Ljava/io/BufferedReader;
new-instance v2, Ljava/io/FileReader;
invoke-direct {v2, v0}, Ljava/io/FileReader;-><init>(Ljava/io/File;)V
invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_start_29
invoke-virtual {p0, v1, p2, p1}, Lbsh/Interpreter;->a(Ljava/io/Reader;Lbsh/NameSpace;Ljava/lang/String;)Ljava/lang/Object;
:try_end_2c
.catchall {:try_start_29 .. :try_end_2c} :catchall_31
move-result-object v0
invoke-virtual {v1}, Ljava/io/Reader;->close()V
return-object v0
:catchall_31
move-exception v0
invoke-virtual {v1}, Ljava/io/Reader;->close()V
throw v0
.end method
.method public a(Ljava/io/PrintStream;)V
.registers 2
iput-object p1, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
return-void
.end method
.method public final a(Ljava/lang/Object;)V
.registers 3
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
if-eqz v0, :cond_a
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
invoke-interface {v0, p1}, Lbsh/h;->a(Ljava/lang/Object;)V
:goto_9
return-void
:cond_a
iget-object v0, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
invoke-virtual {v0, p1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
iget-object v0, p0, Lbsh/Interpreter;->j:Ljava/io/PrintStream;
invoke-virtual {v0}, Ljava/io/PrintStream;->flush()V
goto :goto_9
.end method
.method public a(Ljava/lang/String;I)V
.registers 4
new-instance v0, Lbsh/Primitive;
invoke-direct {v0, p2}, Lbsh/Primitive;-><init>(I)V
invoke-virtual {p0, p1, v0}, Lbsh/Interpreter;->a(Ljava/lang/String;Ljava/lang/Object;)V
return-void
.end method
.method public a(Ljava/lang/String;Ljava/lang/Object;)V
.registers 6
if-nez p2, :cond_4
sget-object p2, Lbsh/Primitive;->b:Lbsh/Primitive;
:cond_4
new-instance v1, Lbsh/c;
invoke-direct {v1}, Lbsh/c;-><init>()V
:try_start_9
invoke-static {p1}, Lbsh/Name;->a(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1e
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v0, p1}, Lbsh/NameSpace;->h(Ljava/lang/String;)Lbsh/Name;
move-result-object v0
invoke-virtual {v0, v1, p0}, Lbsh/Name;->b(Lbsh/c;Lbsh/Interpreter;)Lbsh/LHS;
move-result-object v0
const/4 v2, 0x0
invoke-virtual {v0, p2, v2}, Lbsh/LHS;->a(Ljava/lang/Object;Z)Ljava/lang/Object;
:goto_1d
return-void
:cond_1e
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
const/4 v2, 0x0
invoke-virtual {v0, p1, p2, v2}, Lbsh/NameSpace;->a(Ljava/lang/String;Ljava/lang/Object;Z)V
:try_end_24
.catch Lbsh/UtilEvalError; {:try_start_9 .. :try_end_24} :catch_25
goto :goto_1d
:catch_25
move-exception v0
sget-object v2, Lbsh/SimpleNode;->i:Lbsh/SimpleNode;
invoke-virtual {v0, v2, v1}, Lbsh/UtilEvalError;->a(Lbsh/SimpleNode;Lbsh/c;)Lbsh/EvalError;
move-result-object v0
throw v0
.end method
.method public a(Z)V
.registers 2
iput-boolean p1, p0, Lbsh/Interpreter;->q:Z
return-void
.end method
.method public b()Ljava/io/PrintStream;
.registers 2
iget-object v0, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
return-object v0
.end method
.method public b(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object;
.registers 6
const-string/jumbo v0, ";"
invoke-virtual {p1, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_32
:goto_9
new-instance v0, Ljava/io/StringReader;
invoke-direct {v0, p1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "inline evaluation of: ``"
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-direct {p0, p1}, Lbsh/Interpreter;->g(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
const-string/jumbo v2, "\'\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, p2, v1}, Lbsh/Interpreter;->a(Ljava/io/Reader;Lbsh/NameSpace;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
return-object v0
:cond_32
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string/jumbo v1, ";"
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_9
.end method
.method public b(Ljava/io/PrintStream;)V
.registers 2
iput-object p1, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
return-void
.end method
.method public final b(Ljava/lang/Object;)V
.registers 5
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
if-eqz v0, :cond_25
iget-object v0, p0, Lbsh/Interpreter;->l:Lbsh/h;
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "// Error: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v1
const-string/jumbo v2, "\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lbsh/h;->b(Ljava/lang/Object;)V
:goto_24
return-void
:cond_25
iget-object v0, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "// Error: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
iget-object v0, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
invoke-virtual {v0}, Ljava/io/PrintStream;->flush()V
goto :goto_24
.end method
.method b(Ljava/lang/String;Ljava/lang/Object;)V
.registers 7
:try_start_0
invoke-virtual {p0, p1, p2}, Lbsh/Interpreter;->a(Ljava/lang/String;Ljava/lang/Object;)V
:try_end_3
.catch Lbsh/EvalError; {:try_start_0 .. :try_end_3} :catch_4
return-void
:catch_4
move-exception v0
new-instance v1, Lbsh/InterpreterError;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v3, "set: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public c()Lbsh/NameSpace;
.registers 2
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
return-object v0
.end method
.method public c(Ljava/lang/String;)Ljava/lang/Object;
.registers 5
:try_start_0
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v0, p1, p0}, Lbsh/NameSpace;->a(Ljava/lang/String;Lbsh/Interpreter;)Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lbsh/Primitive;->b(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_9
.catch Lbsh/UtilEvalError; {:try_start_0 .. :try_end_9} :catch_b
move-result-object v0
return-object v0
:catch_b
move-exception v0
sget-object v1, Lbsh/SimpleNode;->i:Lbsh/SimpleNode;
new-instance v2, Lbsh/c;
invoke-direct {v2}, Lbsh/c;-><init>()V
invoke-virtual {v0, v1, v2}, Lbsh/UtilEvalError;->a(Lbsh/SimpleNode;Lbsh/c;)Lbsh/EvalError;
move-result-object v0
throw v0
.end method
.method public final c(Ljava/lang/Object;)V
.registers 4
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
sget-object v1, Lbsh/Interpreter;->e:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/lang/Object;)V
return-void
.end method
.method d(Ljava/lang/String;)Ljava/lang/Object;
.registers 6
:try_start_0
invoke-virtual {p0, p1}, Lbsh/Interpreter;->c(Ljava/lang/String;)Ljava/lang/Object;
:try_end_3
.catch Lbsh/EvalError; {:try_start_0 .. :try_end_3} :catch_5
move-result-object v0
return-object v0
:catch_5
move-exception v0
new-instance v1, Lbsh/InterpreterError;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v3, "set: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method d()V
.registers 4
:try_start_0
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v1, "user.home"
invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string/jumbo v1, ".bshrc"
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {p0, v0, v1}, Lbsh/Interpreter;->a(Ljava/lang/String;Lbsh/NameSpace;)Ljava/lang/Object;
:try_end_26
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_27
:cond_26
:goto_26
return-void
:catch_27
move-exception v0
sget-boolean v1, Lbsh/Interpreter;->a:Z
if-eqz v1, :cond_26
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v2, "Could not find rc file: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lbsh/Interpreter;->b(Ljava/lang/String;)V
goto :goto_26
.end method
.method public e()Lbsh/a;
.registers 2
invoke-virtual {p0}, Lbsh/Interpreter;->c()Lbsh/NameSpace;
move-result-object v0
invoke-virtual {v0}, Lbsh/NameSpace;->g()Lbsh/a;
move-result-object v0
return-object v0
.end method
.method public e(Ljava/lang/String;)Ljava/io/File;
.registers 5
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->isAbsolute()Z
move-result v1
if-nez v1, :cond_31
const-string/jumbo v0, "bsh.cwd"
invoke-virtual {p0, v0}, Lbsh/Interpreter;->d(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
move-object v0, v1
:cond_31
new-instance v1, Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->getCanonicalPath()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
return-object v1
.end method
.method public f()Z
.registers 2
iget-boolean v0, p0, Lbsh/Interpreter;->q:Z
return v0
.end method
.method public run()V
.registers 9
const/4 v3, 0x0
const/4 v1, 0x1
iget-boolean v0, p0, Lbsh/Interpreter;->o:Z
if-eqz v0, :cond_f
new-instance v0, Ljava/lang/RuntimeException;
const-string/jumbo v1, "bsh Interpreter: No stream"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
:cond_f
iget-boolean v0, p0, Lbsh/Interpreter;->p:Z
if-eqz v0, :cond_19
:try_start_13
const-string/jumbo v0, "printBanner();"
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/lang/String;)Ljava/lang/Object;
:try_end_19
.catch Lbsh/EvalError; {:try_start_13 .. :try_end_19} :catch_2f
:cond_19
:goto_19
new-instance v4, Lbsh/c;
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-direct {v4, v0}, Lbsh/c;-><init>(Lbsh/NameSpace;)V
move v2, v3
:cond_21
:goto_21
if-eqz v2, :cond_37
iget-boolean v0, p0, Lbsh/Interpreter;->p:Z
if-eqz v0, :cond_2e
iget-boolean v0, p0, Lbsh/Interpreter;->r:Z
if-eqz v0, :cond_2e
invoke-static {v3}, Ljava/lang/System;->exit(I)V
:cond_2e
return-void
:catch_2f
move-exception v0
const-string/jumbo v0, "BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)"
invoke-virtual {p0, v0}, Lbsh/Interpreter;->c(Ljava/lang/Object;)V
goto :goto_19
:cond_37
:try_start_37
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
invoke-virtual {v0}, Ljava/io/PrintStream;->flush()V
sget-object v0, Ljava/lang/System;->err:Ljava/io/PrintStream;
invoke-virtual {v0}, Ljava/io/PrintStream;->flush()V
invoke-static {}, Ljava/lang/Thread;->yield()V
iget-boolean v0, p0, Lbsh/Interpreter;->p:Z
if-eqz v0, :cond_4f
invoke-direct {p0}, Lbsh/Interpreter;->k()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lbsh/Interpreter;->a(Ljava/lang/Object;)V
:cond_4f
invoke-direct {p0}, Lbsh/Interpreter;->j()Z
:try_end_52
.catch Lbsh/ParseException; {:try_start_37 .. :try_end_52} :catch_95
.catch Lbsh/InterpreterError; {:try_start_37 .. :try_end_52} :catch_128
.catch Lbsh/TargetError; {:try_start_37 .. :try_end_52} :catch_167
.catch Lbsh/EvalError; {:try_start_37 .. :try_end_52} :catch_1b2
.catch Ljava/lang/Exception; {:try_start_37 .. :try_end_52} :catch_22c
.catch Lbsh/TokenMgrError; {:try_start_37 .. :try_end_52} :catch_26b
.catchall {:try_start_37 .. :try_end_52} :catchall_215
move-result v2
:try_start_53
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v0
invoke-virtual {v0}, Lbsh/i;->d()I
move-result v0
if-lez v0, :cond_111
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v0
invoke-virtual {v0}, Lbsh/i;->b()Lbsh/Node;
move-result-object v0
check-cast v0, Lbsh/SimpleNode;
sget-boolean v5, Lbsh/Interpreter;->a:Z
if-eqz v5, :cond_71
const-string/jumbo v5, ">"
invoke-virtual {v0, v5}, Lbsh/SimpleNode;->d(Ljava/lang/String;)V
:cond_71
invoke-virtual {v0, v4, p0}, Lbsh/SimpleNode;->a(Lbsh/c;Lbsh/Interpreter;)Ljava/lang/Object;
move-result-object v0
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v5
if-le v5, v1, :cond_dd
new-instance v0, Lbsh/InterpreterError;
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "Callstack growing: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v0, v5}, Lbsh/InterpreterError;-><init>(Ljava/lang/String;)V
throw v0
:try_end_95
.catch Lbsh/ParseException; {:try_start_53 .. :try_end_95} :catch_95
.catch Lbsh/InterpreterError; {:try_start_53 .. :try_end_95} :catch_2bb
.catch Lbsh/TargetError; {:try_start_53 .. :try_end_95} :catch_167
.catch Lbsh/EvalError; {:try_start_53 .. :try_end_95} :catch_2b5
.catch Ljava/lang/Exception; {:try_start_53 .. :try_end_95} :catch_2af
.catch Lbsh/TokenMgrError; {:try_start_53 .. :try_end_95} :catch_2aa
.catchall {:try_start_53 .. :try_end_95} :catchall_215
:catch_95
move-exception v0
:try_start_96
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "Parser Error: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
sget-boolean v6, Lbsh/Interpreter;->a:Z
invoke-virtual {v0, v6}, Lbsh/ParseException;->a(Z)Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
sget-boolean v5, Lbsh/Interpreter;->a:Z
if-eqz v5, :cond_ba
invoke-virtual {v0}, Lbsh/ParseException;->printStackTrace()V
:cond_ba
iget-boolean v0, p0, Lbsh/Interpreter;->p:Z
if-nez v0, :cond_bf
move v2, v1
:cond_bf
iget-object v0, p0, Lbsh/Interpreter;->g:Lbsh/Parser;
iget-object v5, p0, Lbsh/Interpreter;->i:Ljava/io/Reader;
invoke-virtual {v0, v5}, Lbsh/Parser;->a(Ljava/io/Reader;)V
:try_end_c6
.catchall {:try_start_96 .. :try_end_c6} :catchall_215
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v0
invoke-virtual {v0}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v0
if-le v0, v1, :cond_21
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v0}, Lbsh/c;->a(Lbsh/NameSpace;)V
goto/16 :goto_21
:cond_dd
:try_start_dd
instance-of v5, v0, Lbsh/p;
if-eqz v5, :cond_e5
check-cast v0, Lbsh/p;
iget-object v0, v0, Lbsh/p;->b:Ljava/lang/Object;
:cond_e5
sget-object v5, Lbsh/Primitive;->c:Lbsh/Primitive;
if-eq v0, v5, :cond_111
const-string/jumbo v5, "$_"
invoke-virtual {p0, v5, v0}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
iget-boolean v5, p0, Lbsh/Interpreter;->s:Z
if-eqz v5, :cond_111
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "<"
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
const-string/jumbo v5, ">"
invoke-virtual {v0, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lbsh/Interpreter;->c(Ljava/lang/Object;)V
:try_end_111
.catch Lbsh/ParseException; {:try_start_dd .. :try_end_111} :catch_95
.catch Lbsh/InterpreterError; {:try_start_dd .. :try_end_111} :catch_2bb
.catch Lbsh/TargetError; {:try_start_dd .. :try_end_111} :catch_167
.catch Lbsh/EvalError; {:try_start_dd .. :try_end_111} :catch_2b5
.catch Ljava/lang/Exception; {:try_start_dd .. :try_end_111} :catch_2af
.catch Lbsh/TokenMgrError; {:try_start_dd .. :try_end_111} :catch_2aa
.catchall {:try_start_dd .. :try_end_111} :catchall_215
:cond_111
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v0
invoke-virtual {v0}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v0
if-le v0, v1, :cond_21
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v0}, Lbsh/c;->a(Lbsh/NameSpace;)V
goto/16 :goto_21
:catch_128
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
:goto_12c
:try_start_12c
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "Internal Error: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Lbsh/InterpreterError;->getMessage()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
invoke-virtual {v2}, Lbsh/InterpreterError;->printStackTrace()V
iget-boolean v2, p0, Lbsh/Interpreter;->p:Z
:try_end_14c
.catchall {:try_start_12c .. :try_end_14c} :catchall_215
if-nez v2, :cond_14f
move v0, v1
:cond_14f
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v2
if-le v2, v1, :cond_2c1
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v2, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v2, v0
goto/16 :goto_21
:catch_167
move-exception v0
:try_start_168
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "// Uncaught Exception: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
invoke-virtual {v0}, Lbsh/TargetError;->d()Z
move-result v5
if-eqz v5, :cond_18c
sget-boolean v5, Lbsh/Interpreter;->a:Z
iget-object v6, p0, Lbsh/Interpreter;->k:Ljava/io/PrintStream;
invoke-virtual {v0, v5, v6}, Lbsh/TargetError;->a(ZLjava/io/PrintStream;)V
:cond_18c
iget-boolean v5, p0, Lbsh/Interpreter;->p:Z
if-nez v5, :cond_191
move v2, v1
:cond_191
const-string/jumbo v5, "$_e"
invoke-virtual {v0}, Lbsh/TargetError;->c()Ljava/lang/Throwable;
move-result-object v0
invoke-virtual {p0, v5, v0}, Lbsh/Interpreter;->b(Ljava/lang/String;Ljava/lang/Object;)V
:try_end_19b
.catchall {:try_start_168 .. :try_end_19b} :catchall_215
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v0
invoke-virtual {v0}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v0
if-le v0, v1, :cond_21
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v0, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v0}, Lbsh/c;->a(Lbsh/NameSpace;)V
goto/16 :goto_21
:catch_1b2
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
:goto_1b6
:try_start_1b6
iget-boolean v5, p0, Lbsh/Interpreter;->p:Z
if-eqz v5, :cond_1f9
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "EvalError: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Lbsh/EvalError;->toString()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
:goto_1d5
sget-boolean v5, Lbsh/Interpreter;->a:Z
if-eqz v5, :cond_1dc
invoke-virtual {v2}, Lbsh/EvalError;->printStackTrace()V
:cond_1dc
iget-boolean v2, p0, Lbsh/Interpreter;->p:Z
:try_end_1de
.catchall {:try_start_1b6 .. :try_end_1de} :catchall_215
if-nez v2, :cond_1e1
move v0, v1
:cond_1e1
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v2
if-le v2, v1, :cond_2c1
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v2, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v2, v0
goto/16 :goto_21
:cond_1f9
:try_start_1f9
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "EvalError: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v2}, Lbsh/EvalError;->getMessage()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
:try_end_214
.catchall {:try_start_1f9 .. :try_end_214} :catchall_215
goto :goto_1d5
:catchall_215
move-exception v0
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v2
if-le v2, v1, :cond_22b
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v1, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v1}, Lbsh/c;->a(Lbsh/NameSpace;)V
:cond_22b
throw v0
:catch_22c
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
:goto_230
:try_start_230
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "Unknown error: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0, v5}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
sget-boolean v5, Lbsh/Interpreter;->a:Z
if-eqz v5, :cond_24e
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
:cond_24e
iget-boolean v2, p0, Lbsh/Interpreter;->p:Z
:try_end_250
.catchall {:try_start_230 .. :try_end_250} :catchall_215
if-nez v2, :cond_253
move v0, v1
:cond_253
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v2
if-le v2, v1, :cond_2c1
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v2, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v2, v0
goto/16 :goto_21
:catch_26b
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
:goto_26f
:try_start_26f
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
const-string/jumbo v6, "Error parsing input: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lbsh/Interpreter;->b(Ljava/lang/Object;)V
iget-object v2, p0, Lbsh/Interpreter;->g:Lbsh/Parser;
iget-object v5, p0, Lbsh/Interpreter;->i:Ljava/io/Reader;
invoke-virtual {v2, v5}, Lbsh/Parser;->b(Ljava/io/Reader;)V
iget-boolean v2, p0, Lbsh/Interpreter;->p:Z
:try_end_28f
.catchall {:try_start_26f .. :try_end_28f} :catchall_215
if-nez v2, :cond_292
move v0, v1
:cond_292
invoke-direct {p0}, Lbsh/Interpreter;->i()Lbsh/i;
move-result-object v2
invoke-virtual {v2}, Lbsh/i;->a()V
invoke-virtual {v4}, Lbsh/c;->d()I
move-result v2
if-le v2, v1, :cond_2c1
invoke-virtual {v4}, Lbsh/c;->a()V
iget-object v2, p0, Lbsh/Interpreter;->h:Lbsh/NameSpace;
invoke-virtual {v4, v2}, Lbsh/c;->a(Lbsh/NameSpace;)V
move v2, v0
goto/16 :goto_21
:catch_2aa
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
goto :goto_26f
:catch_2af
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
goto/16 :goto_230
:catch_2b5
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
goto/16 :goto_1b6
:catch_2bb
move-exception v0
move-object v7, v0
move v0, v2
move-object v2, v7
goto/16 :goto_12c
:cond_2c1
move v2, v0
goto/16 :goto_21
.end method