docs: function SemanticChecker(tokens) {
      this._tokens = tokens;
      this._index = -1;
      this._tree = null;
      this._stack = [];
      if (!this.checkExp()) {
          throw [0, "This is not a understandable expression!"];
      }
      if (this.tkn() !== null) {
          throw [this._index, "Unexpected end of expression! Maybe you forgot a \"(\" somewhere."];
      }
  }