/* (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; }
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; }