|  | #!/usr/bin/python | 
|  | # Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin <mst@redhat.com> | 
|  | # | 
|  | # This program is free software; you can redistribute it and/or modify | 
|  | # it under the terms of the GNU General Public License as published by | 
|  | # the Free Software Foundation; either version 2 of the License, or | 
|  | # (at your option) any later version. | 
|  | # | 
|  | # This program is distributed in the hope that it will be useful, | 
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | # GNU General Public License for more details. | 
|  | # | 
|  | # You should have received a copy of the GNU General Public License along | 
|  | # with this program; if not, see <http://www.gnu.org/licenses/>. | 
|  |  | 
|  | # Read a preprocessed ASL listing and put each ACPI_EXTRACT | 
|  | # directive in a comment, to make iasl skip it. | 
|  | # We also put each directive on a new line, the machinery | 
|  | # in tools/acpi_extract.py requires this. | 
|  |  | 
|  | import re; | 
|  | import sys; | 
|  | import fileinput; | 
|  |  | 
|  | def die(diag): | 
|  | sys.stderr.write("Error: %s\n" % (diag)) | 
|  | sys.exit(1) | 
|  |  | 
|  | # Note: () around pattern make split return matched string as part of list | 
|  | psplit = re.compile(r''' ( | 
|  | \b # At word boundary | 
|  | ACPI_EXTRACT_\w+ # directive | 
|  | \s+ # some whitespace | 
|  | \w+ # array name | 
|  | )''', re.VERBOSE); | 
|  |  | 
|  | lineno = 0 | 
|  | for line in fileinput.input(): | 
|  | # line number and debug string to output in case of errors | 
|  | lineno = lineno + 1 | 
|  | debug = "input line %d: %s" % (lineno, line.rstrip()) | 
|  |  | 
|  | s = psplit.split(line); | 
|  | # The way split works, each odd item is the matching ACPI_EXTRACT directive. | 
|  | # Put each in a comment, and on a line by itself. | 
|  | for i in range(len(s)): | 
|  | if (i % 2): | 
|  | sys.stdout.write("\n/* %s */\n" % s[i]) | 
|  | else: | 
|  | sys.stdout.write(s[i]) |