Ejemplo n.º 1
0
 public static ILNode NodeNamed(this NegListSlice <ILNode> self, Symbol name)
 {
     foreach (var node in self)
     {
         if (node.Name == name)
         {
             return(node);
         }
     }
     return(null);
 }
Ejemplo n.º 2
0
 private void PrintArgList(NegListSlice <ILNode> args, bool stmtMode, string leftDelim, char rightDelim, string separator = null, ILNode target = null)
 {
     if (target != null)
     {
         PrintPrefixTrivia(target);
     }
     _out.Write(leftDelim);
     _out.JustWroteSymbolOrSpecialId = false;
     if (target != null)
     {
         PrintSuffixTrivia(target, 0, "");
     }
     if (stmtMode)
     {
         _out.Indent();
         bool anyNewlines  = false;
         var  childContext = rightDelim == '}' ? StartStmt : StartSubexpr;
         separator = separator ?? ";";
         foreach (var stmt in args)
         {
             if ((_o.PrintTriviaExplicitly || stmt.AttrNamed(S.TriviaAppendStatement) == null))
             {
                 _out.Newline();
                 anyNewlines = true;
             }
             else
             {
                 SpaceIf(_o.SpacesBetweenAppendedStatements);
             }
             Print(stmt, childContext, separator);
         }
         _out.Dedent();
         if (anyNewlines)
         {
             _out.Newline();
         }
         else
         {
             SpaceIf(_o.SpacesBetweenAppendedStatements);
         }
     }
     else
     {
         for (int i = 0; i < args.Count;)
         {
             Print(args[i], StartSubexpr, ++i == args.Count ? "" : separator ?? ", ");
         }
     }
     _out.Write(rightDelim);
     _out.JustWroteSymbolOrSpecialId = false;
 }
Ejemplo n.º 3
0
 private void PrintArgList(NegListSlice <ILNode> args, bool stmtMode, string leftDelim, char rightDelim, ILNode target = null)
 {
     if (target != null)
     {
         PrintPrefixTrivia(target);
     }
     _out.Write(leftDelim, true);
     if (target != null)
     {
         PrintSuffixTrivia(target, 0, "");
     }
     if (stmtMode)
     {
         _out.Indent();
         bool anyNewlines = false;
         foreach (var stmt in args)
         {
             if (stmt.AttrNamed(S.TriviaAppendStatement) == null && !_isOneLiner)
             {
                 _out.Newline();
                 anyNewlines = true;
             }
             else
             {
                 SpaceIf(_o.SpacesBetweenAppendedStatements);
             }
             Print(stmt, StartStmt, ";");
         }
         _out.Dedent();
         if (anyNewlines)
         {
             _out.Newline();
         }
         else
         {
             SpaceIf(_o.SpacesBetweenAppendedStatements);
         }
     }
     else
     {
         for (int i = 0; i < args.Count;)
         {
             Print(args[i], StartStmt, ++i == args.Count ? "" : ", ");
         }
     }
     _out.Write(rightDelim, true);
 }