Esempio n. 1
0
 public static void AddTrivias<T>(this IScriptTerminal node, T trivias, bool before) where T : IEnumerable<ScriptTrivia>
 {
     foreach (var trivia in trivias)
     {
         node.AddTrivia(trivia, before);
     }
 }
Esempio n. 2
0
 public static void AddSpaceAfter(this IScriptTerminal node)
 {
     if (!node.HasTrailingSpaceTrivias())
     {
         node.AddTrivia(ScriptTrivia.Space, false);
     }
 }
Esempio n. 3
0
 public static void AddSemiColonAfter(this IScriptTerminal node)
 {
     if (!node.HasTrivia(ScriptTriviaType.SemiColon, false))
     {
         node.AddTrivia(ScriptTrivia.SemiColon, false);
     }
 }
Esempio n. 4
0
 public static void AddCommaAfter(this IScriptTerminal node)
 {
     if (!node.HasTrivia(ScriptTriviaType.Comma, false))
     {
         node.AddTrivia(ScriptTrivia.Comma, false);
     }
 }
Esempio n. 5
0
 public static void AddLeadingSpace(this IScriptTerminal node)
 {
     if (!node.HasLeadingSpaceTrivias())
     {
         node.AddTrivia(ScriptTrivia.Space, true);
     }
 }
Esempio n. 6
0
 private void FlushTrivias(IScriptTerminal element, bool isBefore)
 {
     if (_isKeepTrivia && _trivias.Count > 0)
     {
         element.AddTrivias(_trivias, isBefore);
         _trivias.Clear();
     }
 }
Esempio n. 7
0
 public static void AddTrivia(this IScriptTerminal node, ScriptTrivia trivia, bool before)
 {
     var trivias = node.Trivias;
     if (trivias == null)
     {
         node.Trivias = trivias = new ScriptTrivias();
     }
     (before ? trivias.Before : trivias.After).Add(trivia);
 }
Esempio n. 8
0
 private T Close <T>(T node) where T : ScriptNode
 {
     node.Span.End = Previous.End;
     if (_isKeepTrivia && node is IScriptTerminal terminal)
     {
         _lastTerminalWithTrivias = terminal;
         FlushTrivias(terminal, false);
     }
     return(node);
 }
Esempio n. 9
0
        public static bool HasTriviaEndOfStatement(this IScriptTerminal node, bool before)
        {
            if (node.Trivias == null)
            {
                return false;
            }

            foreach (var trivia in (before ? node.Trivias.Before : node.Trivias.After))
            {
                if (trivia.Type == ScriptTriviaType.NewLine || trivia.Type == ScriptTriviaType.SemiColon)
                {
                    return true;
                }
            }
            return false;
        }
Esempio n. 10
0
        public static bool HasTrivia(this IScriptTerminal node, ScriptTriviaType triviaType, bool before)
        {
            if (node.Trivias == null)
            {
                return false;
            }

            foreach (var trivia in (before ? node.Trivias.Before : node.Trivias.After))
            {
                if (trivia.Type == triviaType)
                {
                    return true;
                }
            }
            return false;
        }
Esempio n. 11
0
        public static bool HasTrailingSpaceTrivias(this IScriptTerminal node)
        {
            if (node.Trivias == null)
            {
                return false;
            }

            var triviasAfter = node.Trivias.After;
            if (triviasAfter.Count > 0)
            {
                var trivia = triviasAfter[triviasAfter.Count - 1];
                if (trivia.Type.IsSpaceOrNewLine())
                {
                    return true;
                }
            }

            return false;
        }
Esempio n. 12
0
 public static bool HasLeadingSpaceTrivias(this IScriptTerminal node)
 {
     if (node.Trivias == null)
     {
         return false;
     }
     foreach (var trivia in node.Trivias.Before)
     {
         if (trivia.Type.IsSpaceOrNewLine())
         {
             return true;
         }
         else
         {
             break;
         }
     }
     return false;
 }