(ByteBuffer buffer, BHeader header, LHeaderParseState s)
| 287 | private static final double TEST_NUMBER = 3.14159265358979323846E7; |
| 288 | |
| 289 | @Override |
| 290 | protected void parse_main(ByteBuffer buffer, BHeader header, LHeaderParseState s) { |
| 291 | s.format = 0; |
| 292 | parse_endianness(buffer, header, s); |
| 293 | parse_int_size(buffer, header, s); |
| 294 | parse_size_t_size(buffer, header, s); |
| 295 | parse_instruction_size(buffer, header, s); |
| 296 | parse_extractor(buffer, header, s); |
| 297 | parse_number_size(buffer, header, s); |
| 298 | LNumberType lfloat = new LNumberType(s.lNumberSize, false, LNumberType.NumberMode.MODE_NUMBER); |
| 299 | LNumberType linteger = new LNumberType(s.lNumberSize, true, LNumberType.NumberMode.MODE_NUMBER); |
| 300 | buffer.mark(); |
| 301 | double floatcheck = lfloat.parse(buffer, header).value(); |
| 302 | buffer.reset(); |
| 303 | double intcheck = linteger.parse(buffer, header).value(); |
| 304 | if(floatcheck == lfloat.convert(TEST_NUMBER)) { |
| 305 | s.number = lfloat; |
| 306 | } else if(intcheck == linteger.convert(TEST_NUMBER)) { |
| 307 | s.number = linteger; |
| 308 | } else { |
| 309 | throw new IllegalStateException("The input chunk is using an unrecognized number format: " + intcheck); |
| 310 | } |
| 311 | } |
| 312 | |
| 313 | @Override |
| 314 | public List<Directive> get_directives() { |
nothing calls this directly
no test coverage detected