Пример #1
0
 internal void ImportTypeName(ref string name, ISymbol symbol)
 {
     if (baseNameNodeCounter_ == 0)
     {
         int pos = name.LastIndexOf('.');
         if (pos != -1)
         {
             string prefix = name.Substring(0, pos);
             if (prefix != LuaIdentifierNameSyntax.System.ValueText)
             {
                 string newPrefix  = prefix.Replace(".", "");
                 var    methodInfo = CurMethodInfoOrNull;
                 if (methodInfo != null)
                 {
                     var syntaxReference = methodInfo.Symbol.DeclaringSyntaxReferences.First();
                     var root            = syntaxReference.GetSyntax();
                     if (IsLocalVarExists(newPrefix, root))
                     {
                         return;
                     }
                 }
                 name = newPrefix + name.Substring(pos);
                 CurCompilationUnit.AddImport(prefix, newPrefix, symbol.IsFromCode());
             }
         }
     }
 }
        public override LuaSyntaxNode VisitQueryExpression(QueryExpressionSyntax node)
        {
            CurCompilationUnit.ImportLinq();
            LuaIdentifierNameSyntax rangeVariable = new LuaIdentifierNameSyntax(node.FromClause.Identifier.ValueText);

            CheckVariableDeclaratorName(ref rangeVariable, node);
            var fromClauseExpression = (LuaExpressionSyntax)node.FromClause.Expression.Accept(this);

            return(BuildQueryBody(node.Body, fromClauseExpression, rangeVariable));
        }
        public override LuaSyntaxNode VisitQueryExpression(QueryExpressionSyntax node)
        {
            CurCompilationUnit.ImportLinq();

            var rangeVariable   = AddRangeIdentifier(node.FromClause.Identifier);
            var collection      = (LuaExpressionSyntax)node.FromClause.Accept(this);
            var queryExpression = BuildQueryBody(collection, node.Body, rangeVariable);

            queryIdentifiers_.Clear();
            return(queryExpression);
        }