Examples of Code


Examples of anvil.codec.Code


  public void compile(ByteCompiler context, int operation)
  {
    super.compile(context, GET);
    Code code = context.getCode();
    code.invokevirtual(code.getPool().addMethodRef(context.TYPE_OBJECT,
      "equals", "(Ljava/lang/Object;)Z"));
    if (operation != GET_BOOLEAN) {
      context.boolean2any();
    }
  }
View Full Code Here

Examples of anvil.codec.Code

  public void compile(ByteCompiler context, int operation)
  {
    ClassType base = _classtype.getBaseClass();
    if (base != null) {
      Code code = context.getCode();
      CompilableFunction ctor = base.getConstructor();
      code.self();
      context.compileArgumentList(ctor, getChilds(0));
      code.invokespecial(ctor.getTypeRef(code.getPool()));
    }
  }
View Full Code Here

Examples of anvil.codec.Code

 
  public void compile(ByteCompiler context, int operation)
  {
    super.compile(context, GET);
    Code code = context.getCode();
    code.invokestatic(code.getPool().addMethodRef(context.TYPE_ANY_OP, "sub",
      "(Lanvil/core/Any;Lanvil/core/Any;)Lanvil/core/Any;"));
    if (operation == GET_BOOLEAN) {
      context.any2boolean();
    }
  }
View Full Code Here

Examples of anvil.codec.Code


  public void compile(ByteCompiler context, int operation)
  {
    super.compile(context, GET);
    Code code = context.getCode();
    code.invokestatic(code.getPool().addMethodRef(context.TYPE_ANY_OP, "mul",
      "(Lanvil/core/Any;Lanvil/core/Any;)Lanvil/core/Any;"));
    if (operation == GET_BOOLEAN) {
      context.any2boolean();
    }
  }
View Full Code Here

Examples of anvil.codec.Code

    left.compile(context, new Node() {
      public void compile(ByteCompiler context, int operation)
      {
        left.compile(context, GET);
        right.compile(context, GET);
        Code code = context.getCode();
        code.invokestatic(code.getPool().addMethodRef(context.TYPE_ANY_OP,
          getAssignmentMethod(), "(Lanvil/core/Any;Lanvil/core/Any;)Lanvil/core/Any;"));
      }
    });
  }
View Full Code Here

Examples of anvil.codec.Code

  }
 
 
  public void compile(ByteCompiler context, Node left, Node right)
  {
    Code code = context.getCode();
    switch(left.typeOf()) {
    case EXPR_VARIABLE:
    case EXPR_CONSTANT_VARIABLE:
      compileOperation(context, left, right);
      break;
     
    case EXPR_ATTRIBUTE:
      right.compile(context, GET);
      AttributeNode attr = (AttributeNode)left;
      attr.getChild().compile(context, GET);
      code.astring(attr.getAttribute());
      code.aload_first();
      code.invokestatic(code.getPool().addMethodRef(context.TYPE_CONTEXT, getAssignmentMethod(),
        "(Lanvil/core/Any;Lanvil/core/Any;Ljava/lang/String;Lanvil/script/Context;)Lanvil/core/Any;"));
      break;
 
    case Node.EXPR_REFERENCE:
      right.compile(context, GET);
      ReferenceNode ref = (ReferenceNode)left;
      ref.getChild(0).compile(context, GET);
      ref.getChild(1).compile(context, GET);
      code.aload_first();
      code.invokestatic(code.getPool().addMethodRef(context.TYPE_CONTEXT, getAssignmentMethod(),
        "(Lanvil/core/Any;Lanvil/core/Any;Lanvil/core/Any;Lanvil/script/Context;)Lanvil/core/Any;"));
      break;
   
    case Node.EXPR_EMPTY_REFERENCE:
      left.compile(context, right);
View Full Code Here

Examples of anvil.codec.Code

  }


  public void compile(ByteCompiler context, int operation)
  {
    final Code code = context.getCode();
    int n = childs() - 1;
    if (n == 1) {
      compile(context, getChild(0), getChild(1));
    } else {
      final int tmp = code.addLocal();
      getChild(n).compile(context, GET);
      code.astore(tmp);
      final int nth = code.getPool().addMethodRef(context.TYPE_CONTEXT,
        "nth", "(Lanvil/core/Any;I)Lanvil/core/Any;");
      for(int i=0; i<n; i++) {
        final int c = i;
        compile(context, getChild(i), new Node() {
          public void compile(ByteCompiler context, int operation)
          {
            code.aload_first();
            code.aload(tmp);
            code.iconst(c);
            code.invokevirtual(nth);
          }
        });
        code.pop();
      }
      code.aload(tmp);
      code.endLocal(tmp);
    }
    if (operation == GET_BOOLEAN) {
      context.any2boolean();
    }
  }
View Full Code Here

Examples of anvil.codec.Code

  }


  public void compile(ByteCompiler context, Node child)
  {
    Code code = context.getCode();
    ConstantPool pool = code.getPool();
    context.accessInstance(_context, _target);
    child.compile(context, GET);
    code.dup_x1();
    code.putfield(_member.getTypeRef(pool));
  }
View Full Code Here

Examples of anvil.codec.Code

  }


  public void compile(ByteCompiler context, int operation)
  {
    Code code = context.getCode();
    ConstantPool pool = code.getPool();
    switch(operation) {
    case GET:
      context.accessInstance(_context, _target);
      code.getfield(_member.getTypeRef(pool));
      break;

    case GET_BOOLEAN:
      context.accessInstance(_context, _target);
      code.getfield(_member.getTypeRef(pool));
      context.any2boolean();
      break;

    case CHECK:
      context.accessInstance(_context, _target);
      code.getfield(_member.getTypeRef(pool));
      break;

    case DELETE:
      code.iconst(false);
      break;
    }
  
  }
View Full Code Here

Examples of anvil.codec.Code



  public void compile(ByteCompiler context, int operation)
  {
    Code code = context.getCode();
    ConstantPool pool = code.getPool();
    int clazz = pool.addClass("java/lang/StringBuffer");
    int appendmethod = pool.addMethodRef(clazz, "append",
      "(Ljava/lang/Object;)Ljava/lang/StringBuffer;");
    code.anew(clazz);
    code.dup();
    code.invokespecial(pool.addMethodRef(clazz, "<init>", "()V"));
    int n = childs();
    for(int i=0; i<n; i++) {
      getChild(i).compile(context, GET);
      code.invokevirtual(appendmethod);
    }
    code.invokevirtual(code.getPool().addMethodRef(context.TYPE_OBJECT,
      "toString", "()Ljava/lang/String;"));
    code.invokestatic(code.getPool().addMethodRef(context.TYPE_ANY,
      "create", "(Ljava/lang/String;)Lanvil/core/Any;"));
    if (operation == GET_BOOLEAN) {
      context.any2boolean();
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.