Fix some problems handling multiple filenames
This commit is contained in:
@ -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()
|
||||
|
Reference in New Issue
Block a user