// Path: src/main/java/com/pidanic/saral/util/Type.java
// public interface Type {
//     String getName();
//     Class<?> getTypeClass();
//     String getDescriptor();
//     String getInternalName();
//     TypeSpecificOpcodes getTypeSpecificOpcode();
// }


import com.pidanic.saral.util.Type;
package com.pidanic.saral.domain.expression;


public abstract class UnaryExpression extends Expression {
    private Expression expression;
    private Sign sign;

// Path: src/main/java/com/pidanic/saral/util/Type.java
// public interface Type {
//     String getName();
//     Class<?> getTypeClass();
//     String getDescriptor();
//     String getInternalName();
//     TypeSpecificOpcodes getTypeSpecificOpcode();
// }


// Path: src/main/java/com/pidanic/saral/domain/expression/UnaryExpression.java
import com.pidanic.saral.util.Type;

package com.pidanic.saral.domain.expression;


public abstract class UnaryExpression extends Expression {
    private Expression expression;
    private Sign sign;

    public UnaryExpression(Type type, Sign sign, Expression left) {