
OP_NOOP

OP_PROCCALL
        arg1: procedure reference (pointer)
	arg2: list of arguments (GSList *)

OP_RETURN
	arg1: variable reference (pointer)

OP_MOVEFORWARD:
	arg1: distance 
	      type     : int(*), float
	      structure: literal, variable, expression

OP_MOVEBACK:
	arg1: distance 
	      type     : int(*), float
	      structure: literal, variable, expression

OP_TURNRIGHT:
	arg1: angle added value
	      type     : int, float(*)
	      structure: literal, variable, expression

OP_TURNLEFT:
	arg1: angle added value
	      type     : int, float(*)
	      structure: literal, variable, expression

OP_SETPOS
	arg1: x position
	      type     : int(*), float
	      structure: literal, variable, expression
	arg2: y position
	      type     : int(*), float
	      structure: literal, variable, expression

OP_SETHEADING:
	arg1: angle (clockwise)
	      type     : int, float(*)
	      structure: literal, variable, expression

OP_CLEARSCREEN:

OP_HIDETURTLE:

OP_SHOWTURTLE:

OP_HIDEPEN:

OP_SHOWPEN:

OP_SETPREDEFCOLOR:
	arg1: predefined color index
	      type     : int
	      structure: literal, variable, expression

OP_SETUSERDEFCOLOR:
	arg1: red component value
	      type     : int (borned between 0 and 255)
	      structure: literal, variable, expression
	arg2: green component value
	      type     : int (borned between 0 and 255)
	      structure: literal, variable, expression
	arg3: blue component value
	      type     : int (borned between 0 and 255)
	      structure: literal, variable, expression

OP_NOTRACE:

OP_TRACE:

OP_WRITE:
	arg1: value to write
	      type     : int, float, boolean, string
	      structure: literal, variable, expression
	
OP_STOP:
	
OP_AFFECT:
	arg1: variable reference (pointer)
	      structure: variable
	arg2: value
	      type     : int, float, boolean, string
	      structure: literal, variable, expression
	
OP_LOCAFFECT:
	arg1: variable reference (pointer)
	      structure: variable
	arg2: value
	      type     : int, float, boolean, string
	      structure: literal, variable, expression

???	
OP_DANCE:
OP_SLEEP:
OP_GETHEADING	

OP_HAZARD:
	arg1: max random value
	      type     : int(*), float
	      structure: literal, variable, expression
	
OP_REPEAT:
	arg1: end-of-repeat instruction pointer
	      type     : instruction pointer
	arg2: loop counter
	      type     : int
	      structure: literal, variable, expression
	      
	
OP_LOOPCNT:
	arg1: loop instruction reference (??)
	      type     : instruction pointer

	!!! la valeur du loopcnt est gale  la valeur totale de la boucle 
	    loop - le nombre de boucles dj effectues
	
OP_IF
	arg1: on-false instruction pointer (false if condition)
	      type     : instruction pointer
	arg2: if condition
	      type     : boolean
	      structure: literal, variable, expression

OP_ELSE ??? utile ???
	arg1: on-false instruction pointer (false if condition)
	      type     : instruction pointer
	arg2: if condition
	      type     : boolean
	      structure: literal, variable, expression


OP_WHILE:
	arg1: end-of-while instruction pointer
	      type     : instruction pointer
	arg2: while condition
	      type     : boolean
	      structure: literal, variable, expression

OP_JUMP:
	arg1: jump destination instruction pointer
	      type     : instruction pointer


!!! missing NOT operation 

OP_AND:
	arg1: left AND argument
	      type     : boolean
	      structure: literal, variable, expression
	arg2: right AND argument
	      type     : boolean
	      structure: literal, variable, expression

OP_OR:
	arg1: left OR argument
	      type     : boolean
	      structure: literal, variable, expression
	arg2: right OR argument
	      type     : boolean
	      structure: literal, variable, expression

OP_EQ:
	arg1: left EQ argument
	      type     : boolean, int, float, string
	      structure: literal, variable, expression
	arg2: right EQ argument
	      type     : boolean, int, float, string
	      structure: literal, variable, expression

	both operands must be of compatible types:
	  bool   <-> bool
	  int    <-> int
	  int    <-> float
	  string <-> string

OP_LT:
	arg1: left LT argument
	      type     : int, float, string
	      structure: literal, variable, expression
	arg2: right LT argument
	      type     : int, float, string
	      structure: literal, variable, expression

	both operands must be of compatible types:
	  int    <-> int
	  int    <-> float
	  string <-> string

OP_GT:
	arg1: left GT argument
	      type     : int, float, string
	      structure: literal, variable, expression
	arg2: right GT argument
	      type     : int, float, string
	      structure: literal, variable, expression

	both operands must be of compatible types:
	  int    <-> int
	  int    <-> float
	  string <-> string

OP_LEQ:
	arg1: left LEQ argument
	      type     : int, float, string
	      structure: literal, variable, expression
	arg2: right LEQ argument
	      type     : int, float, string
	      structure: literal, variable, expression

	both operands must be of compatible types:
	  int    <-> int
	  int    <-> float
	  string <-> string

OP_GEQ:
	arg1: left GEQ argument
	      type     : int, float, string
	      structure: literal, variable, expression
	arg2: right GEQ argument
	      type     : int, float, string
	      structure: literal, variable, expression

	both operands must be of compatible types:
	  int    <-> int
	  int    <-> float
	  string <-> string

OP_ADD:
	arg1: left ADD operand
	      type     : int, float
	      structure: literal, variable, expression
	arg2: right ADD operand
	      type     : int, float
	      structure: literal, variable, expression

OP_SUB:
	arg1: left SUB operand
	      type     : int, float
	      structure: literal, variable, expression
	arg2: right SUB operand
	      type     : int, float
	      structure: literal, variable, expression

OP_MUL:
	arg1: left MUL operand
	      type     : int, float
	      structure: literal, variable, expression
	arg2: right MUL operand
	      type     : int, float
	      structure: literal, variable, expression

OP_DIV:
	arg1: left DIV operand
	      type     : int, float
	      structure: literal, variable, expression
	arg2: right DIV operand
	      type     : int, float
	      structure: literal, variable, expression

OP_UNEG:
	arg1: UNEG operand
	      type     : int, float
	      structure: literal, variable, expression
