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