Exemple #1
0
 public RosterSymbol(
     SourceGlobalNamespaceSymbol containingSymbol,
     RosterNode declaration,
     DiagnosticBag diagnostics) : base(containingSymbol, declaration)
 {
     Declaration = declaration;
     // TODO implement costs/forces
 }
Exemple #2
0
 public GamesystemSymbol(
     SourceGlobalNamespaceSymbol containingSymbol,
     GamesystemNode declaration,
     DiagnosticBag diagnostics)
     : base(containingSymbol, declaration, diagnostics)
 {
     Declaration = declaration;
 }
Exemple #3
0
    public CatalogueSymbol(
        SourceGlobalNamespaceSymbol containingSymbol,
        CatalogueNode declaration,
        DiagnosticBag diagnostics)
        : base(containingSymbol, declaration, diagnostics)
    {
        Declaration = declaration;
        Imports     = CreateLinks().ToImmutableArray();

        IEnumerable <ICatalogueReferenceSymbol> CreateLinks()
        {
            foreach (var item in declaration.CatalogueLinks)
            {
                yield return(new CatalogueReferenceSymbol(this, item));
            }
        }
    }
    protected CatalogueBaseSymbol(
        SourceGlobalNamespaceSymbol containingSymbol,
        CatalogueBaseNode declaration,
        DiagnosticBag diagnostics)
        : base(containingSymbol, declaration)
    {
        ContainingNamespace            = containingSymbol;
        Declaration                    = declaration;
        costTypes                      = declaration.CostTypes.Select(x => new CostTypeSymbol(this, x, diagnostics)).ToImmutableArray();
        profileTypes                   = declaration.ProfileTypes.Select(x => new ProfileTypeSymbol(this, x, diagnostics)).ToImmutableArray();
        publications                   = declaration.Publications.Select(x => new PublicationSymbol(this, x, diagnostics)).ToImmutableArray();
        RootContainerEntries           = CreateRootContainerEntries().ToImmutableArray();
        RootResourceEntries            = CreateRootResourceEntries().ToImmutableArray();
        SharedSelectionEntryContainers = CreateSharedContainerEntries().ToImmutableArray();
        SharedResourceEntries          = CreateSharedResourceEntries().ToImmutableArray();

        IEnumerable <IContainerEntrySymbol> CreateRootContainerEntries()
        {
            foreach (var item in declaration.SelectionEntries)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.EntryLinks)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.ForceEntries)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.CategoryEntries)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
        }

        IEnumerable <IResourceEntrySymbol> CreateRootResourceEntries()
        {
            foreach (var item in declaration.Rules)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
        }

        IEnumerable <ISelectionEntryContainerSymbol> CreateSharedContainerEntries()
        {
            foreach (var item in declaration.SharedSelectionEntries)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.SharedSelectionEntryGroups)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
        }

        IEnumerable <IResourceEntrySymbol> CreateSharedResourceEntries()
        {
            foreach (var item in declaration.SharedInfoGroups)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.SharedProfiles)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
            foreach (var item in declaration.SharedRules)
            {
                yield return(EntrySymbol.CreateEntry(this, item, diagnostics));
            }
        }
    }
 internal GamesystemNamespaceBinder(Binder next, SourceGlobalNamespaceSymbol namespaceSymbol)
     : base(next)
 {
     NamespaceSymbol = namespaceSymbol;
 }