constructor(text, customDecimalCharacter = '.') {
        this.text = text;
        this.decimalCharacter = customDecimalCharacter;
        this.lexer = new Lexer(text);
        this.token = this.lexer.getNextToken(this.decimalCharacter);

        return this._exp();
    }
Parse the given string, and generate an abstract syntax tree (AST) from the math expression

@param {string} text
@param {string} customDecimalCharacter The custom decimal character to use in floats
@returns {ASTNode}