Search in sources :

Example 6 with ILocationData

use of org.eclipse.xtext.generator.trace.ILocationData in project xtext-core by eclipse.

the class TracingSugarTest method _generateTypeWithDebugging.

@Traced(useForDebugging = true)
public IGeneratorNode _generateTypeWithDebugging(final Type it) {
    ILocationData _location = this._myExtensions.location(it);
    CompositeGeneratorNode _traceNode = this._myExtensions.trace(_location, true);
    this._myExtensions.appendTemplate(_traceNode, __generateTypeWithDebugging(it));
    return _traceNode;
}
Also used : CompositeGeneratorNode(org.eclipse.xtext.generator.trace.node.CompositeGeneratorNode) ILocationData(org.eclipse.xtext.generator.trace.ILocationData) Traced(org.eclipse.xtext.generator.trace.node.Traced)

Example 7 with ILocationData

use of org.eclipse.xtext.generator.trace.ILocationData in project xtext-core by eclipse.

the class AbstractTrace method toLocations.

protected Iterable<? extends ILocationInResource> toLocations(final Iterable<AbstractTraceRegion> allTraceRegions) {
    return new Iterable<ILocationInResource>() {

        @Override
        public Iterator<ILocationInResource> iterator() {
            return new AbstractIterator<ILocationInResource>() {

                private Iterator<AbstractTraceRegion> delegate = allTraceRegions.iterator();

                private AbstractTraceRegion region;

                private Iterator<ILocationData> locationDelegate;

                @Override
                protected ILocationInResource computeNext() {
                    while (true) {
                        if (locationDelegate == null || !locationDelegate.hasNext()) {
                            if (delegate.hasNext()) {
                                region = delegate.next();
                                locationDelegate = region.getAssociatedLocations().iterator();
                                if (!locationDelegate.hasNext()) {
                                    continue;
                                }
                            }
                        }
                        if (locationDelegate != null && locationDelegate.hasNext()) {
                            ILocationData locationData = locationDelegate.next();
                            ILocationInResource result = createLocationInResourceFor(locationData, region);
                            if (result != null) {
                                return result;
                            }
                            continue;
                        }
                        return endOfData();
                    }
                }
            };
        }
    };
}
Also used : Iterator(java.util.Iterator) AbstractIterator(com.google.common.collect.AbstractIterator) AbstractTraceRegion(org.eclipse.xtext.generator.trace.AbstractTraceRegion) AbstractIterator(com.google.common.collect.AbstractIterator) ILocationInResource(org.eclipse.xtext.generator.trace.ILocationInResource) ILocationData(org.eclipse.xtext.generator.trace.ILocationData)

Example 8 with ILocationData

use of org.eclipse.xtext.generator.trace.ILocationData in project xtext-core by eclipse.

the class TraceRegionToStringTest method twoFrame2.

@Test
public void twoFrame2() {
    final TraceRegionToStringTester tester = new TraceRegionToStringTester();
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("foo bar");
    _builder.newLine();
    tester.setLocalText(_builder.toString());
    TextRegion _textRegion = new TextRegion(2, 4);
    tester.setLocalFrame(_textRegion);
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("baz buz");
    _builder_1.newLine();
    tester.setRemote1(_builder_1.toString());
    SourceRelativeURI _uri1 = tester.getUri1();
    TraceRegionToStringTester.Location _location = new TraceRegionToStringTester.Location(1, 5, _uri1);
    TraceRegionToStringTester.Region _region = new TraceRegionToStringTester.Region(0, 7, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location)));
    final Procedure1<TraceRegionToStringTester.Region> _function = (TraceRegionToStringTester.Region it) -> {
        TraceRegionToStringTester.Location _location_1 = new TraceRegionToStringTester.Location(1, 5);
        it.addChild(2, 1, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_1)));
        TraceRegionToStringTester.Location _location_2 = new TraceRegionToStringTester.Location(1, 5);
        it.addChild(5, 1, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_2)));
    };
    TraceRegionToStringTester.Region _doubleArrow = ObjectExtensions.<TraceRegionToStringTester.Region>operator_doubleArrow(_region, _function);
    tester.setTrace(_doubleArrow);
    StringConcatenation _builder_2 = new StringConcatenation();
    _builder_2.append("---- local1 ---- | ---- remote1 ----");
    _builder_2.newLine();
    _builder_2.append("[1[o]1] b[2[a]2] | b[1,2[az bu]2,1]z");
    _builder_2.newLine();
    _builder_2.append("------------------------------------");
    _builder_2.newLine();
    _builder_2.append("1: D 2-1 Region -> Location[1,5]");
    _builder_2.newLine();
    _builder_2.append("2: D 5-1 Region -> Location[1,5]");
    _builder_2.newLine();
    this.operator_tripleEquals(tester, _builder_2);
}
Also used : TextRegion(org.eclipse.xtext.util.TextRegion) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) TextRegion(org.eclipse.xtext.util.TextRegion) TraceRegionToStringTester(org.eclipse.xtext.generator.trace.TraceRegionToStringTester) SourceRelativeURI(org.eclipse.xtext.generator.trace.SourceRelativeURI) ILocationData(org.eclipse.xtext.generator.trace.ILocationData) Test(org.junit.Test)

Example 9 with ILocationData

use of org.eclipse.xtext.generator.trace.ILocationData in project xtext-core by eclipse.

the class TraceRegionToStringTest method twoBounding.

@Test
public void twoBounding() {
    final TraceRegionToStringTester tester = new TraceRegionToStringTester();
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("foobar");
    _builder.newLine();
    tester.setLocalText(_builder.toString());
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("bazbuz");
    _builder_1.newLine();
    tester.setRemote1(_builder_1.toString());
    SourceRelativeURI _uri1 = tester.getUri1();
    TraceRegionToStringTester.Location _location = new TraceRegionToStringTester.Location(0, 6, _uri1);
    TraceRegionToStringTester.Region _region = new TraceRegionToStringTester.Region(0, 6, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location)));
    final Procedure1<TraceRegionToStringTester.Region> _function = (TraceRegionToStringTester.Region it) -> {
        TraceRegionToStringTester.Location _location_1 = new TraceRegionToStringTester.Location(0, 3);
        it.addChild(0, 3, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_1)));
        TraceRegionToStringTester.Location _location_2 = new TraceRegionToStringTester.Location(3, 3);
        it.addChild(3, 3, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_2)));
    };
    TraceRegionToStringTester.Region _doubleArrow = ObjectExtensions.<TraceRegionToStringTester.Region>operator_doubleArrow(_region, _function);
    tester.setTrace(_doubleArrow);
    StringConcatenation _builder_2 = new StringConcatenation();
    _builder_2.append("------- local1 ------- | ------ remote1 -------");
    _builder_2.newLine();
    _builder_2.append("[1,2[foo]2][3[bar]3,1] | [1,2[baz]2][3[buz]3,1]");
    _builder_2.newLine();
    _builder_2.append("-----------------------------------------------");
    _builder_2.newLine();
    _builder_2.append("1: D 0-6 Region -> Location[0,6,remote1] {");
    _builder_2.newLine();
    _builder_2.append("2: D 0-3   Region -> Location[0,3]");
    _builder_2.newLine();
    _builder_2.append("3: D 3-3   Region -> Location[3,3]");
    _builder_2.newLine();
    _builder_2.append("1:       }");
    _builder_2.newLine();
    this.operator_tripleEquals(tester, _builder_2);
}
Also used : StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) TextRegion(org.eclipse.xtext.util.TextRegion) TraceRegionToStringTester(org.eclipse.xtext.generator.trace.TraceRegionToStringTester) SourceRelativeURI(org.eclipse.xtext.generator.trace.SourceRelativeURI) ILocationData(org.eclipse.xtext.generator.trace.ILocationData) Test(org.junit.Test)

Example 10 with ILocationData

use of org.eclipse.xtext.generator.trace.ILocationData in project xtext-core by eclipse.

the class TraceRegionToStringTest method twoFrame1.

@Test
public void twoFrame1() {
    final TraceRegionToStringTester tester = new TraceRegionToStringTester();
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("foo bar");
    _builder.newLine();
    tester.setLocalText(_builder.toString());
    TextRegion _textRegion = new TextRegion(1, 5);
    tester.setLocalFrame(_textRegion);
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("baz buz");
    _builder_1.newLine();
    tester.setRemote1(_builder_1.toString());
    SourceRelativeURI _uri1 = tester.getUri1();
    TraceRegionToStringTester.Location _location = new TraceRegionToStringTester.Location(1, 5, _uri1);
    TraceRegionToStringTester.Region _region = new TraceRegionToStringTester.Region(0, 7, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location)));
    final Procedure1<TraceRegionToStringTester.Region> _function = (TraceRegionToStringTester.Region it) -> {
        TraceRegionToStringTester.Location _location_1 = new TraceRegionToStringTester.Location(1, 5);
        it.addChild(2, 1, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_1)));
        TraceRegionToStringTester.Location _location_2 = new TraceRegionToStringTester.Location(1, 5);
        it.addChild(5, 1, Collections.<ILocationData>unmodifiableList(CollectionLiterals.<ILocationData>newArrayList(_location_2)));
    };
    TraceRegionToStringTester.Region _doubleArrow = ObjectExtensions.<TraceRegionToStringTester.Region>operator_doubleArrow(_region, _function);
    tester.setTrace(_doubleArrow);
    StringConcatenation _builder_2 = new StringConcatenation();
    _builder_2.append("---- local1 ----- | ---- remote1 ----");
    _builder_2.newLine();
    _builder_2.append("o[1[o]1] b[2[a]2] | b[1,2[az bu]2,1]z");
    _builder_2.newLine();
    _builder_2.append("-------------------------------------");
    _builder_2.newLine();
    _builder_2.append("1: D 2-1 Region -> Location[1,5]");
    _builder_2.newLine();
    _builder_2.append("2: D 5-1 Region -> Location[1,5]");
    _builder_2.newLine();
    this.operator_tripleEquals(tester, _builder_2);
}
Also used : TextRegion(org.eclipse.xtext.util.TextRegion) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) TextRegion(org.eclipse.xtext.util.TextRegion) TraceRegionToStringTester(org.eclipse.xtext.generator.trace.TraceRegionToStringTester) SourceRelativeURI(org.eclipse.xtext.generator.trace.SourceRelativeURI) ILocationData(org.eclipse.xtext.generator.trace.ILocationData) Test(org.junit.Test)

Aggregations

ILocationData (org.eclipse.xtext.generator.trace.ILocationData)19 SourceRelativeURI (org.eclipse.xtext.generator.trace.SourceRelativeURI)10 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)7 TraceRegionToStringTester (org.eclipse.xtext.generator.trace.TraceRegionToStringTester)7 TextRegion (org.eclipse.xtext.util.TextRegion)7 Test (org.junit.Test)7 AbstractTraceRegion (org.eclipse.xtext.generator.trace.AbstractTraceRegion)5 CompositeGeneratorNode (org.eclipse.xtext.generator.trace.node.CompositeGeneratorNode)5 Traced (org.eclipse.xtext.generator.trace.node.Traced)5 ITextRegionWithLineInformation (org.eclipse.xtext.util.ITextRegionWithLineInformation)3 LocationData (org.eclipse.xtext.generator.trace.LocationData)2 ITextRegion (org.eclipse.xtext.util.ITextRegion)2 AbstractIterator (com.google.common.collect.AbstractIterator)1 BufferedInputStream (java.io.BufferedInputStream)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 InputStream (java.io.InputStream)1 Iterator (java.util.Iterator)1 IPath (org.eclipse.core.runtime.IPath)1 URI (org.eclipse.emf.common.util.URI)1