ApiParser.ApiParser.ParseFile C# (CSharp) Method

ParseFile() private method

private ParseFile ( string filename, System.Version apiVersion ) : void
filename string
apiVersion System.Version
return void
        private void ParseFile(string filename, Version apiVersion)
        {
            var document = ApiNode.Load(filename);
            var section = document?.SelectOne(@"//div.content/div.section");
            var header = section?.SelectOne(@"div.mb20.clear");
            var name = header?.SelectOne(@"h1.heading.inherit"); // Type or type member name
            var ns = header?.SelectOne(@"p");   // "class in {ns}"

            // Only interested in types at this point
            if (name == null || ns == null) return;

            // Only types that have messages
            var messages = section.Subsection("Messages").ToArray();
            if (messages.Length == 0) return;

            var match = NsRegex.Match(ns.Text);
            var clsType = match.Groups["type"].Value;
            var nsName = match.Groups["namespace"].Value;

            var unityApiType = api.AddType(nsName, name.Text, clsType, filename, apiVersion);

            foreach (var message in messages)
            {
                var eventFunction = ParseMessage(message, apiVersion, nsName);
                unityApiType.MergeEventFunction(eventFunction, apiVersion);
            }
        }