private DataConditionEntry CreateFunctionConditionParameter(CodeElementsParser.FunctionConditionParameterContext context) { var parameter = new DataConditionEntry(); parameter.LevelNumber = CobolWordsBuilder.CreateIntegerValue(context.levelNumber().integerValue()); parameter.DataName = CobolWordsBuilder.CreateConditionNameDefinition(context.conditionNameDefinition()); SetConditionValues(parameter, context.valueClauseForCondition()); return parameter; }
public override void EnterDataConditionEntry(CodeElementsParser.DataConditionEntryContext context) { var entry = new DataConditionEntry(); entry.LevelNumber = CobolWordsBuilder.CreateIntegerValue(context.levelNumber().integerValue()); entry.DataName = CobolWordsBuilder.CreateConditionNameDefinition(context.conditionNameDefinition()); SetConditionValues(entry, context.valueClauseForCondition()); Context = context; CodeElement = entry; }
private void SetConditionValues(DataConditionEntry entry,CodeElementsParser.ValueClauseForConditionContext context) { if (context == null) return; if (context.value1() != null && context.value1().Length > 0) { entry.ConditionValues = new Value[context.value1().Length]; for (int i = 0; i < context.value1().Length; i++) entry.ConditionValues[i] = CobolWordsBuilder.CreateValue(context.value1()[i]); } if (context.valuesRange() != null && context.valuesRange().Length > 0) { entry.ConditionValuesRanges = new ValuesRange[context.valuesRange().Length]; for (int i = 0; i < context.valuesRange().Length; i++) { var valuesRangeContext = context.valuesRange()[i]; entry.ConditionValuesRanges[i] = new ValuesRange( CobolWordsBuilder.CreateValue(valuesRangeContext.startValue), CobolWordsBuilder.CreateValue(valuesRangeContext.endValue)); } } }
private ParameterDescriptionEntry CreateFunctionDataParameter(DataConditionEntry condition) { var data = new ParameterDescriptionEntry(); data.LevelNumber = condition.LevelNumber; data.DataName = condition.DataName; data.DataType = DataType.Unknown; return data; }
private void EnterDataConditionEntry(DataConditionEntry data) { SetCurrentNodeToTopLevelItem(data.LevelNumber.Value); var node = new DataCondition(data); Enter(node); if (!node.IsPartOfATypeDef) node.SymbolTable.AddVariable(node); }