/// <summary>
        /// Given a listener that has traversed the tree, extract all the data into a DFS.
        /// </summary>
        /// <param name="parsedState"></param>
        /// <returns></returns>
        private static DetectorFinalState BuildDFS(this FinalStatePatternListener parsedState)
        {
            var result = new DetectorFinalState();

            result.FinalStateObjects.AddRange(parsedState.FSOs);
            result.Criteria.Arguments.AddRange(parsedState.TopLevelCriteria);

            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Emit the top dog
        /// </summary>
        /// <param name="state"></param>
        /// <param name="wr"></param>
        /// <returns></returns>
        public static string Emit(this DetectorFinalState state, TextWriter wr)
        {
            foreach (var fso in state.FinalStateObjects)
            {
                fso.Emit(wr);
                wr.WriteLine();
            }
            var sname = state.Criteria.Emit(wr);

            wr.WriteLine();

            var name = MakeName("detectorFinalState");

            wr.WriteLine($"{OWLNamespace}:{name} rdf:type dfs:DetectorFinalState ;");
            wr.WriteLine($"  dfs:hasSelectionCriteria {OWLNamespace}:{sname} .");

            return(name);
        }