Chromium Code Reviews| Index: src/trusted/validator_arm/generate_decoder.py |
| =================================================================== |
| --- src/trusted/validator_arm/generate_decoder.py (revision 8275) |
| +++ src/trusted/validator_arm/generate_decoder.py (working copy) |
| @@ -19,7 +19,8 @@ |
| import re |
| import sys |
| import dgen_input |
| -import dgen_output |
| +import dgen_decoder_output |
| +import dgen_test_output |
| def _localize_filename(filename): |
| """ Strips off directories above 'native_client', returning |
| @@ -39,38 +40,43 @@ |
| print "Decoder Generator reading ", table_filename |
| f = open(table_filename, 'r') |
| - tables = dgen_input.parse_tables(f) |
| + decoder = dgen_input.parse_tables(f) |
| f.close() |
| - print "Successful - got %d tables." % len(tables) |
| + print "Successful - got %d tables." % len(decoder.tables()) |
| print "Generating %s..." % output_filename |
| f = open(output_filename, 'w') |
| - if output_filename.endswith('named.h'): |
| - dgen_output.generate_decoder_h(tables, |
| - decoder_name, |
| - _localize_filename(output_filename), |
| - True, |
| - dgen_output.COutput(f)) |
| + if output_filename.endswith('tests.cc'): |
| + dgen_test_output.generate_tests_cc(decoder, |
| + decoder_name, |
| + f) |
| + elif output_filename.endswith('named_classes.h'): |
| + dgen_test_output.generate_named_classes_h(decoder, |
|
robertm
2012/04/17 17:12:19
put args on new line to avoid 80char limit
Karl
2012/04/17 19:28:31
Done.
|
| + decoder_name, |
| + _localize_filename(output_filename), |
| + f) |
| + elif output_filename.endswith('named_decoder.h'): |
| + dgen_test_output.generate_named_decoder_h(decoder, |
| + decoder_name, |
| + _localize_filename(output_filename), |
| + f) |
| elif output_filename.endswith('.h'): |
| - dgen_output.generate_decoder_h(tables, |
| + dgen_decoder_output.generate_h(decoder, |
| decoder_name, |
| _localize_filename(output_filename), |
| - False, |
| - dgen_output.COutput(f)) |
| + f) |
| elif output_filename.endswith('named.cc'): |
| - dgen_output.generate_decoder_cc(tables, |
| - decoder_name, |
| - _localize_filename(output_filename), |
| - True, |
| - dgen_output.COutput(f)) |
| + dgen_test_output.generate_named_cc(decoder, |
| + decoder_name, |
| + _localize_filename(output_filename), |
| + f) |
| elif output_filename.endswith('.cc'): |
| - dgen_output.generate_decoder_cc(tables, |
| + dgen_decoder_output.generate_cc(decoder, |
| decoder_name, |
| _localize_filename(output_filename), |
| - False, |
| - dgen_output.COutput(f)) |
| + f) |
| else: |
| print 'Error: output filename not of form "*.{h,cc}"' |
| f.close() |