code: @Override
      public Object visitFunctionCall(ExcellentParser.FunctionCallContext ctx) {
          String funcName = ctx.fnname().getText();
          List<Object> parameters;
          if (ctx.parameters() != null) {
              parameters = (List<Object>) visit(ctx.parameters());
          } else {
              parameters = Collections.emptyList();
          }
          return m_functions.invokeFunction(m_evalContext, funcName, parameters);
      }
docs: expression : fnname LPAREN parameters? RPAREN