docs: public void registerFunction(final String name, final Class<?> functionSubclass) throws Exception
      {
          final String token = name.toLowerCase();
          if (functionMap.containsKey(name))
              throw new Exception("duplicate function: " + token);
          try
          {
              functionMap.put(token, functionSubclass.getConstructor(new Class<?>[] {
                      TokVariable.class
              }));
          } catch (final Exception e)
          {
              throw new Exception("register function: " + token, e);
          }
      }