void addVariables(StyleElement element, ArrayList<Debugger.Variable> variables, Enumeration enumeration, boolean isGlobal) {
    final Context context = myContext;
    final StaticContext ctx = context.getStaticContext();

    final NamePool pool = element.getNamePool();
    final Bindery bindery = context.getBindery();

    while (enumeration.hasMoreElements()) {
      String name = (String)enumeration.nextElement();
      try {
        final String[] parts = name.split("\\^");
        final String realname = parts[1];
        final int fingerprint = ctx != null ? ctx.getFingerprint(realname, false) : pool.getFingerprint(parts[0], realname);
        final Binding binding = element.getVariableBinding(fingerprint);
        final Debugger.Variable.Kind kind =
          binding instanceof XSLParam ? Debugger.Variable.Kind.PARAMETER : Debugger.Variable.Kind.VARIABLE;
        final com.icl.saxon.expr.Value value = bindery.getValue(binding, myFrameId);

        if (binding instanceof XSLGeneralVariable) {
          final XSLGeneralVariable v = (XSLGeneralVariable)binding;
          final String id = v.getSystemId();
          variables.add(new VariableImpl(realname, convertValue(value), isGlobal, kind, id != null ? id.replaceAll(" ", "%20") : null,
                                         v.getLineNumber()));
        } else {
          variables.add(new VariableImpl(realname, convertValue(value), isGlobal, kind, null, -1));
        }
      } catch (XPathException e) {
        // this should never happen I guess...
        e.printStackTrace();
      }
    }
  }
void addVariables(StyleElement element, ArrayList<Debugger.Variable> variables, Enumeration enumeration, boolean isGlobal)