summaryrefslogtreecommitdiffstats
path: root/jack/src/com/android/jack/jayce/v0002
diff options
context:
space:
mode:
authorMikael Peltier <mikaelpeltier@google.com>2014-11-05 16:35:51 +0000
committerMikael Peltier <mikaelpeltier@google.com>2014-11-05 16:35:51 +0000
commit989f173bfe28131770bd611b35cc330d0345769f (patch)
tree17550b2fd17cf43a04a010bd76b35cd867ec1920 /jack/src/com/android/jack/jayce/v0002
parent45487cf414cc67a29c67baa028cbabe624d5a9ba (diff)
downloadtoolchain_jack-989f173bfe28131770bd611b35cc330d0345769f.zip
toolchain_jack-989f173bfe28131770bd611b35cc330d0345769f.tar.gz
toolchain_jack-989f173bfe28131770bd611b35cc330d0345769f.tar.bz2
Revert "Remove NProgram since it is no longer used"
This reverts commit 45487cf414cc67a29c67baa028cbabe624d5a9ba. Change-Id: Icd925f6d4b31cb36cb5e32a021c074439f76a642
Diffstat (limited to 'jack/src/com/android/jack/jayce/v0002')
-rw-r--r--jack/src/com/android/jack/jayce/v0002/NodeFactory.java8
-rw-r--r--jack/src/com/android/jack/jayce/v0002/io/Token.java8
-rw-r--r--jack/src/com/android/jack/jayce/v0002/nodes/NProgram.java78
3 files changed, 94 insertions, 0 deletions
diff --git a/jack/src/com/android/jack/jayce/v0002/NodeFactory.java b/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
index c883a0d..392deda 100644
--- a/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
+++ b/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
@@ -114,6 +114,7 @@ import com.android.jack.ir.ast.JPrefixNegOperation;
import com.android.jack.ir.ast.JPrefixNotOperation;
import com.android.jack.ir.ast.JReinterpretCastOperation;
import com.android.jack.ir.ast.JReturnStatement;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.ir.ast.JShlOperation;
import com.android.jack.ir.ast.JShortLiteral;
import com.android.jack.ir.ast.JShrOperation;
@@ -226,6 +227,7 @@ import com.android.jack.jayce.v0002.nodes.NPrefixDecOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixIncOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixNegOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixNotOperation;
+import com.android.jack.jayce.v0002.nodes.NProgram;
import com.android.jack.jayce.v0002.nodes.NReinterpretCastOperation;
import com.android.jack.jayce.v0002.nodes.NReturnStatement;
import com.android.jack.jayce.v0002.nodes.NShlOperation;
@@ -674,6 +676,12 @@ public class NodeFactory {
}
@Override
+ public boolean visit(@Nonnull JSession x) {
+ newNode = new NProgram();
+ return false;
+ }
+
+ @Override
public boolean visit(@Nonnull JReturnStatement x) {
newNode = new NReturnStatement();
return false;
diff --git a/jack/src/com/android/jack/jayce/v0002/io/Token.java b/jack/src/com/android/jack/jayce/v0002/io/Token.java
index 7e58ec6..46d62fa 100644
--- a/jack/src/com/android/jack/jayce/v0002/io/Token.java
+++ b/jack/src/com/android/jack/jayce/v0002/io/Token.java
@@ -111,6 +111,7 @@ import com.android.jack.jayce.v0002.nodes.NPrefixDecOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixIncOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixNegOperation;
import com.android.jack.jayce.v0002.nodes.NPrefixNotOperation;
+import com.android.jack.jayce.v0002.nodes.NProgram;
import com.android.jack.jayce.v0002.nodes.NReinterpretCastOperation;
import com.android.jack.jayce.v0002.nodes.NReturnStatement;
import com.android.jack.jayce.v0002.nodes.NShlOperation;
@@ -806,6 +807,13 @@ public enum Token {
return new NPrefixNotOperation();
}
},
+ PROGRAM("program", NodeLevel.TYPES) {
+ @Nonnull
+ @Override
+ public NNode newNode() {
+ return new NProgram();
+ }
+ },
REINTERPRETCAST_OPERATION("reinterpret-cast") {
@Override
@Nonnull
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NProgram.java b/jack/src/com/android/jack/jayce/v0002/nodes/NProgram.java
new file mode 100644
index 0000000..ce4ad19
--- /dev/null
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NProgram.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.jayce.v0002.nodes;
+
+import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JSession;
+import com.android.jack.jayce.v0002.NNode;
+import com.android.jack.jayce.v0002.io.ExportSession;
+import com.android.jack.jayce.v0002.io.ImportHelper;
+import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
+import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
+import com.android.jack.jayce.v0002.io.Token;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Root representing an entire Java program.
+ */
+public class NProgram extends NNode {
+
+ @Nonnull
+ public static final Token TOKEN = Token.PROGRAM;
+
+ @Nonnull
+ public List<NDeclaredType> allTypes = Collections.emptyList();
+
+ @Override
+ public void importFromJast(@Nonnull ImportHelper loader, @Nonnull Object node) {
+ JSession session = (JSession) node;
+ allTypes = loader.load(NDeclaredType.class, session.getTypesToEmit());
+ }
+
+ @Override
+ @Nonnull
+ public JSession exportAsJast(@Nonnull ExportSession exportSession) {
+ JSession session = new JSession();
+ for (NDeclaredType declaredType : allTypes) {
+ JDefinedClassOrInterface jDeclaredType = declaredType.exportAsJast(exportSession);
+ session.addTypeToEmit(jDeclaredType);
+ }
+ return session;
+ }
+
+ @Override
+ public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
+ out.writeNodes(allTypes);
+ }
+
+ @Override
+ public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ allTypes = in.readNodes(NDeclaredType.class);
+ }
+
+ @Override
+ @Nonnull
+ public Token getToken() {
+ return TOKEN;
+ }
+
+}