Exemplo n.º 1
0
 /* (non-Javadoc)
  * @see semantic.CBaseDataEntity#GetSpecialAssignment(parser.expression.CTerminal)
  */
 public CBaseActionEntity GetSpecialAssignment(CTerminal term, CBaseEntityFactory factory, int l) {
   String value = term.GetValue();
   CEntitySetConstant eAssign = factory.NewEntitySetConstant(l);
   if (value.equals(CCobolConstantList.ZERO.m_Name)
       || value.equals(CCobolConstantList.ZEROS.m_Name)
       || value.equals(CCobolConstantList.ZEROES.m_Name)) {
     eAssign.SetToZero(this);
   } else if (value.equals(CCobolConstantList.SPACE.m_Name)
       || value.equals(CCobolConstantList.SPACES.m_Name)) {
     eAssign.SetToSpace(this);
   } else if (value.equals(CCobolConstantList.LOW_VALUE.m_Name)
       || value.equals(CCobolConstantList.LOW_VALUES.m_Name)) {
     eAssign.SetToLowValue(this);
   } else if (value.equals(CCobolConstantList.HIGH_VALUE.m_Name)
       || value.equals(CCobolConstantList.HIGH_VALUES.m_Name)) {
     eAssign.SetToHighValue(this);
   } else if (term.IsNumber() && (m_Type.equals("picX") || m_Type.equals(""))) {
     String type = m_Type;
     if (type.equals("")) type = "GROUP";
     CEntityAssign asgn = factory.NewEntityAssign(l);
     asgn.SetValue(factory.NewEntityString(value));
     asgn.AddRefTo(this);
     Transcoder.logInfo(
         l,
         "Number converted to string to move into " + type + " var (" + GetName() + "): " + value);
     RegisterWritingAction(asgn);
     return asgn;
   } else {
     return null;
   }
   return eAssign;
 }
Exemplo n.º 2
0
  private CEntityResourceFormContainer importRESResource(
      String inputFileName, String csApplication, CTransApplicationGroup grp, boolean bResources) {
    String csOutputFile = generateOutputFileName(inputFileName);
    CTransApplicationGroup grpResources = m_cat.getGroupResources();
    String csFullInputFileName = grpResources.m_csOutputPath + inputFileName;

    // String csOutputFile = generateOutputFileName(inputFileName) ;
    // createDirIsRequired(grp.m_csOutputPath, csApplication);	// For .res output

    Tag tagRoot = Tag.createFromFile(csFullInputFileName);
    if (tagRoot == null) return null;

    if (grp.m_csOutputPath != null)
      createDirIsRequired(grp.m_csOutputPath, csApplication); // For .java output

    CBMSParser BMSParser = parseRESResource(tagRoot);
    if (BMSParser != null) {
      Transcoder.logInfo("Transcoding resource " + inputFileName);
      // exportXMLToFile(BMSParser, "D:/Dev/naca/Pub2000Cobol/Inter/BMS/RS01A05b.xml") ; // Reexport
      // XML

      NotificationEngine engine = new NotificationEngine();
      doPopulateSpecialActionHandlers(engine);
      COriginalLisiting listing = new COriginalLisiting();
      CObjectCatalog cat = new CObjectCatalog(m_cat, listing, grp.m_eType, engine);
      try {
        if (grp.m_csOutputPath != null) {
          String csJavaOutFileName =
              FileSystem.appendFilePath(
                  grp.m_csOutputPath + csApplication,
                  ReplaceExtensionFileName(csOutputFile, "java"));
          CEntityResourceFormContainer ext =
              doSemanticAnalysis(BMSParser, csJavaOutFileName, cat, grp, bResources);
          if (ext != null) {
            // To reexport .res file, uncomment below
            //						String csResOutFileName = grp.m_csOutputPath +
            // ReplaceExtensionFileName(csOutputFile, "res");
            //						ext.setExportFilePath(csResOutFileName);
            //
            //						Transcoder.logInfo("Exporting resource file "+csResOutFileName);
            //						ext.MakeXMLOutput(true) ;

            m_cat.RegisterFormContainer(inputFileName, ext);

            // PJD 08/08/2007 Uncomment to export xxx.java screen copy file. These are duplicated
            // files generated twice beforecorrect generation export by
            // Transcoder.logInfo("Exporting java file "+csJavaOutFileName);
            // ext.StartExport() ;

            String fileNameJavaS =
                FileSystem.appendFilePath(
                    grp.m_csOutputPath + csApplication,
                    ReplaceExtensionFileNameWithSuffix(csOutputFile, "S", "java"));
            // String fileNameJavaS = grp.m_csOutputPath + csApplication + "/" +
            // ReplaceExtensionFileNameWithSuffix(csOutputFile, "S", "java");
            CJavaExporter outjavaS = new CJavaExporter(ext.getExporter(), fileNameJavaS);
            CJavaEntityFactory factoryS0 = new CJavaEntityFactory(ext.m_ProgramCatalog, outjavaS);
            m_cat = ms_BMSTranscoderEngine.getGlobalCatalog();
            CJavaEntityFactory factoryS = new CJavaEntityFactory(cat, outjavaS);

            ext.clearSavCopy(factoryS);

            CEntityResourceFormContainer eSav =
                ext.MakeSavCopy(
                    factoryS,
                    true); // we are generating directly form a .res file; the name of variables in
                           // *S.java file is not very well managed in taht case, so, the flag ...
            if (ext.GetSavCopy() != null) {
              // PJD 08/08/2007 Uncomment to export xxxS.java screen copy file. These are duplicated
              // files generated twice beforecorrect generation export by
              //							Transcoder.logInfo("Exporting javaS file "+fileNameJavaS);
              //							ext.GetSavCopy().StartExport() ;
            }
          }
          return ext;
        }
      } catch (NacaTransAssertException e) {
        Transcoder.logError(
            "Failure while transcoding " + csFullInputFileName + " : " + e.m_csMessage);
      }
    }

    return null;
  }