/* (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; }
public CBaseEntityCondition GetSpecialCondition( int nLine, String value, CBaseEntityCondition.EConditionType type, CBaseEntityFactory factory) { CEntityCondIsConstant eCond = factory.NewEntityCondIsConstant(); if (value.equals("ZERO") || value.equals("ZEROS") || value.equals("ZEROES")) { eCond.SetIsZero(this); } /*else if (value.equals("SPACES") && type == CBaseEntityCondition.EConditionType.IS_GREATER_THAN) { CEntityCondCompare comp = factory.NewEntityCondCompare() ; comp.SetGreaterThan(factory.NewEntityExprTerminal(this), factory.NewEntityExprTerminal(factory.NewEntityConstant(CEntityConstant.Value.SPACES))) ; RegisterVarTesting(comp) ; return comp ; }*/ else if (value.equals("SPACE") || value.equals("SPACES")) { eCond.SetIsSpace(this); } else if (value.equals("LOW-VALUE") || value.equals("LOW-VALUES")) // CT Added for full support { eCond.SetIsLowValue(this); } else if (value.equals("HIGH-VALUE") || value.equals("HIGH-VALUES")) { eCond.SetIsHighValue(this); } // else if (m_Type.equals("picX")) // { // try // { // int n = Integer.parseInt(value) ; // if (type == CBaseEntityCondition.EConditionType.IS_DIFFERENT) // { // CEntityCondEquals cond = factory.NewEntityCondEquals() ; // cond.SetDifferentCondition(factory.NewEntityExprTerminal(this), // factory.NewEntityExprTerminal(factory.NewEntityString(value))) ; // m_logger.info("line "+getLine()+" : numeric value converted to string to compare with // PICX var : " + value) ; // return cond ; // } // else if (type == CBaseEntityCondition.EConditionType.IS_EQUAL) // { // CEntityCondEquals cond = factory.NewEntityCondEquals() ; // cond.SetEqualCondition(factory.NewEntityExprTerminal(this), // factory.NewEntityExprTerminal(factory.NewEntityString(value))) ; // m_logger.info("line "+getLine()+" : numeric value converted to string to compare with // PICX var : " + value) ; // return cond ; // } // else // { // m_logger.info("line "+getLine()+" : numeric value to compare with EDIT var not managed : // " + value) ; // return null ; // } // } // catch (NumberFormatException e) // { // return null ; // } // } else { return null; } RegisterVarTesting(eCond); if (type == CBaseEntityCondition.EConditionType.IS_DIFFERENT) { eCond.SetOpposite(); return eCond; } else if (type == CBaseEntityCondition.EConditionType.IS_EQUAL) { return eCond; } else if (type == CBaseEntityCondition.EConditionType.IS_LESS_THAN && (value.equals("HIGH-VALUE") || value.equals("HIGH-VALUES"))) // CT Added for full support { eCond.SetOpposite(); return eCond; } else if (type == CBaseEntityCondition.EConditionType.IS_GREATER_THAN && (value.equals("LOW-VALUE") || value.equals("LOW-VALUES"))) // CT Added for full support { eCond.SetOpposite(); return eCond; } else { return null; } }
public CDataEntity GetSubStringReference( CBaseEntityExpression start, CBaseEntityExpression length, CBaseEntityFactory factory) { CSubStringAttributReference ref = factory.NewEntitySubString(getLine()); ref.SetReference(this, start, length); return ref; };