text: '''
  Implementacion de cubo semantico
  
  utilizamos un dictionario anidado, ya que en python tiene una complejidad constante el utilizar este tipo de estructura
  '''
  cuboSemantico = {
      'int' : {
          'int' : {
              '+' : 'int',
              '-' : 'int',
              '*' : 'int',
              '/' : 'int',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          },
          'float' : {
              '+' : 'float',
              '-' : 'float',
              '*' : 'float',
              '/' : 'float',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          },
          'string' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },'fila' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'bool' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          }
      },
      'float' : {
          'int' : {
              '+' : 'float',
              '-' : 'float',
              '*' : 'float',
              '/' : 'float',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          },
          'float' : {
              '+' : 'float',
              '-' : 'float',
              '*' : 'float',
              '/' : 'float',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          },
          'string' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },'fila' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'bool' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          }
      },
      'string' : {
          'int' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'float' : {
              '+' : 'float',
              '-' : 'float',
              '*' : 'float',
              '/' : 'float',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          },
          'string' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },'fila' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'bool' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          }
      },
      'fila' : {
          'int' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'float' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'string' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },'fila' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'bool' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          }
      },
      'bool' : {
          'int' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'float' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'string' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },'fila' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'err',
              '>=' : 'err',
              '<' : 'err',
              '<=' : 'err',
              '==' : 'err',
              '<>' : 'err',
              '||' : 'err',
              '&&' : 'err',
          },
          'bool' : {
              '+' : 'err',
              '-' : 'err',
              '*' : 'err',
              '/' : 'err',
              '>' : 'bool',
              '>=' : 'bool',
              '<' : 'bool',
              '<=' : 'bool',
              '==' : 'bool',
              '<>' : 'bool',
              '||' : 'bool',
              '&&' : 'bool',
          }
      },
  }
  
  