Package wyvern.tools.typedAST.extensions.interop.java.typedAST

Examples of wyvern.tools.typedAST.extensions.interop.java.typedAST.JavaClassDecl


  public Type checkOperator(Invocation opExp, Environment env) {
    String operatorName = opExp.getOperationName();

   
    if (!(legalOperators.contains(operatorName))) {
      JavaClassDecl strDecl = Util.javaToWyvDecl(String.class);
      try {
        return strDecl.getObjType().checkOperator(opExp, env);
      } catch (Exception e) {
        reportError(OPERATOR_DOES_NOT_APPLY, opExp, operatorName, this.toString());
      }
    }
    Type type2 = opExp.getArgument().typecheck(env, Optional.empty());
View Full Code Here


  }
  private static JavaClassDecl getDecl(Class toGet) {
    if (declCache.containsKey(toGet))
      return declCache.get(toGet);

    JavaClassDecl decl = new JavaClassDecl(toGet);
    declCache.put(toGet, decl);
    //decl.initalize();
    return decl;
  }
View Full Code Here

    return javaToWyvObj(arg);
  }

  public static Value javaToWyvObj(Object arg) {
    JavaClassDecl decl = getDecl(arg.getClass());
    AtomicReference<Value> thisRef = new AtomicReference<>();
    if (pregenerated.containsKey(arg)) {
      return pregenerated.get(arg);
    }
    JavaObj newObj = new JavaObj(decl.getFilledBody(thisRef),arg, decl);
    pregenerated.put(arg, newObj);
    thisRef.set(newObj);
    return newObj;
  }
View Full Code Here

    return newType;
  }

  public static JavaClassDecl javaToWyvDecl(Class jClass) {

    JavaClassDecl jcd = getDecl(jClass);
    classCache.put(jClass, jcd.getType()); //Prevent infinite recursion
    //jcd.initalize();
    return jcd;
  }
View Full Code Here

    else if (jType.equals(String.class))
      return Str.getInstance();
    else if (jType.equals(void.class))
      return Unit.getInstance();
    else {
      JavaClassDecl jcd = getDecl(jType);
      classCache.put(jType, jcd.getType()); //Prevent infinite recursion
      //jcd.initalize();
      return jcd.getType();
    }
  }
View Full Code Here

      }
    });

    Class javaClass = sfm.getClassLoader().loadClass(javaClassName);

    JavaClassDecl jcd = Util.javaToWyvDecl(javaClass);


    JavaClassDecl terminalsDecl = StreamSupport.stream(jcd.getDecls().getDeclIterator().spliterator(), false)
        .filter(decl -> decl instanceof JavaClassDecl)
        .<JavaClassDecl>map(decl -> (JavaClassDecl) decl)
        .filter(decl -> decl.getName().equals("Terminals"))
        .findFirst().orElseThrow(() -> new RuntimeException("Cannot find terminals class"));
    Type terminalClassType = terminalsDecl
        .extend(Environment.getEmptyEnvironment(), Environment.getEmptyEnvironment())
        .lookup("Terminals").getType();
    Type terminalObjType = terminalsDecl
        .extend(Environment.getEmptyEnvironment(), Environment.getEmptyEnvironment())
        .lookupType("Terminals").getType();

    splicers.forEach(splicer -> splicer.accept(terminalClassType,terminalObjType));
View Full Code Here

    }
    String classAlias = uri.getFragment();
    if (binderHashMap.containsKey(className))
      return new JavaBinder(binderHashMap.get(className), classAlias);
    else {
      JavaClassDecl cd = Util.javaToWyvDecl(resolved);
      binderHashMap.put(className, cd);
      return new JavaBinder(cd, classAlias);
    }
  }
View Full Code Here

TOP

Related Classes of wyvern.tools.typedAST.extensions.interop.java.typedAST.JavaClassDecl

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.