Fix some problems handling multiple filenames

This commit is contained in:
Douglas Clowes
2014-10-30 13:41:02 +11:00
parent d41e77cc79
commit a57852954e

View File

@ -1908,6 +1908,7 @@ def load_file(source_file, depth_list):
return LocalData
def dump_source_files(data):
global SourceFileList, SourceLineList
print "SourceFileList:", SourceFileList
print "SourceLineList:", SourceLineList
curr_file = -1
@ -1917,44 +1918,38 @@ def dump_source_files(data):
print "File:", SourceFileList[curr_file]
print "%4d:" % SourceLineList[line_no][1], line
def process_source(source_files):
global lexer, yaccer
def process_source(source_file):
global PathName, SourceFile
global TheDrivers
global NumberOfLinesIn
global NumberOfLinesIn, NumberOfLinesOut
global SourceData
global PrintedFileName
global SourceFileList, SourceLineList
TheDrivers = {}
#
# Build the lexer
#
lexer = lex.lex()
#
# Build the parser
#
#yaccer = yacc.yacc(tabmodule="gen_sct",outputdir="/tmp",write_tables=0,debug=0)
yaccer = yacc.yacc(debug=0)
for source_file in source_files:
PathName = os.path.realpath(os.path.abspath(os.path.dirname(source_file)))
SourceData = load_file(source_file, [])
NumberOfLinesIn = len(SourceData)
start_line = lexer.lineno
yaccer.parse('\n'.join(SourceData))
stop_line = lexer.lineno
if Verbose:
print 'Consumed file %s with %d lines (%d, %d)' % \
(source_file, NumberOfLinesIn, start_line, stop_line - 1)
lexer.lineno = 1
PrintedFileName = -1
NumberOfLinesIn = 0
NumberOfLinesOut = 0
SourceFileList = list()
SourceLineList = list()
PathName = os.path.realpath(os.path.abspath(os.path.dirname(source_file)))
SourceData = load_file(source_file, [])
NumberOfLinesIn = len(SourceData)
start_line = lexer.lineno
yaccer.parse('\n'.join(SourceData))
stop_line = lexer.lineno
if Verbose:
print 'Consumed file %s with %d lines (%d, %d)' % \
(source_file, NumberOfLinesIn, start_line, stop_line - 1)
lexer.lineno = 1
process_drivers(TheDrivers)
if args.list:
dump_source_files(SourceData)
def main():
global lexer, yaccer
global Verbose
global Move
global DriverDump
@ -1993,9 +1988,22 @@ def main():
Verbose = True
else:
Verbose = False
source_files = args.driver_source
if source_files:
process_source(source_files)
source_files = args.driver_source #
if source_files and len(source_files) > 0:
# Build the lexer
#
lexer = lex.lex()
#
# Build the parser
#
#yaccer = yacc.yacc(tabmodule="gen_sct",outputdir="/tmp",write_tables=0,debug=0)
yaccer = yacc.yacc(debug=0)
for source_file in source_files:
process_source(source_file)
if __name__ == "__main__":
main()