method com.dmdirc.actions.ConditionTree__static_init










method ConditionTree$OPERATION[] values()
pre(soft) init'ed($VALUES[...])
postreturn_value == &new ConditionTree$OPERATION[]( values#1)
postnew ConditionTree$OPERATION[](values#1) num objects == 1
postreturn_value.length == 5
postreturn_value[...] == One-of{$VALUES[...], undefined}

method ConditionTree$OPERATION valueOf(String)
postinit'ed(return_value)

method void com.dmdirc.actions.ConditionTree$OPERATION(St ring, int)










method com.dmdirc.actions.ConditionTree$OPERATION__ static_init
post$VALUES == &new ConditionTree$OPERATION[](Condi tionTree$OPERATION__static_init#6)
postAND == &new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#1)
post$VALUES[0] == &new ConditionTree$OPERATION(Cond itionTree$OPERATION__static_init#1)
postNOOP == &new ConditionTree$OPERATION(ConditionT ree$OPERATION__static_init#5)
post$VALUES[4] == &new ConditionTree$OPERATION(Cond itionTree$OPERATION__static_init#5)
postNOT == &new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#4)
post$VALUES[3] == &new ConditionTree$OPERATION(Cond itionTree$OPERATION__static_init#4)
postOR == &new ConditionTree$OPERATION(ConditionTre e$OPERATION__static_init#2)
post$VALUES[1] == &new ConditionTree$OPERATION(Cond itionTree$OPERATION__static_init#2)
postVAR == &new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#3)
post$VALUES[2] == &new ConditionTree$OPERATION(Cond itionTree$OPERATION__static_init#3)
postnew ConditionTree$OPERATION(ConditionTree$OPERATION __static_init#1) num objects == 1
postnew ConditionTree$OPERATION(ConditionTree$OPERATION __static_init#2) num objects == 1
postnew ConditionTree$OPERATION(ConditionTree$OPERATION __static_init#3) num objects == 1
postnew ConditionTree$OPERATION(ConditionTree$OPERATION __static_init#4) num objects == 1
postnew ConditionTree$OPERATION(ConditionTree$OPERATION __static_init#5) num objects == 1
postnew ConditionTree$OPERATION[](ConditionTree$OPERATI ON__static_init#6) num objects == 1
post$VALUES.length == 5
unanalyzedcall on java.lang.Enum










method void com.dmdirc.actions.ConditionTree(ConditionTre e$OPERATION, ConditionTree, ConditionTree)
postthis.argument == -1
postthis.leftArg == leftArg
postinit'ed(this.leftArg)
postthis.op == op
postinit'ed(this.op)
postthis.rightArg == rightArg
postinit'ed(this.rightArg)










method void com.dmdirc.actions.ConditionTree(ConditionTre e$OPERATION, ConditionTree)
postthis.argument == -1
postthis.leftArg == argument
postinit'ed(this.leftArg)
postthis.op == op
postinit'ed(this.op)
postthis.rightArg == null










method void com.dmdirc.actions.ConditionTree(int)
postthis.argument == argument
postinit'ed(this.argument)
postthis.leftArg == null
postthis.rightArg == null
postthis.op == &com.dmdirc.actions.ConditionTree$OP ERATION__static_init.new ConditionTree$OPERATION(Co nditionTree$OPERATION__static_init#3)










method void com.dmdirc.actions.ConditionTree()
postthis.argument == -1
postthis.leftArg == null
postthis.rightArg == null
postthis.op == &com.dmdirc.actions.ConditionTree$OP ERATION__static_init.new ConditionTree$OPERATION(Co nditionTree$OPERATION__static_init#5)










method int getMaximumArgument()
pre(soft) init'ed(this...argument)
pre(soft) this...leftArg != null
pre(soft) this...rightArg != null
pre(soft) init'ed(this.argument)
pre(soft) this.leftArg != null
pre(soft) this.rightArg != null
postinit'ed(return_value)
unanalyzedcall on getMaximumArgument
unanalyzedcall on java.lang.Math:max










method com.dmdirc.actions.ConditionTree$1__static_init
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$OPE RATION__static_init.new ConditionTree$OPERATION[](C onditionTree$OPERATION__static_init#6)[...])
presumptioncom.dmdirc.actions.ConditionTree_OPERATION:ordinal( ...)@131 in {0..4}
presumptioncom.dmdirc.actions.ConditionTree_OPERATION:ordinal( ...)@131 - values(...).length in range
postnew int[](ConditionTree$1__static_init#1) num objects == 1

method bool evaluate(bool[])
prethis.op != null
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$1__ static_init.new int[](ConditionTree$1__static_init# 1)[...])
pre(soft) conditions != null
pre(soft) conditions.length >= 1
pre(soft) this.argument < conditions.length
pre(soft) init'ed(conditions[...])
pre(soft) this...argument >= 0
pre(soft) this...leftArg != null
pre(soft) this...op != null
pre(soft) this...rightArg != null
pre(soft) this.argument >= 0
pre(soft) this.leftArg != null
pre(soft) this.rightArg != null
presumptioncom.dmdirc.actions.ConditionTree_OPERATION:ordinal( ...)@131 in {0..4}
postinit'ed(return_value)
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on evaluate
test_vectorcom.dmdirc.actions.ConditionTree$1__static_init. new int[](ConditionTree$1__static_init#1)[...]: {1}, {2}, {3}, {4}, {-231..0, 5..232-1}









  method not available - call not analyzedInfocall on int com.dmdirc.actions.ConditionTree$OPERAT ION:ordinal()
  method not available - call not analyzedInfocall on int com.dmdirc.actions.ConditionTree$OPERAT ION:ordinal()











method bool equals(Object)
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$1__ static_init.new int[](ConditionTree$1__static_init# 1)[...])
pre(soft) init'ed(obj.argument)
pre(soft) init'ed(obj.leftArg)
pre(soft) obj.op != null
pre(soft) init'ed(obj.rightArg)
pre(soft) init'ed(this.argument)
pre(soft) init'ed(this.leftArg)
pre(soft) this.op != null
pre(soft) init'ed(this.rightArg)
postinit'ed(return_value)
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on java.lang.String:valueOf










method int hashCode()
prethis.op != null
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$1__ static_init.new int[](ConditionTree$1__static_init# 1)[...])
pre(soft) init'ed(this.argument)
pre(soft) init'ed(this.leftArg)
pre(soft) init'ed(this.rightArg)
postinit'ed(return_value)
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on java.lang.String:valueOf










method String toString()
prethis.op != null
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$1__ static_init.new int[](ConditionTree$1__static_init# 1)[...])
pre(soft) init'ed(this.argument)
pre(soft) init'ed(this.leftArg)
pre(soft) init'ed(this.rightArg)
presumptioncom.dmdirc.actions.ConditionTree_OPERATION:ordinal( ...)@168 in {0..4}
postjava.lang.String:valueOf(...)._tainted == 0
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postreturn_value in Addr_Set{&amp;java.lang. String:valueOf(...),&amp;java.lang.StringBuilder:to String(...),&amp;java.lang.StringBuilder:toString(. ..),&amp;java.lang.StringBuilder:toString(...), &amp;""}
test_vectorcom.dmdirc.actions.ConditionTree$1__static_init. new int[](ConditionTree$1__static_init#1)[...]: {1}, {2}, {3}, {4}, {-231..0, 5..232-1}









  method not available - call not analyzedInfocall on int com.dmdirc.actions.ConditionTree$OPERAT ION:ordinal()











method ConditionTree parseString(String)
prestring != null
postinit'ed(return_value)
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnew ConditionTree(readTerm#1).argument == 0, if init'ed
postnew ConditionTree(readTerm#1).leftArg == null
postnew ConditionTree(readTerm#1).op == null
postnew ConditionTree(readTerm#1).rightArg == null
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
test_vectorjava.lang.String:charAt(...)@193: {32}, {48..57}, {9}, {10}, {13}, {0..8, 11,12, 14..31, 33..47, 58..216-1}
test_vectorjava.lang.String:charAt(...)@198: {0..47, 58..216-1}, {48..57}










method ConditionTree parseStack(Deque)
prestack != null
postinit'ed(return_value)
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnot_init'ed(new ConditionTree(readTerm#1). argument)
postnot_init'ed(new ConditionTree(readTerm#1).leftArg)
postnot_init'ed(new ConditionTree(readTerm#1).op)
postnot_init'ed(new ConditionTree(readTerm#1). rightArg)
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
test_vectorjava.lang.Character:charValue(...)@230: {0..40, 42..216-1}, {41}
test_vectorjava.lang.Character:charValue(...)@271: {0..37, 39..216-1}, {38}
test_vectorjava.lang.Character:charValue(...)@273: {0..123, 125..216-1}, {124}
test_vectorjava.util.Deque:isEmpty(...)@227: {1}, {0}
test_vectorjava.util.Deque:isEmpty(...)@243: {1}, {0}
test_vectorjava.util.Deque:isEmpty(...)@257: {0}, {1}
test_vectorjava.util.Deque:isEmpty(...)@263: {0}, {1}
test_vectorjava.util.Deque:size(...)@244: {-231..0, 2..232-1}, {1}










method ConditionTree readTerm(Deque)
prestack != null
postinit'ed(return_value)
postnew ConditionTree(readTerm#1) num objects <= 1
postnew ConditionTree(readTerm#1).argument == -1
postinit'ed(new ConditionTree(readTerm#1).leftArg)
postnew ConditionTree(readTerm#1).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#4)
postnew ConditionTree(readTerm#1).rightArg == null
postnew ConditionTree(readTerm#1*) num objects <= 1
postnot_init'ed(new ConditionTree(readTerm#1*). argument)
postnot_init'ed(new ConditionTree(readTerm#1*). leftArg)
postnot_init'ed(new ConditionTree(readTerm#1*).op)
postnot_init'ed(new ConditionTree(readTerm#1*). rightArg)
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
test_vectorjava.lang.Character:charValue(...)@299: {0..32, 34..216-1}, {33}
test_vectorjava.util.Deque:isEmpty(...)@300: {0}, {1}










method ConditionTree readBracket(Deque)
pre(soft) stack != null
postinit'ed(return_value)
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnew ConditionTree(readTerm#1).argument == 0, if init'ed
postnew ConditionTree(readTerm#1).leftArg == null
postnew ConditionTree(readTerm#1).op == null
postnew ConditionTree(readTerm#1).rightArg == null
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
test_vectorjava.lang.Character:charValue(...)@329: {0..39, 41..216-1}, {40}
test_vectorjava.util.Deque:isEmpty(...)@326: {1}, {0}










method bool isInt(char)
postinit'ed(return_value)










method ConditionTree createDisjunction(int)
postinit'ed(return_value)
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnew ConditionTree(readTerm#1).argument == 0, if init'ed
postnew ConditionTree(readTerm#1).leftArg == null
postnew ConditionTree(readTerm#1).op == null
postnew ConditionTree(readTerm#1).rightArg == null
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf
test_vectorjava.lang.StringBuilder:length(...)@364: {0}, {-231..-1, 1..232-1}










method ConditionTree createConjunction(int)
postinit'ed(return_value)
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnew ConditionTree(readTerm#1).argument == 0, if init'ed
postnew ConditionTree(readTerm#1).leftArg == null
postnew ConditionTree(readTerm#1).op == null
postnew ConditionTree(readTerm#1).rightArg == null
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf
test_vectorjava.lang.StringBuilder:length(...)@385: {0}, {-231..-1, 1..232-1}