| #!/usr/bin/env python3 |
| |
| # Copyright 2018 the V8 project authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # vim:fenc=utf-8:shiftwidth=2:tabstop=2:softtabstop=2:extandtab |
| |
| """ |
| Generate object-macros-undef.h from object-macros.h. |
| """ |
| |
| import os.path |
| import re |
| import sys |
| |
| INPUT = 'src/objects/object-macros.h' |
| OUTPUT = 'src/objects/object-macros-undef.h' |
| HEADER = """// Copyright 2016 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Generate this file using the {} script. |
| |
| // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD |
| |
| """.format(os.path.basename(__file__)) |
| |
| |
| def main(): |
| if not os.path.isfile(INPUT): |
| sys.exit("Input file {} does not exist; run this script in a v8 checkout." |
| .format(INPUT)) |
| if not os.path.isfile(OUTPUT): |
| sys.exit("Output file {} does not exist; run this script in a v8 checkout." |
| .format(OUTPUT)) |
| regexp = re.compile('^#define (\w+)') |
| seen = set() |
| with open(INPUT, 'r') as infile, open(OUTPUT, 'w') as outfile: |
| outfile.write(HEADER) |
| for line in infile: |
| match = regexp.match(line) |
| if match and match.group(1) not in seen: |
| seen.add(match.group(1)) |
| outfile.write('#undef {}\n'.format(match.group(1))) |
| |
| if __name__ == "__main__": |
| main() |