internal SubscriptExpression[] CreateSubscriptExpressions(CodeElementsParser.SubscriptContext[] contextArray) { SubscriptExpression[] subscriptExpressions = new SubscriptExpression[contextArray.Length]; for(int i = 0; i < contextArray.Length; i++) { CodeElementsParser.SubscriptContext context = contextArray[i]; if(context.ALL() != null) { subscriptExpressions[i] = new SubscriptExpression( ParseTreeUtils.GetFirstToken(context.ALL())); } else { IntegerVariable integerVariable = CreateIntegerVariableOrIndex(context.integerVariableOrIndex2()); ArithmeticExpression arithmeticExpression = new NumericVariableOperand(integerVariable); if(context.withRelativeSubscripting() != null) { SyntaxProperty<ArithmeticOperator> arithmeticOperator = null; if(context.withRelativeSubscripting().PlusOperator() != null) { arithmeticOperator = new SyntaxProperty<ArithmeticOperator>( ArithmeticOperator.Plus, ParseTreeUtils.GetFirstToken(context.withRelativeSubscripting().PlusOperator())); } else { arithmeticOperator = new SyntaxProperty<ArithmeticOperator>( ArithmeticOperator.Minus, ParseTreeUtils.GetFirstToken(context.withRelativeSubscripting().MinusOperator())); } IntegerVariable integerVariable2 = new IntegerVariable( CobolWordsBuilder.CreateIntegerValue(context.withRelativeSubscripting().integerValue())); ArithmeticExpression numericOperand2 = new NumericVariableOperand(integerVariable2); arithmeticExpression = new ArithmeticOperation( arithmeticExpression, arithmeticOperator, numericOperand2); } subscriptExpressions[i] = new SubscriptExpression(arithmeticExpression); } } return subscriptExpressions; }
public virtual bool Visit(NumericVariableOperand numericVariableOperand) { return(true); }