Package org.eclipse.imp.pdb.facts.type

Examples of org.eclipse.imp.pdb.facts.type.Type


  public static String resultMessage(Result<IValue> result) {
    String content;
    IValue value = result.getValue();
   
    if (value != null) {
      Type type = result.getType();
     
      if (type.isAbstractData() && type.isSubtypeOf(Factory.Tree)) {
        content = type.toString() + ": `" + TreeAdapter.yield((IConstructor) value, 1000) + "`\n";
       
        StandardTextWriter stw = new StandardTextWriter(false);
        LimitedResultWriter lros = new LimitedResultWriter(1000);
        try{
          stw.write(value, lros);
View Full Code Here


  public Type getType(Environment env, HashMap<String,IVarPattern> patternVars) {                     
    if(patternSize == 0){
      return tf.listType(tf.voidType());
    }

    Type elemType = tf.voidType();
    for(int i = 0; i < patternSize; i += delta){
      IMatchingResult child = patternChildren.get(i);
      Type childType = child.getType(env, patternVars);
      patternVars = merge(patternVars, patternChildren.get(i).getVariables());
      boolean isMultiVar = child instanceof MultiVariablePattern || child instanceof TypedMultiVariablePattern;
     
      if(childType.isList() && isMultiVar){
        elemType = elemType.lub(childType.getElementType());
      } else {
        elemType = elemType.lub(childType);
      }
    }
    if(debug) {
View Full Code Here

 
  @Override
  public IConstructor makeConstructor(Type returnType, String name, IEvaluatorContext ctx, IValue ...args) {
    // TODO: in general, the following should be the call to an overloaded function
    IValue value = values.constructor(typeStore.lookupConstructor(returnType, name, TypeFactory.getInstance().tupleType(args)), args, new HashMap<String, IValue>());
    Type type = value.getType();
    if (type.isAbstractData()) {
      return (IConstructor)value;
    }
    throw RuntimeExceptionFactory.implodeError("Calling of constructor " + name + " did not return a constructor", null, null);
  }
View Full Code Here

  }
 
  @Override
  public IValue implode(IValue reifiedType, IConstructor tree, IEvaluatorContext ctx) {
    typeStore = new TypeStore();
    Type type = tr.valueToType((IConstructor) reifiedType, typeStore);
    try {
      IValue result = implode(typeStore, type, tree, false, ctx);
      if (isUntypedNodeType(type) && !type.isTop() && (TreeAdapter.isList(tree) || TreeAdapter.isOpt(tree))) {
        result = values.node("", result);
      }
      return result;
    }
    catch (Backtrack b) {
View Full Code Here

    //    ModuleEnvironment pt = ctx.getHeap().getModule("ParseTree");
    //    if(pt != null){
    //      store.importStore(pt.getStore());
    //    }
    Type start = tr.valueToType((IConstructor) type, store);
    loc = rex.resolveSourceLocation(loc);

    InputStream in = null;
    try{
      in = new BufferedInputStream(rex.getResolverRegistry().getInputStream(loc.getURI()));
View Full Code Here

  public IValue readTextValueFile(IValue type, ISourceLocation loc, RascalExecutionContext rex){
    loc = rex.resolveSourceLocation(loc);

    TypeStore store = new TypeStore();
    Type start = tr.valueToType((IConstructor) type, store);

    InputStream in = null;
    try{
      in = new BufferedInputStream(rex.getResolverRegistry().getInputStream(loc.getURI()));
      return new StandardTextReader().read(new RascalValuesValueFactory(), store, start, new InputStreamReader(in, "UTF8"));
View Full Code Here

    TypeStore store = new TypeStore();
    //    ModuleEnvironment pt = ctx.getHeap().getModule("ParseTree");
    //    if(pt != null){
    //      store.importStore(pt.getStore());
    //    }
    Type start = tr.valueToType((IConstructor) type, store);

    StringReader in = new StringReader(input.getValue());
    try {
      return new StandardTextReader().read(values, store, start, in);
    } catch (FactTypeUseException e) {
View Full Code Here

    }

    @Override
    public IMatchingResult buildMatcher(IEvaluatorContext eval) {
      Environment env = eval.getCurrentEnvt();
      Type type = getType().typeOf(env, true, eval.getEvaluator());

      type = type.instantiate(env.getTypeBindings());
     
      return new TypedVariablePattern(eval, this, type, getName());
    }
View Full Code Here

    INumber diff = iSecond.subtract(iFrom);
   
    INumber zero = diff.subtract(diff); // zero in the type that we're dealing with.

    // Use declared types here
    Type resultType = second.getType().lub(from.getType().lub(to.getType()));
   
    IListWriter w = vf.listWriter();
    if (iFrom.lessEqual(iTo).getValue() && diff.greater(zero).getValue()) {
      do {
        w.append(iFrom);
View Full Code Here

    return makeResult(getType().lub(s.getType()), s.getValue().subtract(getValue()), ctx);
  }

  @Override
  protected <U extends IValue> Result<U> multiplyRelation(RelationResult that) {
    Type tupleType = getTypeFactory().tupleType(that.type.getElementType(), type.getElementType());
    // Note the reverse in .product
    return makeResult(getTypeFactory().relTypeFromTuple(tupleType), that.getValue().product(getValue()), ctx);
  }
View Full Code Here

TOP

Related Classes of org.eclipse.imp.pdb.facts.type.Type

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.