Пример #1
0
        internal Scanner(SyntaxDefinition syntaxDefinition)
        {
            ArgumentValidator.ThrowIfNull(syntaxDefinition, "syntaxDefinition");

            this.m_syntaxDefinition = syntaxDefinition;
            this.m_isFirstRun       = true;
        }
Пример #2
0
 internal SyntaxContext(SyntaxDefinition syntaxDefinition, string scopeName)
 {
     this.SyntaxDefinition = syntaxDefinition;
     this.AllItems         = new List <SyntaxItem>(16);
     this.NonTopItems      = new SetOfSyntaxItems();
     this.TopItems         = new SetOfSyntaxItems();
     this.Name             = scopeName;
     this.TopClusters      = new List <Cluster>(2);
 }
Пример #3
0
        internal Cluster(SyntaxContext context)
        {
            ArgumentValidator.ThrowIfNull(context, "scope");

            this.m_containedGroupsAndClusters = new List <string>();
            this.m_syntaxContext    = context;
            this.m_ClusterType      = ClusterType.NONMAGIC;
            this.m_directItems      = new SetOfSyntaxItems();
            this.m_syntaxDefinition = context.SyntaxDefinition;
        }
        internal static void Dump(SyntaxDefinition syntaxDefiniton, TextWriter writer)
        {
            ArgumentValidator.ThrowIfNull(syntaxDefiniton, "syntaxDefiniton");
            ArgumentValidator.ThrowIfNull(writer, "writer");

            foreach (SyntaxContext context in syntaxDefiniton.m_syntaxContexts)
            {
                DoContext(context);
            }

            foreach (KeyValuePair <string, Cluster> pair in syntaxDefiniton.ClustersByName)
            {
                Console.WriteLine("Cluster  {0,-10} {1,-5} items Scope: {2}", pair.Key, pair.Value.CachedMemberItems.Items.Length, pair.Value.SyntaxContext.Name);
            }
        }
Пример #5
0
        internal Group(string name, SyntaxDefinition syntaxDefinition)
        {
            this.m_name             = name;
            this.m_syntaxDefinition = syntaxDefinition;
            this.m_items            = new List <SyntaxItem>();

            if (m_builtinHighlightModes.ContainsKey(name))
            {
                this.m_highlightMode = m_builtinHighlightModes[name];
            }
            else
            {
                this.m_highlightMode = HighlightMode.Normal;
            }
        }
Пример #6
0
        /// <summary>
        /// I will go up to the six-fingered man and say: "Hello, my name is Inigo Montoya. You killed my father. Prepare to die!"
        /// </summary>
        internal static SetOfSyntaxItems PrepareForRuntime(SetOfSyntaxItems setOfSyntaxItems, SyntaxDefinition syntaxDefinition)
        {
            if (0 == setOfSyntaxItems.Items.Length)
            {
                return(EmptySet);
            }

            int idx = syntaxDefinition.AllDistinctSetsOfItems.BinarySearch(setOfSyntaxItems);

            if (0 <= idx)
            {
                return(syntaxDefinition.AllDistinctSetsOfItems[idx]);
            }
            else
            {
                setOfSyntaxItems.PrepareForRuntime();
                syntaxDefinition.AllDistinctSetsOfItems.Insert(~idx, setOfSyntaxItems);
                return(setOfSyntaxItems);
            }
        }