| 97 | | newheader, tag, lengthdefined = load_header(loadport) |
|---|
| 98 | | newtag = newheader ? "New" : "Old" |
|---|
| 99 | | dumpport.puts "#{newtag}: #{taglabel(tag)}(tag #{tag})(#{lengthdefined} bytes)\n" |
|---|
| 100 | | initpos = loadport.readlength |
|---|
| 101 | | dumpport.indent(4) do |
|---|
| 102 | | unless TAG_SCANNER.key?(tag) |
|---|
| 103 | | dumpport.puts format("Not supported", 4) |
|---|
| 104 | | loadport.read(lengthdefined) # skip |
|---|
| 105 | | else |
|---|
| 106 | | TAG_SCANNER[tag].call(dumpport, loadport, lengthdefined) |
|---|
| 107 | | readlength = loadport.readlength - initpos |
|---|
| 108 | | if readlength != lengthdefined |
|---|
| 109 | | raise "Parsing failed: #{readlength}/#{lengthdefined}" |
|---|
| | 97 | initpos = nil |
|---|
| | 98 | begin |
|---|
| | 99 | newheader, tag, lengthdefined = load_header(loadport) |
|---|
| | 100 | newtag = newheader ? "New" : "Old" |
|---|
| | 101 | dumpport.puts "#{newtag}: #{taglabel(tag)}(tag #{tag})(#{lengthdefined} bytes)\n" |
|---|
| | 102 | initpos = loadport.readlength |
|---|
| | 103 | dumpport.indent(4) do |
|---|
| | 104 | unless TAG_SCANNER.key?(tag) |
|---|
| | 105 | dumpport.puts format("Not supported", 4) |
|---|
| | 106 | loadport.read(lengthdefined) # skip |
|---|
| | 107 | else |
|---|
| | 108 | TAG_SCANNER[tag].call(dumpport, loadport, lengthdefined) |
|---|
| | 109 | readlength = loadport.readlength - initpos |
|---|
| | 110 | if readlength != lengthdefined |
|---|
| | 111 | raise "Parsing failed: #{readlength}/#{lengthdefined}" |
|---|
| | 112 | end |
|---|