private short parseRegister_byte(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v123" int val = Short.parseShort(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<8) { throw new SemanticException(input, "The maximum allowed register in this context is v255"); } return (short)val; }
private byte parseRegister_nibble(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12" int val = Byte.parseByte(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<4) { throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15"); } //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0; return (byte)val; }
private int parseRegister_short(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12345" int val = Integer.parseInt(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<16) { throw new SemanticException(input, "The maximum allowed register in this context is v65535"); } //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0; return val; }
throw new SemanticException(input, I_METHOD72, "A non-abstract/non-native method must have at least 1 instruction"); throw new SemanticException(input, (registers_directive70!=null?((CommonTree)registers_directive70.start):null), "A .locals directive is not valid in %s method", methodType); } else { throw new SemanticException(input, (registers_directive70!=null?((CommonTree)registers_directive70.start):null), "A .registers directive is not valid in %s method", methodType); throw new SemanticException(input, I_METHOD72, "try/catch blocks cannot be present in %s method", methodType); throw new SemanticException(input, I_METHOD72, "debug directives cannot be present in %s method", methodType); } else { if (isAbstract) { throw new SemanticException(input, I_METHOD72, "An abstract method cannot have any instructions"); throw new SemanticException(input, I_METHOD72, "A native method cannot have any instructions"); throw new SemanticException(input, I_METHOD72, "A .registers or .locals directive must be present for a non-abstract/non-final method"); throw new SemanticException(input, (registers_directive70!=null?((CommonTree)registers_directive70.start):null), "This method requires at least " + Integer.toString(method_stack.peek().methodParameterRegisters) + " registers, for the method parameters");
throw new SemanticException(input, I_PARAMETER96, "Register %s is larger than the maximum register v%d " + "for this method", (REGISTER95!=null?REGISTER95.getText():null), totalMethodRegisters-1); throw new SemanticException(input, I_PARAMETER96, "Register %s is not a parameter register.", (REGISTER95!=null?REGISTER95.getText():null)); throw new SemanticException(input, I_PARAMETER96, "Register %s is the second half of a wide parameter.", (REGISTER95!=null?REGISTER95.getText():null));
Annotation old = annotationMap.put(anno.getType(), anno); if (old != null) { throw new SemanticException(input, "Multiple annotations of type %s", anno.getType());
ex.printStackTrace(System.err); reportError(new SemanticException(input, ex));
throw new SemanticException(input, "The file must contain a .class directive"); throw new SemanticException(input, "The file must contain a .super directive");
throw new SemanticException(input, I_REGISTER_LIST107, "A list of registers can only have a maximum of 5 " + "registers. Use the <op>/range alternate opcode instead.");
throw new SemanticException(input, I_REGISTER_RANGE109, "A register range must have the lower register listed first");
throw new SemanticException(input, directive, "There can only be a single .registers or .locals directive in a method");
throw new SemanticException(input, "Initial field values can only be specified for static fields.");
throw new SemanticException(input, (retval.start), "Invalid element width: %d. Must be 1, 2, 4 or 8", elementWidth);
reportError(new SemanticException(input, ((CommonTree)retval.start), ex.getMessage())); recover(input, null);
private short parseRegister_byte(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v123" int val = Short.parseShort(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<8) { throw new SemanticException(input, "The maximum allowed register in this context is v255"); } return (short)val; }
private short parseRegister_byte(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v123" int val = Short.parseShort(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<8) { throw new SemanticException(input, "The maximum allowed register in this context is v255"); } return (short)val; }
private byte parseRegister_nibble(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12" int val = Byte.parseByte(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<4) { throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15"); } //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0; return (byte)val; }
private int parseRegister_short(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12345" int val = Integer.parseInt(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<16) { throw new SemanticException(input, "The maximum allowed register in this context is v65535"); } //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0; return val; }
private int parseRegister_short(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12345" int val = Integer.parseInt(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<16) { throw new SemanticException(input, "The maximum allowed register in this context is v65535"); } //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0; return val; }
private byte parseRegister_nibble(String register) throws SemanticException { int totalMethodRegisters = method_stack.peek().totalMethodRegisters; int methodParameterRegisters = method_stack.peek().methodParameterRegisters; //register should be in the format "v12" int val = Byte.parseByte(register.substring(1)); if (register.charAt(0) == 'p') { val = totalMethodRegisters - methodParameterRegisters + val; } if (val >= 2<<4) { throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15"); } //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0; return (byte)val; }