Search in sources :

Example 1 with SlotManager

use of net.sf.saxon.expr.instruct.SlotManager in project intellij-community by JetBrains.

the class Saxon9Support method init.

public static boolean init(Transformer transformer, final LocalDebugger dbg) {
    if (transformer instanceof Controller) {
        System.out.println("SAXON 9");
        final Controller controller = (Controller) transformer;
        ((Saxon9TraceListener) controller.getConfiguration().getTraceListener()).setDebugger(dbg);
        controller.getConfiguration().setLineNumbering(true);
        controller.getConfiguration().setCompileWithTracing(true);
        controller.getConfiguration().setMultiThreading(false);
        controller.getConfiguration().setSerializerFactory(new SerializerFactory(controller.getConfiguration()) {

            @Override
            protected Receiver createXMLSerializer(Emitter emitter, Properties props, PipelineConfiguration pipe, CharacterMapExpander characterMapExpander, ProxyReceiver normalizer) throws XPathException {
                return super.createXMLSerializer(emitter, props, pipe, characterMapExpander, normalizer);
            }

            @Override
            protected Emitter newXMLEmitter() {
                return new TracingOutputter(dbg.getEventQueue(), super.newXMLEmitter());
            }
        });
        controller.getConfiguration().setDebugger(new Debugger() {

            public SlotManager makeSlotManager() {
                return new SlotManager() {

                    @Override
                    public int allocateSlotNumber(StructuredQName qName) {
                        System.out.println("qName = " + qName);
                        return super.allocateSlotNumber(qName);
                    }
                };
            }
        });
        return true;
    }
    return false;
}
Also used : Debugger(net.sf.saxon.expr.instruct.Debugger) LocalDebugger(org.intellij.plugins.xsltDebugger.rt.engine.local.LocalDebugger) SerializerFactory(net.sf.saxon.lib.SerializerFactory) Emitter(net.sf.saxon.serialize.Emitter) CharacterMapExpander(net.sf.saxon.serialize.CharacterMapExpander) XPathException(net.sf.saxon.trans.XPathException) ProxyReceiver(net.sf.saxon.event.ProxyReceiver) Receiver(net.sf.saxon.event.Receiver) PipelineConfiguration(net.sf.saxon.event.PipelineConfiguration) Controller(net.sf.saxon.Controller) Properties(java.util.Properties) StructuredQName(net.sf.saxon.om.StructuredQName) SlotManager(net.sf.saxon.expr.instruct.SlotManager) ProxyReceiver(net.sf.saxon.event.ProxyReceiver)

Example 2 with SlotManager

use of net.sf.saxon.expr.instruct.SlotManager in project intellij-community by JetBrains.

the class Saxon9StyleFrame method collectVariables.

private ArrayList<Debugger.Variable> collectVariables() {
    final ArrayList<Debugger.Variable> variables = new ArrayList<Debugger.Variable>();
    final HashMap<StructuredQName, GlobalVariable> globalVariables = myXPathContext.getController().getExecutable().getCompiledGlobalVariables();
    if (globalVariables != null) {
        for (StructuredQName name : globalVariables.keySet()) {
            final GlobalVariable globalVariable = globalVariables.get(name);
            final Value value = createVariableValue(new GlobalVariableFacade(globalVariable));
            final int lineNumber = globalVariable.getLineNumber();
            final String systemId = globalVariable.getSourceLocator().getSystemId();
            variables.add(new VariableImpl(globalVariable.getVariableQName().getDisplayName(), value, true, Debugger.Variable.Kind.VARIABLE, systemId, lineNumber));
        }
    }
    XPathContext context = myXPathContext;
    while (context != null) {
        final StackFrame frame = context.getStackFrame();
        final SlotManager map = frame.getStackFrameMap();
        final ValueRepresentation[] values = frame.getStackFrameValues();
        outer: for (int i = 0, valuesLength = values.length; i < valuesLength; i++) {
            final ValueRepresentation value = values[i];
            if (value != null) {
                final String name = map.getVariableMap().get(i).getDisplayName();
                for (Debugger.Variable variable : variables) {
                    if (name.equals(variable.getName())) {
                        continue outer;
                    }
                }
                final Value localValue = createVariableValue(new LocalVariableFacade(value));
                variables.add(new VariableImpl(name, localValue, false, Debugger.Variable.Kind.VARIABLE, "", -1));
            }
        }
        context = context.getCaller();
    }
    return variables;
}
Also used : Debugger(org.intellij.plugins.xsltDebugger.rt.engine.Debugger) GeneralVariable(net.sf.saxon.expr.instruct.GeneralVariable) LocalVariable(net.sf.saxon.expr.instruct.LocalVariable) GlobalVariable(net.sf.saxon.expr.instruct.GlobalVariable) ArrayList(java.util.ArrayList) StructuredQName(net.sf.saxon.om.StructuredQName) GlobalVariable(net.sf.saxon.expr.instruct.GlobalVariable) VariableImpl(org.intellij.plugins.xsltDebugger.rt.engine.local.VariableImpl) ValueRepresentation(net.sf.saxon.om.ValueRepresentation) Value(org.intellij.plugins.xsltDebugger.rt.engine.Value) SlotManager(net.sf.saxon.expr.instruct.SlotManager)

Aggregations

SlotManager (net.sf.saxon.expr.instruct.SlotManager)2 StructuredQName (net.sf.saxon.om.StructuredQName)2 ArrayList (java.util.ArrayList)1 Properties (java.util.Properties)1 Controller (net.sf.saxon.Controller)1 PipelineConfiguration (net.sf.saxon.event.PipelineConfiguration)1 ProxyReceiver (net.sf.saxon.event.ProxyReceiver)1 Receiver (net.sf.saxon.event.Receiver)1 Debugger (net.sf.saxon.expr.instruct.Debugger)1 GeneralVariable (net.sf.saxon.expr.instruct.GeneralVariable)1 GlobalVariable (net.sf.saxon.expr.instruct.GlobalVariable)1 LocalVariable (net.sf.saxon.expr.instruct.LocalVariable)1 SerializerFactory (net.sf.saxon.lib.SerializerFactory)1 ValueRepresentation (net.sf.saxon.om.ValueRepresentation)1 CharacterMapExpander (net.sf.saxon.serialize.CharacterMapExpander)1 Emitter (net.sf.saxon.serialize.Emitter)1 XPathException (net.sf.saxon.trans.XPathException)1 Debugger (org.intellij.plugins.xsltDebugger.rt.engine.Debugger)1 Value (org.intellij.plugins.xsltDebugger.rt.engine.Value)1 LocalDebugger (org.intellij.plugins.xsltDebugger.rt.engine.local.LocalDebugger)1