Class new title: ParsedMessage subclassof: Object fields: 'rcvr op args "false if no args, Vector if many args" hasPC' declare: ''; sharing: ByteCodes args [args] args_ t1 [args _ t1] emitForEffect: t1 on: t2 [self emitForValue: t1 on: t2. t1 next_ toPop. t2 pop: 1] emitForValue: t1 on: t2 [args emitForValue: t1 on: t2. rcvr emitForValue: t1 on: t2. [rcvr  toSuper  [t1 next_ rcvr]]. op emitBytes: t1. args argsOff: t2] emittedReceiver [rcvr] emittedReceiver_ t1 [rcvr _ t1] findMacros: t1 compilerTemps: t2 | t3 t4 [t3 _ [args  nil  [()] args is: Vector  [args] args inVector]. for t4 from: t3 do [t4 findMacros: t1 compilerTemps: t2]. rcvr findMacros: t1 compilerTemps: t2] firstPush [[args  [args] rcvr] firstPush] hasPC [hasPC _ true] op [op] printon: t1 [t1 append: '('. t1 print: rcvr. t1 space. t1 print: op. [args  [t1 space. t1 print: args]]. t1 append: ')'] printon: t1 indent: t2 precedence: t3 forValue: t4 decompiler: t5 | t6 t7 t8 t9 t10 t11 t12 [t6 _ t5 selector: op. t10 _ [t6 isinfix  [3] t6 iskeyword  [2] t6 isarrow  [1] 4]. t9 _ t10 < t3 or (t3 = 2 and t10 = 2). [t9  [t1 append: '(']]. t12 _ t1 position. rcvr printon: t1 indent: t2 precedence: t10 forValue: true decompiler: t5. [t10 = 4  [t1 space. t1 append: t6] t7 _ t6 keywords. t11 _ [args  nil  [()] args is: Vector  [args] args inVector]. for t8 to: t7 length do [t1 space. t1 append: t7  t8. t1 space. t11  t8 printon: t1 indent: t2 precedence: [t10 = 3  [4] t10] forValue: true decompiler: t5]]. [hasPC  [t5 highlight: (t12 + 1 to: t1 position + 1)]]. t9  [t1 append: ')']] rcvr [rcvr] rcvr: t1 op: t2 args: t3 [rcvr _ t1. op _ t2. args _ t3. hasPC _ false. op = toEq and (toLoadFalse  rcvr or toLoadFalse  args)  [ParsedNegation new rcvr: rcvr op: op args: args]] sizeForEffect: t1 [self sizeForValue + 1] sizeForValue [args sizeForValue + rcvr sizeForValue + op sizeForValue + [rcvr  toSuper  [1] 0]]