当前位置: 首页>>代码示例>>Java>>正文


Java Iterables2类代码示例

本文整理汇总了Java中org.metaborg.util.iterators.Iterables2的典型用法代码示例。如果您正苦于以下问题:Java Iterables2类的具体用法?Java Iterables2怎么用?Java Iterables2使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Iterables2类属于org.metaborg.util.iterators包,在下文中一共展示了Iterables2类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: tracingTermsCompletions

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private Iterable<IStrategoTerm> tracingTermsCompletions(final int position, Object result,
    final ISourceRegion region, final HybridInterpreter runtime, final ITermFactory termFactory,
    final String languageName, final Map<IStrategoTerm, Boolean> leftRecursiveTerms,
    final Map<IStrategoTerm, Boolean> rightRecursiveTerms) {
    if(result == null || region == null) {
        return Iterables2.empty();
    }
    final Collection<IStrategoTerm> parsed = Lists.newLinkedList();

    final IStrategoTermVisitor visitor = new AStrategoTermVisitor() {
        @Override public boolean visit(IStrategoTerm term) {
            final ISourceLocation location = fromTokens(term, runtime, termFactory, position, languageName,
                leftRecursiveTerms, rightRecursiveTerms);
            if(location != null && location.region().contains(region)) {
                parsed.add(term);
                return false;
            }
            return true;
        }
    };

    StrategoTermVisitee.bottomup(visitor, (IStrategoTerm) result);
    return parsed;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:25,代码来源:JSGLRCompletionService.java

示例2: styleParsed

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public Iterable<IRegionStyle<IStrategoTerm>> styleParsed(ILanguageImpl language,
    Iterable<IRegionCategory<IStrategoTerm>> categorization) {
    final StylerFacet facet = language.facet(StylerFacet.class);
    if(facet == null) {
        logger.error("Cannot style input of {}, it does not have a styler facet", language);
        // GTODO: throw exception instead
        return Iterables2.empty();
    }

    final List<IRegionStyle<IStrategoTerm>> regionStyles = Lists.newLinkedList();
    for(IRegionCategory<IStrategoTerm> regionCategory : categorization) {
        final IRegionStyle<IStrategoTerm> regionStyle = style(facet, regionCategory);
        if(regionStyle != null) {
            regionStyles.add(regionStyle);
        }
    }

    return regionStyles;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:20,代码来源:StylerService.java

示例3: toTerms

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private Iterable<IStrategoTerm> toTerms(IStrategoTerm ast, final ISourceRegion region) {
    if(ast == null || region == null) {
        return Iterables2.empty();
    }
    final Collection<IStrategoTerm> parsed = Lists.newLinkedList();
    final IStrategoTermVisitor visitor = new AStrategoTermVisitor() {
        @Override public boolean visit(IStrategoTerm term) {
            final ISourceLocation location = location(term);
            if(location != null && location.region().contains(region)) {
                parsed.add(term);
                return false;
            }
            return true;
        }
    };
    StrategoTermVisitee.bottomup(visitor, ast);
    return parsed;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:19,代码来源:TracingService.java

示例4: toTermsWithin

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private Iterable<IStrategoTerm> toTermsWithin(IStrategoTerm ast, final ISourceRegion region) {
    if(ast == null || region == null) {
        return Iterables2.empty();
    }
    final Collection<IStrategoTerm> parsed = Lists.newLinkedList();
    final IStrategoTermVisitor visitor = new AStrategoTermVisitor() {
        @Override public boolean visit(IStrategoTerm term) {
            final ISourceLocation location = location(term);
            if(location != null && region.contains(location.region())) {
                parsed.add(term);
                // no need to check the children, as this term is already within the given region
                return false;
            }
            return true;
        }
    };
    StrategoTermVisitee.topdown(visitor, ast);
    return parsed;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:20,代码来源:TracingService.java

示例5: find

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
public static Iterable<FileObject> find(FileObject base, FileSelector selector) throws FileSystemException {
    final FileObject[] files = base.findFiles(selector);
    if(files == null) {
        return Iterables2.empty();
    }
    return Iterables2.from(files);
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:8,代码来源:ResourceUtils.java

示例6: sourcePaths

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public Iterable<FileObject> sourcePaths(IProject project, String languageName) throws MetaborgException {
    final Iterable<ILanguageComponent> dependencies = dependencyService.compileDeps(project);
    final Collection<FileObject> sources = Lists.newArrayList();
    for(ILanguageComponent dependency : dependencies) {
        final Collection<IGenerateConfig> generates = dependency.config().generates();
        for(IGenerateConfig generate : generates) {
            if(languageName.equals(generate.languageName())) {
                resolve(project.location(), Iterables2.singleton(generate.directory()), sources);
            }
        }
    }
    return sources;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:14,代码来源:DependencyPathProvider.java

示例7: toFiles

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public Collection<IdentifiedResource> toFiles(Iterable<FileObject> paths, ILanguageImpl language) {
    final Collection<FileObject> files = ResourceUtils.expand(paths);
    final Collection<IdentifiedResource> identifiedFiles = Lists.newArrayListWithExpectedSize(files.size());
    for(FileObject file : files) {
        final IdentifiedResource identifiedFile =
            languageIdentifierService.identifyToResource(file, Iterables2.singleton(language));
        if(identifiedFile != null) {
            identifiedFiles.add(identifiedFile);
        }
    }
    return identifiedFiles;
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:13,代码来源:LanguagePathService.java

示例8: startSymbols

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private static Iterable<String> startSymbols(IStrategoAppl document) {
    final IStrategoAppl result = ESVReader.findTerm(document, "StartSymbols");
    if(result == null) {
        return null;
    }

    final String contents = ESVReader.termContents(termAt(termAt(result, 0), 0));
    return Iterables2.singleton(contents);
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:10,代码来源:SyntaxFacetFromESV.java

示例9: analyze

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public ISpoofaxAnalyzeResult analyze(ISpoofaxParseUnit input, IContext genericContext, IProgress progress,
        ICancel cancel) throws AnalysisException {
    if(!input.valid()) {
        final String message = logger.format("Parse input for {} is invalid, cannot analyze", input.source());
        throw new AnalysisException(genericContext, message);
    }
    final ISpoofaxAnalyzeResults results =
            analyzeAll(Iterables2.singleton(input), genericContext, progress, cancel);
    if(results.results().isEmpty()) {
        throw new AnalysisException(genericContext, "Analysis failed.");
    }
    return new SpoofaxAnalyzeResult(Iterables.getOnlyElement(results.results()), results.updates(),
            results.context());
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:15,代码来源:AbstractConstraintAnalyzer.java

示例10: analyze

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public ISpoofaxAnalyzeResult analyze(ISpoofaxParseUnit input, IContext context, IProgress progress,
    ICancel cancel) throws AnalysisException, InterruptedException {
    if(!input.valid()) {
        final String message = logger.format("Parse input for {} is invalid, cannot analyze", input.source());
        throw new AnalysisException(context, message);
    }

    final ISpoofaxAnalyzeResults results = analyzeAll(Iterables2.singleton(input), context, progress, cancel);
    return new SpoofaxAnalyzeResult(results.results().iterator().next(), results.updates(), context);
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:11,代码来源:TaskEngineAnalyzer.java

示例11: result

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private ISpoofaxAnalyzeUnit result(String error, ISpoofaxParseUnit input, IContext context, Throwable e,
    long duration) {
    final FileObject source = input.source();
    final IMessage message = MessageFactory.newAnalysisErrorAtTop(source, error, e);
    return unitService.analyzeUnit(input,
        new AnalyzeContrib(false, false, true, null, Iterables2.singleton(message), duration), context);
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:8,代码来源:StrategoAnalyzer.java

示例12: fragments

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
@Override public Iterable<IStrategoTerm> fragments(ISpoofaxAnalyzeUnit result, ISourceRegion region) {
    if(!result.valid()) {
        throw new MetaborgRuntimeException(
            "Cannot get fragments for analyze unit " + result + " because it is invalid");
    }
    if(!result.hasAst()) {
        return Iterables2.empty();
    }
    return toTerms(result.ast(), region);
}
 
开发者ID:metaborg,项目名称:spoofax,代码行数:11,代码来源:TracingService.java

示例13: matchWf

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
private static IMatcher<IRegExp<Label>> matchWf(IRegExpBuilder<Label> builder) {
    return M.casesFix(m -> Iterables2.from(
        // @formatter:off
            M.appl0("Empty", (t) -> builder.emptySet()), M.appl0("Epsilon", (t) -> builder.emptyString()),
            M.appl1("Closure", m, (t, re) -> builder.closure(re)),
            M.appl2("Concat", m, m, (t, re1, re2) -> builder.concat(re1, re2)),
            M.appl2("And", m, m, (t, re1, re2) -> builder.and(re1, re2)),
            M.appl2("Or", m, m, (t, re1, re2) -> builder.or(re1, re2)), Label.matcher(l -> builder.symbol(l))
    // @formatter:on
    ));
}
 
开发者ID:metaborg,项目名称:nabl,代码行数:12,代码来源:ResolutionParameters.java

示例14: collecttd

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
public static <R> Function1<ITerm, Collection<R>> collecttd(IMatcher<? extends R> m) {
    return term -> {
        List<R> results = Lists.newArrayList();
        M.<Unit>casesFix(f -> Iterables2.<IMatcher<? extends Unit>>from(
            // @formatter:off
            t -> m.match(t).map(r -> {
                results.add(r);
                return Unit.unit;
            }),
            t -> Optional.of(t.match(Terms.<Unit>cases(
                (appl) -> {
                    for(ITerm arg : appl.getArgs()) {
                        f.match(arg);
                    }
                    return Unit.unit;
                },
                (list) -> list.match(ListTerms.<Unit> cases(
                    (cons) -> {
                        f.match(cons.getHead());
                        f.match(cons.getTail());
                        return Unit.unit;
                    },
                    (nil) -> Unit.unit,
                    (var) -> Unit.unit
                )),
                (string) -> Unit.unit,
                (integer) -> Unit.unit,
                (var) -> Unit.unit
            )))
            // @formatter:on
        )).match(term);
        return results;
    };
}
 
开发者ID:metaborg,项目名称:nabl,代码行数:35,代码来源:Terms.java

示例15: matcher

import org.metaborg.util.iterators.Iterables2; //导入依赖的package包/类
public static IMatcher<MessageContent> matcher() {
    return M.<MessageContent>cases(
        // @formatter:off
        M.appl0(DEFAULT, (t) -> ImmutableDefaultMessage.of()),
        M.appl1(FORMATTED, M.listElems(partMatcher()), (t, ps) -> ImmutableCompoundMessage.of(ps)),
        M.string(s -> ImmutableTextMessage.of(s.getValue())),
        partMatcher(),
        M.term(t -> ImmutableCompoundMessage.of(Iterables2.from(
            ImmutableTermMessage.of(t),
            ImmutableTextMessage.of(" (error message was malformed)")
        )))
        // @formatter:on
    );
}
 
开发者ID:metaborg,项目名称:nabl,代码行数:15,代码来源:MessageContent.java


注:本文中的org.metaborg.util.iterators.Iterables2类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。