Add %include facility to SCT template files
This commit is contained in:
@ -65,7 +65,7 @@ SourceLineList = []
|
|||||||
def PrintParseError(message):
|
def PrintParseError(message):
|
||||||
global PrintedFileName
|
global PrintedFileName
|
||||||
global lexer
|
global lexer
|
||||||
global SourceData
|
global SourceLineList, SourceData
|
||||||
curr_line = lexer.lineno
|
curr_line = lexer.lineno
|
||||||
curr_file = SourceLineList[curr_line - 1][0]
|
curr_file = SourceLineList[curr_line - 1][0]
|
||||||
if curr_file != PrintedFileName:
|
if curr_file != PrintedFileName:
|
||||||
@ -936,10 +936,10 @@ def dump_driver_groups(groups, indent):
|
|||||||
if Comment in groups[item]:
|
if Comment in groups[item]:
|
||||||
print indent + ' # %s = \'%s\'' % (Comment, groups[item][Comment])
|
print indent + ' # %s = \'%s\'' % (Comment, groups[item][Comment])
|
||||||
for subitem in sorted([x for x in groups[item] if not x in Deferred]):
|
for subitem in sorted([x for x in groups[item] if not x in Deferred]):
|
||||||
print indent + ' ', subitem, '=', groups[item][subitem]
|
print indent + ' ', subitem, '= \'%s\'' % groups[item][subitem]
|
||||||
if 'GroupProperty' in groups[item]:
|
if 'GroupProperty' in groups[item]:
|
||||||
for subitem in groups[item]['GroupProperty']:
|
for subitem in groups[item]['GroupProperty']:
|
||||||
print indent + ' GroupProperty', subitem, '=', groups[item]['GroupProperty'][subitem]
|
print indent + ' GroupProperty', subitem, '= \'%s\'' % groups[item]['GroupProperty'][subitem]
|
||||||
dump_driver_vars(groups[item]['Vars'], indent)
|
dump_driver_vars(groups[item]['Vars'], indent)
|
||||||
dump_driver_groups(groups[item]['Groups'], indent + ' ')
|
dump_driver_groups(groups[item]['Groups'], indent + ' ')
|
||||||
print indent + '}'
|
print indent + '}'
|
||||||
@ -1819,9 +1819,36 @@ def load_file(source_file, depth_list):
|
|||||||
fd = open(SourceFile, 'r')
|
fd = open(SourceFile, 'r')
|
||||||
LocalData = []
|
LocalData = []
|
||||||
line_no = 0
|
line_no = 0
|
||||||
|
execing = False
|
||||||
|
exec_input = []
|
||||||
|
exec_line = 0
|
||||||
for line in fd:
|
for line in fd:
|
||||||
line_no += 1
|
line_no += 1
|
||||||
line = line.rstrip('\n')
|
line = line.rstrip('\n')
|
||||||
|
if execing:
|
||||||
|
match = re.match(r'\s*%end', line, flags=re.IGNORECASE)
|
||||||
|
if match:
|
||||||
|
#print "exec_input:"
|
||||||
|
#for temp_line in exec_input:
|
||||||
|
# print " " + temp_line
|
||||||
|
kw = {}
|
||||||
|
kw['exec_output'] = []
|
||||||
|
exec('\n'.join(exec_input)) in kw
|
||||||
|
#print "exec_output:"
|
||||||
|
for line in kw['exec_output']:
|
||||||
|
# print " " + line
|
||||||
|
LocalData.append(line)
|
||||||
|
SourceLineList.append((curr_file, exec_line))
|
||||||
|
exec_input = []
|
||||||
|
execing = False
|
||||||
|
else:
|
||||||
|
exec_input.append(line)
|
||||||
|
continue
|
||||||
|
match = re.match(r'\s*%exec', line, flags=re.IGNORECASE)
|
||||||
|
if match:
|
||||||
|
execing = True
|
||||||
|
exec_line = line_no
|
||||||
|
continue
|
||||||
match = re.match(r'\s*%include\s+', line, flags=re.IGNORECASE)
|
match = re.match(r'\s*%include\s+', line, flags=re.IGNORECASE)
|
||||||
if match:
|
if match:
|
||||||
new_source = re.sub(r'\s*%include\s+(.*)', r'\1', line, flags=re.IGNORECASE)
|
new_source = re.sub(r'\s*%include\s+(.*)', r'\1', line, flags=re.IGNORECASE)
|
||||||
|
Reference in New Issue
Block a user