}
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);