Exemplo n.º 1
0
 private void ReduceIncompleteMembers(ref SyntaxListBuilder <MemberDeclarationSyntax> incompleteMembers, ref CompilationUnitBodyBuilder body, ref SyntaxListBuilder initialBadNodes)
 {
     for (int i = 0; i < incompleteMembers.Count; i++)
     {
         this.AddSkippedNamespaceText(ref body, ref initialBadNodes, incompleteMembers[i]);
     }
     incompleteMembers.Clear();
 }
Exemplo n.º 2
0
 private static void AddIncompleteMembers(ref SyntaxListBuilder <MemberDeclarationSyntax> incompleteMembers, ref CompilationUnitBodyBuilder body)
 {
     if (incompleteMembers.Count > 0)
     {
         body.Members.AddRange(incompleteMembers);
         incompleteMembers.Clear();
     }
 }
Exemplo n.º 3
0
        internal void Free(SyntaxListBuilder item)
        {
            item.Clear();
            if (freeIndex >= freeList.Length)
            {
                this.Grow();
            }
#if DEBUG
            Debug.Assert(allocated.Contains(item));

            allocated.Remove(item);
#endif
            freeList[freeIndex].Value = item;
            freeIndex++;
        }
Exemplo n.º 4
0
 public void Clear()
 {
     _builder.Clear();
 }
        private SyntaxList <SyntaxToken> decodeXppMemberModifiers(int visibility, bool isStatic, IList <IToken> tokens = null)
        {
            SyntaxListBuilder modifiers = _pool.Allocate();

            if (isStatic)
            {
                modifiers.Add(SyntaxFactory.MakeToken(SyntaxKind.StaticKeyword, "CLASS"));
            }
            else
            {
                modifiers.Add(DecodeVisibility(visibility));
            }
            if (tokens != null)
            {
                foreach (var token in tokens)
                {
                    SyntaxToken kw = null;
                    switch (token.Type)
                    {
                    // Member Modifiers from XppMemberModifiers rule
                    case XP.CLASS:
                        kw = SyntaxFactory.MakeToken(SyntaxKind.StaticKeyword, token.Text);
                        break;

                    case XP.STATIC:
                        // remove visibility modifiers
                        // STATIC CLASS (Visibility only in the scope of the prg).
                        // class becomes Internal and is added to the static globals class
                        kw = SyntaxFactory.MakeToken(SyntaxKind.InternalKeyword, token.Text);
                        var tmp = modifiers.ToList();
                        modifiers.Clear();

                        foreach (SyntaxToken mod in tmp)
                        {
                            // remove all existing visibility keywords
                            switch (mod.Kind)
                            {
                            case SyntaxKind.ProtectedKeyword:
                            case SyntaxKind.PublicKeyword:
                            case SyntaxKind.PrivateKeyword:
                            case SyntaxKind.InternalKeyword:
                                break;

                            default:
                                modifiers.Add(mod);
                                break;
                            }
                        }
                        break;
                    }
                    if (kw != null)
                    {
                        modifiers.AddCheckUnique(kw);
                    }
                }
            }
            var result = modifiers.ToList <SyntaxToken>();

            _pool.Free(modifiers);
            return(result);
        }