docs: private FunctionDescriptor processImport(RulesTextProvider textProvider)
      {
      	log.debug("processImport");
          textProvider.getPosition();
          String fullFunctionName = "";
          String functionName = null;
          while (alpha(textProvider))
          {
              functionName =textProvider.getLastToken();
              fullFunctionName += functionName;
              if (exact(".",textProvider))
              {
                  fullFunctionName += ".";
                  continue;
              }
              exactOrError("(",textProvider);
          }
          FunctionDescriptor functionDescriptor = new FunctionDescriptor(functionName, fullFunctionName);
          
          List<Class<?>> args = new ArrayList<Class<?>>();
          while (true)
          {
              if (exact(")",textProvider))
              {
                  break;
              }
              if (!alpha(textProvider))
              {
                  throw new ParserException("Expected argument type ",textProvider);
              }
              String argumentType = textProvider.getLastToken();
              try
              {
                  args.add(Class.forName(argumentType));
              }
              catch (ClassNotFoundException e)
              {
                  throw new ParserException("Expected valid class but got "+argumentType+" ",textProvider);
              }
              if (!alpha(textProvider))
              {
                  throw new ParserException("Expected argument name ",textProvider);
              }
              exact(",",textProvider);
          }
          functionDescriptor.setArgTypes(args);
          textProvider.addFunction(functionDescriptor);
          return functionDescriptor;
      }