kopia lustrzana https://github.com/maccasoft/z80-tools
63 wiersze
1.1 KiB
Java
63 wiersze
1.1 KiB
Java
package nl.grauw.glass.expressions;
|
|
|
|
public class FlagOrRegister extends Literal {
|
|
|
|
public static FlagOrRegister C = new FlagOrRegister(Flag.C, Register.C);
|
|
|
|
private final Flag flag;
|
|
private final Register register;
|
|
|
|
public FlagOrRegister(Flag flag, Register register) {
|
|
this.flag = flag;
|
|
this.register = register;
|
|
}
|
|
|
|
@Override
|
|
public FlagOrRegister copy(Context context) {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public boolean isFlag() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public Flag getFlag() {
|
|
return flag;
|
|
}
|
|
|
|
@Override
|
|
public boolean isRegister() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public Register getRegister() {
|
|
return register;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return flag.toString();
|
|
}
|
|
|
|
@Override
|
|
public String toDebugString() {
|
|
return flag.toString();
|
|
}
|
|
|
|
public static Literal getByName(String name) {
|
|
Flag flag = Flag.getByName(name);
|
|
Register register = Register.getByName(name);
|
|
if (flag != null && register == null)
|
|
return flag;
|
|
if (flag == null && register != null)
|
|
return register;
|
|
if (flag != null && register != null)
|
|
return new FlagOrRegister(flag, register);
|
|
return null;
|
|
}
|
|
|
|
}
|