コード例 #1
0
 private void ResolveOutputList(VBAParser.OutputListContext outputList)
 {
     if (outputList == null)
     {
         return;
     }
     foreach (var outputItem in outputList.outputItem())
     {
         if (outputItem.outputClause() != null)
         {
             if (outputItem.outputClause().spcClause() != null)
             {
                 ResolveDefault(outputItem.outputClause().spcClause().spcNumber().expression());
             }
             if (outputItem.outputClause().tabClause() != null && outputItem.outputClause().tabClause().tabNumberClause() != null)
             {
                 ResolveDefault(outputItem.outputClause().tabClause().tabNumberClause().tabNumber().expression());
             }
             if (outputItem.outputClause().outputExpression() != null)
             {
                 ResolveDefault(outputItem.outputClause().outputExpression().expression());
             }
         }
     }
 }
コード例 #2
0
        private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.OutputListContext outputListContext, IBoundExpression withBlockVariable)
        {
            var itemBindings = new List <IExpressionBinding>();

            foreach (var outputItem in outputListContext.outputItem())
            {
                if (outputItem.outputClause() != null)
                {
                    if (outputItem.outputClause().spcClause() != null)
                    {
                        itemBindings.Add(Visit(
                                             module,
                                             parent,
                                             outputItem.outputClause().spcClause().spcNumber().expression(),
                                             withBlockVariable,
                                             StatementResolutionContext.Undefined,
                                             requiresLetCoercion: true));
                    }
                    if (outputItem.outputClause().tabClause() != null && outputItem.outputClause().tabClause().tabNumberClause() != null)
                    {
                        itemBindings.Add(Visit(
                                             module,
                                             parent,
                                             outputItem.outputClause().tabClause().tabNumberClause().tabNumber().expression(),
                                             withBlockVariable,
                                             StatementResolutionContext.Undefined,
                                             requiresLetCoercion: true));
                    }
                    if (outputItem.outputClause().outputExpression() != null)
                    {
                        itemBindings.Add(Visit(
                                             module,
                                             parent,
                                             outputItem.outputClause().outputExpression().expression(),
                                             withBlockVariable,
                                             StatementResolutionContext.Undefined,
                                             requiresLetCoercion: true));
                    }
                }
            }

            return(new OutputListDefaultBinding(outputListContext, itemBindings));
        }
コード例 #3
0
 private void ResolveOutputList(VBAParser.OutputListContext outputList)
 {
     ResolveDefault(outputList);
 }