blob: f01e40c864cdda41d5f6d2ffe903176458568a82 [file] [log] [blame]
/*
* Copyright (C) 2012 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.ir;
import com.android.jack.backend.dex.annotations.AnnotationMethodDefaultValue;
import com.android.jack.ir.ast.JAbsentArrayDimension;
import com.android.jack.ir.ast.JAddOperation;
import com.android.jack.ir.ast.JAndOperation;
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JArrayLength;
import com.android.jack.ir.ast.JArrayRef;
import com.android.jack.ir.ast.JArrayType;
import com.android.jack.ir.ast.JAsgAddOperation;
import com.android.jack.ir.ast.JAsgBitAndOperation;
import com.android.jack.ir.ast.JAsgBitOrOperation;
import com.android.jack.ir.ast.JAsgBitXorOperation;
import com.android.jack.ir.ast.JAsgConcatOperation;
import com.android.jack.ir.ast.JAsgDivOperation;
import com.android.jack.ir.ast.JAsgModOperation;
import com.android.jack.ir.ast.JAsgMulOperation;
import com.android.jack.ir.ast.JAsgOperation;
import com.android.jack.ir.ast.JAsgShlOperation;
import com.android.jack.ir.ast.JAsgShrOperation;
import com.android.jack.ir.ast.JAsgShruOperation;
import com.android.jack.ir.ast.JAsgSubOperation;
import com.android.jack.ir.ast.JAssertStatement;
import com.android.jack.ir.ast.JBitAndOperation;
import com.android.jack.ir.ast.JBitOrOperation;
import com.android.jack.ir.ast.JBitXorOperation;
import com.android.jack.ir.ast.JBlock;
import com.android.jack.ir.ast.JBooleanLiteral;
import com.android.jack.ir.ast.JBreakStatement;
import com.android.jack.ir.ast.JByteLiteral;
import com.android.jack.ir.ast.JCaseStatement;
import com.android.jack.ir.ast.JCatchBlock;
import com.android.jack.ir.ast.JCharLiteral;
import com.android.jack.ir.ast.JClassLiteral;
import com.android.jack.ir.ast.JConcatOperation;
import com.android.jack.ir.ast.JConditionalExpression;
import com.android.jack.ir.ast.JConstructor;
import com.android.jack.ir.ast.JContinueStatement;
import com.android.jack.ir.ast.JDefinedAnnotationType;
import com.android.jack.ir.ast.JDefinedClass;
import com.android.jack.ir.ast.JDefinedEnum;
import com.android.jack.ir.ast.JDefinedInterface;
import com.android.jack.ir.ast.JDivOperation;
import com.android.jack.ir.ast.JDoStatement;
import com.android.jack.ir.ast.JDoubleLiteral;
import com.android.jack.ir.ast.JDynamicCastOperation;
import com.android.jack.ir.ast.JEnumField;
import com.android.jack.ir.ast.JEnumLiteral;
import com.android.jack.ir.ast.JEqOperation;
import com.android.jack.ir.ast.JExpressionStatement;
import com.android.jack.ir.ast.JField;
import com.android.jack.ir.ast.JFieldInitializer;
import com.android.jack.ir.ast.JFieldRef;
import com.android.jack.ir.ast.JFloatLiteral;
import com.android.jack.ir.ast.JForStatement;
import com.android.jack.ir.ast.JGtOperation;
import com.android.jack.ir.ast.JGteOperation;
import com.android.jack.ir.ast.JIfStatement;
import com.android.jack.ir.ast.JInstanceOf;
import com.android.jack.ir.ast.JIntLiteral;
import com.android.jack.ir.ast.JLabel;
import com.android.jack.ir.ast.JLabeledStatement;
import com.android.jack.ir.ast.JLambda;
import com.android.jack.ir.ast.JLocal;
import com.android.jack.ir.ast.JLocalRef;
import com.android.jack.ir.ast.JLongLiteral;
import com.android.jack.ir.ast.JLtOperation;
import com.android.jack.ir.ast.JLteOperation;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JMethodBody;
import com.android.jack.ir.ast.JMethodCall;
import com.android.jack.ir.ast.JModOperation;
import com.android.jack.ir.ast.JMulOperation;
import com.android.jack.ir.ast.JNativeMethodBody;
import com.android.jack.ir.ast.JNeqOperation;
import com.android.jack.ir.ast.JNewArray;
import com.android.jack.ir.ast.JNewInstance;
import com.android.jack.ir.ast.JNullLiteral;
import com.android.jack.ir.ast.JNullType;
import com.android.jack.ir.ast.JOrOperation;
import com.android.jack.ir.ast.JParameter;
import com.android.jack.ir.ast.JParameterRef;
import com.android.jack.ir.ast.JPhantomAnnotationType;
import com.android.jack.ir.ast.JPhantomClass;
import com.android.jack.ir.ast.JPhantomClassOrInterface;
import com.android.jack.ir.ast.JPhantomEnum;
import com.android.jack.ir.ast.JPhantomInterface;
import com.android.jack.ir.ast.JPostfixDecOperation;
import com.android.jack.ir.ast.JPostfixIncOperation;
import com.android.jack.ir.ast.JPrefixBitNotOperation;
import com.android.jack.ir.ast.JPrefixDecOperation;
import com.android.jack.ir.ast.JPrefixIncOperation;
import com.android.jack.ir.ast.JPrefixNegOperation;
import com.android.jack.ir.ast.JPrefixNotOperation;
import com.android.jack.ir.ast.JPrimitiveType.JBooleanType;
import com.android.jack.ir.ast.JPrimitiveType.JByteType;
import com.android.jack.ir.ast.JPrimitiveType.JCharType;
import com.android.jack.ir.ast.JPrimitiveType.JDoubleType;
import com.android.jack.ir.ast.JPrimitiveType.JFloatType;
import com.android.jack.ir.ast.JPrimitiveType.JIntType;
import com.android.jack.ir.ast.JPrimitiveType.JLongType;
import com.android.jack.ir.ast.JPrimitiveType.JShortType;
import com.android.jack.ir.ast.JPrimitiveType.JVoidType;
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;
import com.android.jack.ir.ast.JShruOperation;
import com.android.jack.ir.ast.JStringLiteral;
import com.android.jack.ir.ast.JSubOperation;
import com.android.jack.ir.ast.JSwitchStatement;
import com.android.jack.ir.ast.JSynchronizedBlock;
import com.android.jack.ir.ast.JThisRef;
import com.android.jack.ir.ast.JThrowStatement;
import com.android.jack.ir.ast.JTryStatement;
import com.android.jack.ir.ast.JWhileStatement;
import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.ast.marker.SimpleName;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
import com.android.jack.transformations.EmptyClinit;
import com.android.jack.transformations.ast.BooleanTestOutsideIf;
import com.android.jack.transformations.ast.ImplicitBoxingAndUnboxing;
import com.android.jack.transformations.ast.ImplicitCast;
import com.android.jack.transformations.ast.InitInNewArray;
import com.android.jack.transformations.ast.JPrimitiveClassLiteral;
import com.android.jack.transformations.ast.MultiDimensionNewArray;
import com.android.jack.transformations.ast.removeinit.FieldInitMethod;
import com.android.jack.transformations.ast.removeinit.FieldInitMethodCall;
import com.android.jack.transformations.ast.switches.UselessSwitches;
import com.android.jack.transformations.cast.SourceCast;
import com.android.jack.transformations.lambda.DefaultBridgeIntoInterface;
import com.android.sched.item.AbstractComponent;
import com.android.sched.item.ComposedOf;
import com.android.sched.item.Description;
import com.android.sched.item.Name;
/**
* Tag containing all JNodes, tags or markers that represent the Java source.
*/
@Name("Java Source IR")
@Description("All JNodes, tags or markers that represent the Java source.")
@ComposedOf({AnnotationMethodDefaultValue.class,
BooleanTestOutsideIf.class,
DefaultBridgeIntoInterface.class,
EmptyClinit.class,
FieldInitMethod.class,
FieldInitMethodCall.class,
ImplicitBoxingAndUnboxing.class,
ImplicitCast.class,
InitInNewArray.class,
JAbsentArrayDimension.class,
JAddOperation.class,
JAndOperation.class,
JAnnotation.class,
JAnnotation.RepeatedAnnotation.class,
JArrayLength.class,
JArrayRef.class,
JArrayType.class,
JArrayType.class,
JAsgAddOperation.class,
JAsgBitAndOperation.class,
JAsgBitOrOperation.class,
JAsgBitXorOperation.class,
JAsgConcatOperation.class,
JAsgDivOperation.class,
JAsgModOperation.class,
JAsgMulOperation.class,
JAsgOperation.class,
JAsgShlOperation.class,
JAsgShrOperation.class,
JAsgShruOperation.class,
JAsgSubOperation.class,
JAssertStatement.class,
JBitAndOperation.class,
JBitOrOperation.class,
JBitXorOperation.class,
JBlock.class,
JBooleanLiteral.class,
JBooleanType.class,
JBreakStatement.class,
JByteLiteral.class,
JByteType.class,
JCaseStatement.class,
JCatchBlock.class,
JCharLiteral.class,
JCharType.class,
JClassLiteral.class,
JConcatOperation.class,
JConditionalExpression.class,
JConstructor.class,
JContinueStatement.class,
JDefinedAnnotationType.class,
JDefinedClass.class,
JDefinedEnum.class,
JDefinedInterface.class,
JDivOperation.class,
JDoStatement.class,
JDoubleLiteral.class,
JDoubleType.class,
JDynamicCastOperation.class,
JEnumField.class,
JEnumLiteral.class,
JEqOperation.class,
JExpressionStatement.class,
JField.class,
JFieldInitializer.class,
JFieldRef.class,
JFloatLiteral.class,
JFloatType.class,
JForStatement.class,
JGteOperation.class,
JGtOperation.class,
JIfStatement.class,
JInstanceOf.class,
JIntLiteral.class,
JIntType.class,
JLabel.class,
JLabeledStatement.class,
JLambda.class,
JLocal.class,
JLocalRef.class,
JLongLiteral.class,
JLongType.class,
JLteOperation.class,
JLtOperation.class,
JMethod.class,
JMethodBody.class,
JMethodCall.class,
JModOperation.class,
JMulOperation.class,
JNativeMethodBody.class,
JNeqOperation.class,
JNewArray.class,
JNewInstance.class,
JNullLiteral.class,
JNullType.class,
JOrOperation.class,
JParameter.class,
JParameterRef.class,
JPhantomAnnotationType.class,
JPhantomClass.class,
JPhantomClassOrInterface.class,
JPhantomEnum.class,
JPhantomInterface.class,
JPostfixDecOperation.class,
JPostfixIncOperation.class,
JPrefixBitNotOperation.class,
JPrefixDecOperation.class,
JPrefixIncOperation.class,
JPrefixNegOperation.class,
JPrefixNotOperation.class,
JPrimitiveClassLiteral.class,
JSession.class,
JReturnStatement.class,
JShlOperation.class,
JShortLiteral.class,
JShortType.class,
JShrOperation.class,
JShruOperation.class,
JStringLiteral.class,
JSubOperation.class,
JSwitchStatement.class,
JSwitchStatement.SwitchWithEnum.class,
JSynchronizedBlock.class,
JThisRef.class,
JThrowStatement.class,
JTryStatement.class,
JTryStatement.FinallyBlock.class,
JTryStatement.TryWithResourcesForm.class,
JVoidType.class,
JWhileStatement.class,
MultiDimensionNewArray.class,
GenericSignature.class,
SimpleName.class,
SourceCast.class,
ThisRefTypeInfo.class,
ThrownExceptionMarker.class,
UselessSwitches.class})
public class JavaSourceIr implements AbstractComponent {
}