RoseFE_SourceProcessing

changeset 532:b9c7d381110e

fixed issue with output format not being reset for every file with separateOutput option
author hcm@serenity
date Tue Dec 01 12:19:08 2009 -0600 (2009-12-01)
parents 06b9b7f3d4dc
children ed173da6b09f
files PP/unitPostProcess.py postProcess.py
line diff
     1.1 --- a/PP/unitPostProcess.py	Tue Dec 01 11:18:59 2009 -0600
     1.2 +++ b/PP/unitPostProcess.py	Tue Dec 01 12:19:08 2009 -0600
     1.3 @@ -9,7 +9,7 @@
     1.4  import PyFort.intrinsic as intrinsic
     1.5  from PyFort.fortUnit import fortUnitIterator
     1.6  from PP.templateExpansion import *
     1.7 -from PyFort.flow import setOutputFormat, outputFormat
     1.8 +import PyFort.flow as flow
     1.9  from PyFort.fortFile import Ffile
    1.10  import re
    1.11  import copy
    1.12 @@ -807,15 +807,15 @@
    1.13  
    1.14          # write all declarations to _activeVariablesFileName
    1.15          if (UnitPostProcessor._activeVariablesFileName):
    1.16 -            currentOutputFormat = outputFormat
    1.17 +            currentOutputFormat = flow.outputFormat
    1.18              (base,activeOutputFormat) = os.path.splitext(UnitPostProcessor._activeVariablesFileName)
    1.19              # set active variables file output format
    1.20 -            setOutputFormat(Ffile.get_format(activeOutputFormat))
    1.21 +            flow.setOutputFormat(Ffile.get_format(activeOutputFormat))
    1.22              self.__active_file = open(UnitPostProcessor._activeVariablesFileName,'a')
    1.23              self.__myUnit.printDecls(self.__active_file)
    1.24              self.__active_file.close()
    1.25              # restore original output format
    1.26 -            setOutputFormat(currentOutputFormat)
    1.27 +            flow.setOutputFormat(currentOutputFormat)
    1.28  
    1.29          if (self.__recursionDepth is not 0):
    1.30              raise PostProcessError('Recursion error in unitPostProcess: final recursion depth is not zero')
     2.1 --- a/postProcess.py	Tue Dec 01 11:18:59 2009 -0600
     2.2 +++ b/postProcess.py	Tue Dec 01 12:19:08 2009 -0600
     2.3 @@ -18,6 +18,7 @@
     2.4  from PyIR.prog1 import Prog1
     2.5  
     2.6  from PyFort.flow import setOutputLineLength, setInputLineLength, setOutputFormat
     2.7 +import PyFort.flow as flow
     2.8  from PyFort.fortUnit import Unit,fortUnitIterator
     2.9  from PyFort.fortFile import Ffile
    2.10  import PyFort.fortExp as fe
    2.11 @@ -197,11 +198,12 @@
    2.12              if config.output:
    2.13                  ext = os.path.splitext(config.output)[1]
    2.14                  config.outputFormat = Ffile.get_format(ext)
    2.15 -            else:
    2.16 +                setOutputFormat(config.outputFormat)
    2.17 +            elif not config.separateOutput:
    2.18                  config.outputFormat = config.inputFormat
    2.19 +                setOutputFormat(config.outputFormat)
    2.20          elif (config.outputFormat<>'fixed') and (config.outputFormat<>'free'):
    2.21              opt.error("outputFormat option must be specified with either 'fixed' or 'free' as an argument")
    2.22 -        setOutputFormat(config.outputFormat)
    2.23  
    2.24          if config.inputLineLength:
    2.25              if config.inputLineLength < 72 or \
    2.26 @@ -292,6 +294,9 @@
    2.27          # SEPARATE OUTPUT INTO FILES AS SPECIFIED BY PRAGMAS
    2.28          elif config.separateOutput:
    2.29              out = None
    2.30 +            setFormat = False
    2.31 +            if config.outputFormat == None:
    2.32 +                setFormat = True
    2.33              for aUnit in fortUnitIterator(inputFile,config.inputFormat):
    2.34                  # We expect to find file pragmas in the cmnt section of units exclusively
    2.35                  if aUnit.cmnt:
    2.36 @@ -304,11 +309,9 @@
    2.37                          outputDirectory = config.pathPrefix+head+config.pathSuffix
    2.38                          if not os.path.exists(outputDirectory): os.makedirs(outputDirectory)
    2.39                          newOutputFile = os.path.join(outputDirectory,fileName+config.filenameSuffix+fileExtension)
    2.40 -                        if config.outputFormat == None:
    2.41 +                        if setFormat:
    2.42                              config.outputFormat = Ffile.get_format(fileExtension)
    2.43 -                        elif (config.outputFormat<>'fixed') and (config.outputFormat<>'free'):
    2.44 -                            opt.error("outputFormat option must be specified with either 'fixed' or 'free' as an argument")
    2.45 -                        setOutputFormat(config.outputFormat)
    2.46 +                            setOutputFormat(config.outputFormat)
    2.47                          outFileNameList.append(newOutputFile)
    2.48                          out = open(newOutputFile,'w')
    2.49                  elif not out: