|
|
|
|
23
|
import java.io.FileOutputStream;
|
23
|
import java.io.FileOutputStream;
|
24
|
import java.io.IOException;
|
24
|
import java.io.IOException;
|
25
|
import java.lang.reflect.Modifier;
|
25
|
import java.lang.reflect.Modifier;
|
26
|
-import java.util.Arrays;
|
|
|
27
|
-import java.util.Comparator;
|
|
|
28
|
-import java.util.Objects;
|
|
|
29
|
-import java.util.StringJoiner;
|
|
|
|
|
26
|
+import java.util.*;
|
30
|
|
27
|
|
31
|
public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativeTranslator<Void> {
|
28
|
public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativeTranslator<Void> {
|
32
|
private static final JavaMethod BOOLEAN_PARSE = JavaMethod.getNativeStatic(JavaClass.BOOLEAN, "parseBoolean", "(Ljava/lang/String;)Z");
|
29
|
private static final JavaMethod BOOLEAN_PARSE = JavaMethod.getNativeStatic(JavaClass.BOOLEAN, "parseBoolean", "(Ljava/lang/String;)Z");
|
|
|
|
|
144
|
private static final JavaMethod ARRAYS_HASHCODE_DOUBLES = JavaMethod.getNativeStatic(JavaClass.ARRAYS, "hashCode", "([D)I");
|
141
|
private static final JavaMethod ARRAYS_HASHCODE_DOUBLES = JavaMethod.getNativeStatic(JavaClass.ARRAYS, "hashCode", "([D)I");
|
145
|
private static final JavaMethod ARRAYS_HASHCODE_CHARS = JavaMethod.getNativeStatic(JavaClass.ARRAYS, "hashCode", "([C)I");
|
142
|
private static final JavaMethod ARRAYS_HASHCODE_CHARS = JavaMethod.getNativeStatic(JavaClass.ARRAYS, "hashCode", "([C)I");
|
146
|
public static final JavaMethod OBJECT_HASHCODE = JavaMethod.getNativeVirtual(JavaClass.OBJECT, "hashCode", "()I");
|
143
|
public static final JavaMethod OBJECT_HASHCODE = JavaMethod.getNativeVirtual(JavaClass.OBJECT, "hashCode", "()I");
|
|
|
144
|
+ public static final JavaMethod OBJECT_EQUALS = JavaMethod.getNativeVirtual(JavaClass.OBJECT, "equals", "(Ljava/lang/Object)Z");
|
147
|
private static final JavaMethod COLLECTION_SIZE = JavaMethod.getNativeVirtual(JavaClass.COLLECTION, "size", "()I");
|
145
|
private static final JavaMethod COLLECTION_SIZE = JavaMethod.getNativeVirtual(JavaClass.COLLECTION, "size", "()I");
|
148
|
private static final JavaMethod COLLECTION_TOARRAY = JavaMethod.getNativeVirtual(JavaClass.COLLECTION, "toArray", "([Ljava/lang/Object;)[Ljava/lang/Object;");
|
146
|
private static final JavaMethod COLLECTION_TOARRAY = JavaMethod.getNativeVirtual(JavaClass.COLLECTION, "toArray", "([Ljava/lang/Object;)[Ljava/lang/Object;");
|
149
|
|
147
|
|
|
|
|
|
884
|
javaWriter.invokeVirtual(MAP_CONTAINS_KEY);
|
882
|
javaWriter.invokeVirtual(MAP_CONTAINS_KEY);
|
885
|
break;
|
883
|
break;
|
886
|
case ASSOC_EQUALS:
|
884
|
case ASSOC_EQUALS:
|
887
|
- throw new UnsupportedOperationException("Not yet supported!");
|
|
|
|
|
885
|
+ javaWriter.invokeVirtual(OBJECT_EQUALS);
|
888
|
case ASSOC_NOTEQUALS:
|
886
|
case ASSOC_NOTEQUALS:
|
889
|
- throw new UnsupportedOperationException("Not yet supported!");
|
|
|
|
|
887
|
+ javaWriter.invokeVirtual(OBJECT_EQUALS);
|
|
|
888
|
+ javaWriter.iXorVs1();
|
890
|
case ASSOC_SAME:
|
889
|
case ASSOC_SAME:
|
891
|
case GENERICMAP_SAME:
|
890
|
case GENERICMAP_SAME:
|
892
|
case ARRAY_SAME:
|
891
|
case ARRAY_SAME:
|