package es.uniovi.reflection.patternmining.category;

import es.uniovi.reflection.patternmining.model.interfaces.ExpressionChild;
import es.uniovi.reflection.patternmining.model.interfaces.ExpressionParent;
import es.uniovi.reflection.patternmining.model.interfaces.StatementChild;
import es.uniovi.reflection.patternmining.model.interfaces.StatementParent;

public enum ExpressionCategory implements StatementParent, ExpressionParent, StatementChild, ExpressionChild{
	None, Assignment, Annotation, ArrayAccess, CastExpression, ConditionalExpression, LambdaExpression, LambdaExpressionParameter, LambdaExpressionBody, ArithmeticUnary, 
	PrefixIncrementUnary, PostfixIncrementUnary, PrefixDecrementUnary, PostfixDecrementUnary, BitwiseUnary, LogicalUnary, NullLiteral,
	IntLiteral, StringLiteral, DoubleLiteral, CharLiteral, LongLiteral, FloatLiteral, ShortLiteral, BooleanLiteral, 
	ArithmeticBinary, ComparisonBinary, LogicalBinary, BitwiseBinary, Identifier, NewArray, NewClass, InstanceOf, 
	MemberSelect, MemberReference, MethodInvocation, Variable, CompoundAssignment
}
