docs: protected void initialize() throws Exception
      {
          functionMap = new Hashtable<>();
          registerFunction("if", FuncIf.class);
          registerFunction("rate", FuncFlatRate.class);
          registerFunction("bandedrate", FuncBandedRate.class);
          registerFunction("tieredrate", FuncTieredRate.class);
          registerFunction("round", FuncRound.class);
          registerFunction("alpha", FuncAlpha.class);
          registerFunction("max", FuncMax.class);
          registerFunction("min", FuncMin.class);
          registerFunction("sin", FuncSin.class);
          registerFunction("tan", FuncTan.class);
          registerFunction("abs", FuncAbs.class);
          registerFunction("acos", FuncAcos.class);
          registerFunction("acotan", FuncAcotan.class);
          registerFunction("asin", FuncAsin.class);
          registerFunction("atan", FuncAtan.class);
          registerFunction("cos", FuncCos.class);
          registerFunction("deg", FuncRadsToDegrees.class);
          registerFunction("rad", FuncDegreesToRads.class);
          registerFunction("root", FuncRoot.class);
          registerFunction("sqrt", FuncSqrt.class);
          registerFunction("cbrt", FuncCubeRoot.class);
          registerFunction("log", FuncLog.class);
          registerFunction("log10", FuncLog10.class);
          registerFunction("trunc", FuncTrunc.class);
          registerFunction("not", FuncNot.class);
          registerFunction("match", FuncStringMatch.class);
          registerFunction("matches", FuncStringMatch.class);
          registerFunction("empty", FuncStringEmpty.class);
          registerFunction("isempty", FuncStringEmpty.class);
          registerFunction("cat", FuncStringCat.class);
          registerFunction("length", FuncStringLength.class);
          registerFunction("substr", FuncStringSubstr.class);
          registerFunction("rtrim", FuncStringRTrim.class);
          registerFunction("ltrim", FuncStringLTrim.class);
          registerFunction("trim", FuncStringTrim.class);
          registerFunction("indexOf", FuncStringIndexOf.class);
          registerFunction("date", FuncDate.class);
          registerFunction("time", FuncTime.class);
          registerFunction("datetime", FuncDateTime.class);
          registerFunction("dateTimefmt", FuncDateTimeFmt.class);
          registerFunction("datefmt", FuncDateFmt.class);
          registerFunction("timefmt", FuncTimeFmt.class);
          registerFunction("toString", FuncToString.class);
          registerFunction("ucase", FuncStringUpCase.class);
          registerFunction("lcase", FuncStringLowerCase.class);
          registerFunction("metaphone", FuncStringMetaphone.class);
          registerFunction("toInt", FuncStringToInt.class);
          registerFunction("toFloat", FuncStringToFloat.class);
          registerFunction("toHex", FuncBytesToHex.class);
          registerFunction("replace", FuncStringReplace.class);
  
          operatorMap = new Hashtable<>();
          registerOperator("^", OpPower.class);
          registerOperator(",", OpComma.class);
          registerOperator(";", OpChain.class);
          registerOperator("*", OpMultiply.class);
          registerOperator("/", OpDivide.class);
          registerOperator("+", OpAdd.class);
          registerOperator("-", OpSubtract.class);
          registerOperator("(", OpLeftParen.class);
          registerOperator(")", OpRightParen.class);
          registerOperator("=", OpCompareEqual.class);
          registerOperator("!=", OpCompareNotEqual.class);
          registerOperator(">", OpCompareGreater.class);
          registerOperator("<=", OpCompareNotGreater.class);
          registerOperator("<", OpCompareLess.class);
          registerOperator(">=", OpCompareNotLess.class);
          registerOperator(":=", OpAssignment.class);
          registerOperator("&&", OpAnd.class);
          registerOperator("!&", OpNand.class);
          registerOperator("||", OpOr.class);
          registerOperator("!|", OpNor.class);
          registerOperator("~|", OpXor.class);
          registerOperator("!~|", OpXnor.class);
          registerOperator("%", OpMod.class);
          registerOperator("!", OpFactorial.class);
      }