internal VariableOrExpression CreateVariableOrExpression(CodeElementsParser.VariableOrExpression2Context context)
 {
     if (context.identifier() != null)
     {
         return new VariableOrExpression(
             CreateIdentifier(context.identifier()));
     }
     else if (context.numericValue() != null)
     {
         return new VariableOrExpression(
             CobolWordsBuilder.CreateNumericValue(context.numericValue()));
     }
     else if (context.alphanumericValue2() != null)
     {
         return new VariableOrExpression(
             CobolWordsBuilder.CreateAlphanumericValue(context.alphanumericValue2()));
     }
     else if (context.repeatedCharacterValue1() != null)
     {
         return new VariableOrExpression(
             CobolWordsBuilder.CreateRepeatedCharacterValue(context.repeatedCharacterValue1()));
     }
     else
     {
         return new VariableOrExpression(
             CreateArithmeticExpression(context.arithmeticExpression()));
     }
 }
 internal Variable CreateVariableOrFileName(CodeElementsParser.VariableOrFileNameContext context)
 {
     if (context.identifierOrFileName() != null)
     {
         return new Variable(
             CreateIdentifierOrFileName(context.identifierOrFileName()));
     }
     else if (context.numericValue() != null)
     {
         return new Variable(
             CobolWordsBuilder.CreateNumericValue(context.numericValue()));
     }
     else if (context.alphanumericValue2() != null)
     {
         return new Variable(
             CobolWordsBuilder.CreateAlphanumericValue(context.alphanumericValue2()));
     }
     else
     {
         return new Variable(
             CobolWordsBuilder.CreateRepeatedCharacterValue(context.repeatedCharacterValue1()));
     }
 }
        internal VariableOrExpression CreateVariableOrExpression(CodeElementsParser.VariableOrExpression2Context context)
        {
            VariableOrExpression variableOrExpression = null;
            if (context.identifier() != null)
            {
                variableOrExpression = new VariableOrExpression(
                    CreateIdentifier(context.identifier()));
            }
            else if (context.numericValue() != null)
            {
                variableOrExpression = new VariableOrExpression(
                    CobolWordsBuilder.CreateNumericValue(context.numericValue()));
            }
            else if (context.alphanumericValue2() != null)
            {
                variableOrExpression = new VariableOrExpression(
                    CobolWordsBuilder.CreateAlphanumericValue(context.alphanumericValue2()));
            }
            else if (context.repeatedCharacterValue1() != null)
            {
                variableOrExpression = new VariableOrExpression(
                    CobolWordsBuilder.CreateRepeatedCharacterValue(context.repeatedCharacterValue1()));
            }
            else
            {
                variableOrExpression = new VariableOrExpression(
                    CreateArithmeticExpression(context.arithmeticExpression()));
            }

            // Collect storage area read/writes at the code element level
            if (variableOrExpression.StorageArea != null)
            {
                this.storageAreaReads.Add(variableOrExpression.StorageArea);
            }

            return variableOrExpression;
        }