Package org.eclipse.imp.pdb.facts

Examples of org.eclipse.imp.pdb.facts.ISet


      IConstructor arg = x.getArguments().get(0).accept(this);
      return vf.constructor(Factory.Symbol_Opt, arg);
    }
   
    if (name.equals("alt")) {
      ISet set = vf.set(Factory.Symbol);
      Expression.Set arg = (Set) x.getArguments().get(0);
      for(Expression y: arg.getElements()){
        set = set.insert(y.accept(this));
      }
      return vf.constructor(Factory.Symbol_Alt, set);
    }
   
    if (name.equals("tuple")) {
View Full Code Here


    if (maxDepth <= 0 || (stRandom.nextInt(2) == 0)) {
      return writer.done();
    } else {
      RandomValueTypeVisitor visitor = descend();
      ISet set = (ISet) visitor.generate(type);

      IValue element = null;
      int recursionGuard = 0; // Domain of set can be small.
      while ((element == null || set.contains(element))
          && recursionGuard < 1000) {
        recursionGuard += 1;
        element = visitor.generate(type.getElementType());
      }
View Full Code Here

          return antiquotes.get(TreeAdapter.yield(tree)).asAnnotatable().setAnnotation("holeType", type);
        }

        private IConstructor retrieveHoleType(IConstructor tree) {
          IConstructor prod = TreeAdapter.getProduction(tree);
          ISet attrs = ProductionAdapter.getAttributes(prod);

          for (IValue attr : attrs) {
            if (((IConstructor) attr).getConstructorType() == Factory.Attr_Tag) {
              IValue arg = ((IConstructor) attr).get(0);
View Full Code Here

   
    try{
      boolean isListRel = rel instanceof IList;
      out = new UnicodeOutputStreamWriter(rex.getResolverRegistry().getOutputStream(loc.getURI(), false), encoding.getValue(), false);
      out = new BufferedWriter(out); // performance
      ISet irel = null;
      IList lrel = null;
      if (isListRel) {
        lrel = (IList)rel;
      }
      else {
        irel = (ISet) rel;
      }
     
      int nfields = isListRel ? lrel.asRelation().arity() : irel.asRelation().arity();
      if(head){
        for(int i = 0; i < nfields; i++){
          if(i > 0)
            out.write(sep);
          String label = paramType.getFieldName(i);
View Full Code Here

        result = org.rascalmpl.interpreter.result.ResultFactory
            .makeResult(rec.getType(), tuple, __eval.__getEval());
      } else if (rec.getType().isRelation()
          && subscript.getType().isSubtypeOf(
              rec.getType().getFieldType(0))) {
        ISet rel = (ISet) rec.getValue();
        IValue sub = subscript.getValue();

        if (rec.getType().getArity() != 2) {
          throw new UnsupportedSubscript(rec.getType(),
              subscript.getType(), this);
        }

        if (!__eval.__getValue().getType().isSubtypeOf(
            rec.getType().getFieldType(1))) {
          throw new UnexpectedType(
              rec.getType().getFieldType(1), __eval.__getValue()
                  .getType(), __eval.__getEval()
                  .getCurrentAST());
        }

        rel = rel.insert(__eval.__getEval().getValueFactory().tuple(
            sub, __eval.__getValue().getValue()));
        result = org.rascalmpl.interpreter.result.ResultFactory
            .makeResult(rec.getType(), rel, __eval.__getEval());
      } else {
        throw new UnsupportedSubscript(rec.getType(), subscript
View Full Code Here

  public static ISet getImports(IConstructor tree) {
    return get(tree, "default");
  }
 
  public static ISet getExtends(IConstructor tree) {
    ISet iSet = get(tree, "extend");
    return iSet;
  }
View Full Code Here

    if (TreeAdapter.isChar(left) && TreeAdapter.isChar(right)) {
      return bool((TreeAdapter.getCharacter(left) == TreeAdapter.getCharacter(right)), ctx);
    }
   
    if (TreeAdapter.isAmb(left) && TreeAdapter.isAmb(right)) {
      ISet alts1 = TreeAdapter.getAlternatives(left);
      ISet alts2 = TreeAdapter.getAlternatives(right);

      if (alts1.size() != alts2.size()) {
        return bool(false, ctx);
      }
     
      // TODO: this is very inefficient
      again: for (IValue alt1: alts1) {
View Full Code Here

   
    try{
      boolean isListRel = rel instanceof IList;
      out = new UnicodeOutputStreamWriter(ctx.getResolverRegistry().getOutputStream(loc.getURI(), false), encoding.getValue(), false);
      out = new BufferedWriter(out); // performance
      ISet irel = null;
      IList lrel = null;
      if (isListRel) {
        lrel = (IList)rel;
      }
      else {
        irel = (ISet) rel;
      }
     
      int nfields = isListRel ? lrel.asRelation().arity() : irel.asRelation().arity();
      if(head){
        for(int i = 0; i < nfields; i++){
          if(i > 0)
            out.write(sep);
          String label = paramType.getFieldName(i);
View Full Code Here

    }
  }

  private IValue traverseSetOnce(IValue subject, CaseBlockList casesOrRules,
      DIRECTION direction, PROGRESS progress, FIXEDPOINT fixedpoint, TraverseResult tr) {
    ISet set = (ISet) subject;
    if(!set.isEmpty()){
      ISetWriter w = eval.getValueFactory().setWriter(set.getType().getElementType());
      boolean hasChanged = false;
      boolean hasMatched = false;
     
      for (IValue v : set) {
        tr.changed = false;
View Full Code Here

      } else {
        hasNext = false;
        return ctx.getValueFactory().set();
      }
    }
    ISet result = subsetGen.next().insert(currentElement);
    if(debug)System.err.println("SubSetGenerator.next returns: " + result);
    return result;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.imp.pdb.facts.ISet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.