JexlNode.smali
.class public abstract Lorg/apache/commons/jexl3/parser/JexlNode;
.super Lorg/apache/commons/jexl3/parser/SimpleNode;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/apache/commons/jexl3/parser/JexlNode$Constant;
}
.end annotation
# instance fields
.field private lc:I
# direct methods
.method public constructor <init>(I)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lorg/apache/commons/jexl3/parser/SimpleNode;-><init>(I)V
const/4 p1, -0x1
.line 2
iput p1, p0, Lorg/apache/commons/jexl3/parser/JexlNode;->lc:I
return-void
.end method
.method public constructor <init>(Lorg/apache/commons/jexl3/parser/Parser;I)V
.registers 3
.line 3
invoke-direct {p0, p1, p2}, Lorg/apache/commons/jexl3/parser/SimpleNode;-><init>(Lorg/apache/commons/jexl3/parser/Parser;I)V
const/4 p1, -0x1
.line 4
iput p1, p0, Lorg/apache/commons/jexl3/parser/JexlNode;->lc:I
return-void
.end method
# virtual methods
.method public clearCache()V
.registers 3
.line 1
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetValue()Ljava/lang/Object;
move-result-object v0
.line 2
instance-of v1, v0, Lorg/apache/commons/jexl3/introspection/JexlPropertyGet;
if-nez v1, :cond_10
instance-of v1, v0, Lorg/apache/commons/jexl3/introspection/JexlPropertySet;
if-nez v1, :cond_10
instance-of v0, v0, Lorg/apache/commons/jexl3/introspection/JexlMethod;
if-eqz v0, :cond_14
:cond_10
const/4 v0, 0x0
.line 3
invoke-virtual {p0, v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtSetValue(Ljava/lang/Object;)V
:cond_14
const/4 v0, 0x0
.line 4
:goto_15
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetNumChildren()I
move-result v1
if-ge v0, v1, :cond_25
.line 5
invoke-virtual {p0, v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetChild(I)Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v1
invoke-virtual {v1}, Lorg/apache/commons/jexl3/parser/JexlNode;->clearCache()V
add-int/lit8 v0, v0, 0x1
goto :goto_15
:cond_25
return-void
.end method
.method public isConstant()Z
.registers 2
.line 1
instance-of v0, p0, Lorg/apache/commons/jexl3/parser/JexlNode$Constant;
invoke-virtual {p0, v0}, Lorg/apache/commons/jexl3/parser/JexlNode;->isConstant(Z)Z
move-result v0
return v0
.end method
.method public isConstant(Z)Z
.registers 6
const/4 v0, 0x0
if-eqz p1, :cond_30
const/4 p1, 0x0
.line 2
:goto_4
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetNumChildren()I
move-result v1
const/4 v2, 0x1
if-ge p1, v1, :cond_2f
.line 3
invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetChild(I)Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v1
.line 4
instance-of v3, v1, Lorg/apache/commons/jexl3/parser/ASTReference;
if-eqz v3, :cond_1a
.line 5
invoke-virtual {v1, v2}, Lorg/apache/commons/jexl3/parser/JexlNode;->isConstant(Z)Z
move-result v1
if-nez v1, :cond_2c
return v0
.line 6
:cond_1a
instance-of v3, v1, Lorg/apache/commons/jexl3/parser/ASTMapEntry;
if-eqz v3, :cond_25
.line 7
invoke-virtual {v1, v2}, Lorg/apache/commons/jexl3/parser/JexlNode;->isConstant(Z)Z
move-result v1
if-nez v1, :cond_2c
return v0
.line 8
:cond_25
invoke-virtual {v1}, Lorg/apache/commons/jexl3/parser/JexlNode;->isConstant()Z
move-result v1
if-nez v1, :cond_2c
return v0
:cond_2c
add-int/lit8 p1, p1, 0x1
goto :goto_4
:cond_2f
return v2
:cond_30
return v0
.end method
.method public isLeftValue()Z
.registers 3
.line 1
instance-of v0, p0, Lorg/apache/commons/jexl3/parser/ASTIdentifier;
const/4 v1, 0x1
if-nez v0, :cond_32
instance-of v0, p0, Lorg/apache/commons/jexl3/parser/ASTIdentifierAccess;
if-eqz v0, :cond_a
goto :goto_32
.line 2
:cond_a
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetNumChildren()I
move-result v0
sub-int/2addr v0, v1
if-ltz v0, :cond_1f
.line 3
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetNumChildren()I
move-result v0
sub-int/2addr v0, v1
invoke-virtual {p0, v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetChild(I)Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v0
.line 4
invoke-virtual {v0}, Lorg/apache/commons/jexl3/parser/JexlNode;->isLeftValue()Z
move-result v0
return v0
.line 5
:cond_1f
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetParent()Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v0
instance-of v0, v0, Lorg/apache/commons/jexl3/parser/ASTReference;
if-nez v0, :cond_32
invoke-virtual {p0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetParent()Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v0
instance-of v0, v0, Lorg/apache/commons/jexl3/parser/ASTArrayAccess;
if-eqz v0, :cond_30
goto :goto_32
:cond_30
const/4 v0, 0x0
return v0
:cond_32
:goto_32
return v1
.end method
.method public jexlInfo()Lorg/apache/commons/jexl3/JexlInfo;
.registers 5
move-object v0, p0
:goto_1
const/4 v1, 0x0
if-eqz v0, :cond_18
.line 1
invoke-virtual {v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetValue()Ljava/lang/Object;
move-result-object v2
instance-of v2, v2, Lorg/apache/commons/jexl3/JexlInfo;
if-eqz v2, :cond_13
.line 2
invoke-virtual {v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/apache/commons/jexl3/JexlInfo;
goto :goto_19
.line 3
:cond_13
invoke-virtual {v0}, Lorg/apache/commons/jexl3/parser/SimpleNode;->jjtGetParent()Lorg/apache/commons/jexl3/parser/JexlNode;
move-result-object v0
goto :goto_1
:cond_18
move-object v0, v1
.line 4
:goto_19
iget v2, p0, Lorg/apache/commons/jexl3/parser/JexlNode;->lc:I
if-ltz v2, :cond_2d
and-int/lit16 v3, v2, 0xfff
shr-int/lit8 v2, v2, 0xc
if-eqz v0, :cond_28
.line 5
invoke-virtual {v0, v2, v3}, Lorg/apache/commons/jexl3/JexlInfo;->at(II)Lorg/apache/commons/jexl3/JexlInfo;
move-result-object v0
goto :goto_2d
:cond_28
new-instance v0, Lorg/apache/commons/jexl3/JexlInfo;
invoke-direct {v0, v1, v2, v3}, Lorg/apache/commons/jexl3/JexlInfo;-><init>(Ljava/lang/String;II)V
:cond_2d
:goto_2d
return-object v0
.end method
.method public jjtSetFirstToken(Lorg/apache/commons/jexl3/parser/Token;)V
.registers 3
iget v0, p1, Lorg/apache/commons/jexl3/parser/Token;->beginLine:I
shl-int/lit8 v0, v0, 0xc
iget p1, p1, Lorg/apache/commons/jexl3/parser/Token;->beginColumn:I
and-int/lit16 p1, p1, 0xfff
or-int/2addr p1, v0
iput p1, p0, Lorg/apache/commons/jexl3/parser/JexlNode;->lc:I
return-void
.end method
.method public jjtSetLastToken(Lorg/apache/commons/jexl3/parser/Token;)V
.registers 2
return-void
.end method