   ﹍@a←a minus 1
   .a print
   """
-  '0'
+  "0"
 
 
   """



tests = [
  '1plus 1 print'
  '1'

  '(1plus 1)print'
  '2'

  '(1plus 1)print print'
  '22'

  '@a ← "test string". @b ← a. @c ← @a. @a eval print.@b eval print.@c eval print'
  'test stringtest stringa'

  '@a←5.a increment.@a←a plus 1.a print'
  '7'

  '@a←5..a increment. ...  .@a←a plus 1.a print'
  '7'

  '.@a←5..a increment. ...  .@a←a plus 1.a print.'
  '7'

  '..@a←5..a increment. ...  .@a←a plus 1.a print..'
  '7'

  '. .@a←5..a increment. ...  .@a←a plus 1.a print. .'
  '7'

  '...@a←5..a increment. ...  .@a←a plus 1.a print...'
  '7'

  '@a←5.@a←a plus 1.a increment print'
  '7'

  '@a←5plus 1.a increment print'
  '7'

  '@a←(5plus 1).a increment print'
  '7'

  '(4plus 1plus 1)print'
  '6'

  '@a←(4plus 1plus 1).a increment print'
  '7'

  '@a←(4plus(1plus 1)).a increment print'
  '7'

  '@a←((4plus 1)plus(0plus 1)).a increment print'
  '7'

  '7anotherPrint'
  '7'

  '7anotherPrinttwo'
  '7'

  '7anotherPrintthree'
  '7'

  '7doublePrint'
  '77'

  '7print print'
  '77'

  '(6doublePrint plus 1)print'
  '667'

  '6doublePrint plus 1print'
  '661'

  '(4plus 3)print'
  '7'

  '(4plus 3print)print'
  '37'

  '(4plus(2plus 1))print'
  '7'

  '4plus(2plus 1)print'
  '7'

  '4plus 2plus 1print'
  '1'

  '(@(1plus 1))print'
  '( 1 plus 1 )'

  '((@(1plus 1))eval)print'
  '2'

  '(@(1plus 1))eval print'
  '2'

  # in this case still the @ ties to the first element
  # that comes after it i.e. ( 1 plus 1 )
  '@(1 plus 1)eval print'
  '2'

  '@a←5.@b←@a.b print.a print'
  'a5'

  'true negate print'
  'false'

  # note how the first not understood
  # prevents any further statement to be
  # executed.
  '1 negate. 2print'
  '! message was not understood: ( negate )'

  'negate print'
  '! no meaning found for: negate was sent message: ( print )'

  'nonExistingObject'
  '! no meaning found for: nonExistingObject'

  '1 == 1 negate. 2print'
  '2'

  '(false and false)print'
  'false'

  '(false and true)print'
  'false'

  '(true and false)print'
  'false'

  '(true and true)print'
  'true'

  '(false or false)print'
  'false'

  '(false or true)print'
  'true'

  '(true or false)print'
  'true'

  '(true or true)print'
  'true'

  '(not true)print'
  'false'

  '(not not true)print'
  'true'

  '(not not not true)print'
  'false'

  '(not not not not true)print'
  'true'

  'true⇒(1print)'
  '1'

  'false⇒(1print)2print'
  '2'

  '(0==0)print'
  'true'

  '(1==0)print'
  'false'

  '(0amIZero)print'
  'true'

  '(1amIZero)print'
  'false'

  '(8minus 1)print'
  '7'

  'true⇒(1print)2print'
  '1'

  '0factorial print'
  '1'

  '1factorial print'
  '1'

  '2factorial print'
  '2'

  '7factorial print'
  '5040'

  '0factorialtwo print'
  '1'

  '1factorialtwo print'
  '1'

  '2factorialtwo print'
  '2'

  '7factorialtwo print'
  '5040'

  '7factorialthree print'
  '5040'

  '7factorialfour print'
  '5040'

  '7factorialfive print'
  '5040'

  '7selftimesminusone print'
  '42'

  '@a←5.1printAFromDeeperCall'
  '5'

  '@a←5.repeat1((a==0)⇒(done)@a←a minus 1).a print'
  '0'

  """
  @a←5

  
  a print
  """
  "0"

  """
  @a←5
