//-------------------------------------------------------------------//
//                                                                   //
// Análisis Semántico:                                               //
//                                                  		     //
//	- Sustitución de expresiones equivalentes                    //
//      - Control de posiciones					     //
//                                                                   //
//-------------------------------------------------------------------//

abstract native object::object{}
abstract native integer::object{}
var a:1 
var b:2 
var c:3
var d:4

expresion1:(a==b)===(a.operatorEqual(b))
expresion2:(a!=b)===(a.operatorNotEqual(b))
expresion3:(a>b)===(a.operatorGreater(b))
expresion4:(a<b)===(a.operatorLess(b))
expresion5:(a>=b)===(a.operatorGreaterOrEqual(b))
expresion6:(a<=b)===(a.operatorLessOrEqual(b))
expresion7:(a::b)===(a.operatorUnion(b))
expresion8:(a:b)===(a.toString.operatorConcat(b.toString))
expresion9:(a+b)===(a.operatorPlus(b))
expresion10:(a-b)===(a.operatorMinus(b))
expresion11:(a*b)===(a.operatorMultiplication(b))
expresion12:(a/b)===(a.operatorDivision(b))
expresion13:(a%b)===(a.operatorModulus(b))
expresion14:(+a)===(a.operatorPlus)
expresion15:(-a)===(a.operatorMinus)
expresion16:(a[b])===(a.operatorGet(b))
expresion17:(a[b]=c)===(a.operatorSet(b,c))

expresion18:(for a,b,c do d)===(a;while b do (d;c))

var main: 1
estaEsLaLinea38: estaEsLaLinea38