Here are the results of runnning my parser for message 2 - now for the third message ... - 001 [ 2.00 :SUB<: 1.00 :SUB<: 3.00 ] 002 [ 3.00 :SUB<: -1.00 :SUB<: 2.00 ] 003 [ 3.00 :SUB<: 1.00 :SUB<: 4.00 ] 004 [ 4.00 :SUB<: -1.00 :SUB<: 3.00 ] 005 [ 4.00 :SUB>: 1.00 :SUB>: 3.00 ] 006 [ 3.00 :SUB>: -1.00 :SUB>: 4.00 ] 007 [ 3.00 :SUB>: 1.00 :SUB>: 2.00 ] 008 [ 2.00 :SUB>: -1.00 :SUB>: 3.00 ] 009 [:IF: 1.00 :PLUS: X :PLUS: 1.00 :IF:] 010 [:THEN: X :EQV: 2.00 :EQV: X :THEN:] 011 [:IF: X :PLUS: 3.00 :PLUS: 1.00 :IF:] 012 [:THEN: X :EQV: 2.00 :EQV: X :THEN:] 013 [:IF: 1.00 :PLUS: 1.00 :PLUS: X :IF:] 014 [:THEN: X :EQV: 0.00 :EQV: X :THEN:] 015 [ X :EQV: Y :EQV: Z :EQV: a :EQV: b :EQV: c :EQV: b :EQV: a :EQV: Z :EQV: Y :EQV: X ] 016 [ 6.00 :DIV/: 1/6 :DIV/: 1.00 ] 017 [ 1/6 :EQV: 0.17 :EQV: 1/6 ] 018 [ 2.00 :MULT: 0.33 :MULT: 1/6 ] 019 [ 1/3 :EQV: 0.33 :EQV: 1/3 ] 020 [ 1/36 :EQV: 0.03 :EQV: 1/36 ] 021 [ 1.00 :PLUS: 1.03 :PLUS: 1/36 ] 022 [ 1/6 :PLUS: 0.19 :PLUS: 1/36 ] 023 [ 2.00 :DIV>: 2.00 :DIV>: 1.00 ] 024 [ 1.00 :DIV>: 1/2 :DIV>: 2.00 ] 025 [ 6.00 :DIV>: 2.00 :DIV>: 3.00 ] 026 [ 3.00 :DIV>: 1/2 :DIV>: 6.00 ] 027 [ 2.00 :DIV<: 1/2 :DIV<: 1.00 ] 028 [ 1.00 :DIV<: 2.00 :DIV<: 2.00 ] 029 [ 6.00 :DIV<: 1/2 :DIV<: 3.00 ] 030 [ 3.00 :DIV<: 2.00 :DIV<: 6.00 ] 031 [:TRUE::AND::TRUE::AND::TRUE:] 032 [:TRUE::AND::FALSE::AND::FALSE:] 033 [:FALSE::AND::FALSE::AND::TRUE:] 034 [:FALSE::AND::FALSE::AND::FALSE:] 035 [:TRUE::OR::TRUE::OR::TRUE:] 036 [:TRUE::OR::TRUE::OR::FALSE:] 037 [:FALSE::OR::TRUE::OR::TRUE:] 038 [:FALSE::OR::FALSE::OR::FALSE:] 039 [~:TRUE::EQV::FALSE::EQV:~:TRUE:] 040 [~:FALSE::EQV::TRUE::EQV:~:FALSE:] 041 [ 0.00 :COS: 1.57rad :OR: 4.71rad :COS: 0.00 ] 042 [ 0.50 :COS: 1.05rad :OR: 5.24rad :COS: 0.50 ] 043 [ 0.87 :COS: 0.52rad :OR: 5.76rad :COS: 0.87 ] 044 [ 1.00 :COS: 0.00rad :OR: 6.28rad :COS: 1.00 ] 045 [:TRUE: 0.00rad :EQV: 6.28rad :EQV: 0.00rad :TRUE:] 046 [:FALSE: 0.52rad :EQV: 5.76rad :EQV: 0.52rad :FALSE:] 047 [ -1.00 :COS: 3.14rad :COS: -1.00 ] 048 [ -0.87 :COS: 2.62rad :OR: 3.67rad :COS: -0.87 ] 049 [ -0.50 :COS: 2.09rad :OR: 4.19rad :COS: -0.50 ] 050 [ 1.00 :SIN: 1.57rad :SIN: 1.00 ] 051 [ -1.00 :SIN: 4.71rad :SIN: -1.00 ] 052 [ 0.00 :SIN: 0.00rad :OR: 3.14rad :SIN: 0.00 ] Pete