Example #1
0
 private static void OutputMids(PredicateAndObjects predAndObjects, HashSet <string> alreadyOutput = null)
 {
     if (alreadyOutput == null)
     {
         alreadyOutput = new HashSet <string>();
     }
     foreach (FBObject fbObj in predAndObjects.Objects)
     {
         if (fbObj is SimpleFBObject)
         {
             SimpleFBObject simpleFBObj = fbObj as SimpleFBObject;
             Console.WriteLine(simpleFBObj.Mid);
         }
         else if (fbObj is CVTFBObject)
         {
             CVTFBObject cvtObj = fbObj as CVTFBObject;
             Console.WriteLine(cvtObj.Mid);
             if (!alreadyOutput.Contains(cvtObj.Mid))
             {
                 alreadyOutput.Add(cvtObj.Mid);
                 foreach (PredicateAndObjects cvtObject in cvtObj.Objects)
                 {
                     OutputMids(cvtObject, alreadyOutput);
                 }
             }
         }
     }
 }
Example #2
0
        private static void OutputPredicateAndObjects(PredicateAndObjects predAndObjects, HashSet <string> alreadyOutput = null, int indent = 0)
        {
            if (alreadyOutput == null)
            {
                alreadyOutput = new HashSet <string>();
            }

            if (indent != 0)
            {
                Console.Write(new string(' ', indent));
            }
            Console.Write(string.Format("{0,-40} --> ", predAndObjects.Predicate));

            bool newlineWritten = false;

            foreach (FBObject fbObj in predAndObjects.Objects)
            {
                if (newlineWritten)
                {
                    Console.Write(string.Format("{0,-40} --> ", ""));
                }
                if (fbObj is ValueFBObject)
                {
                    Console.WriteLine((fbObj as ValueFBObject).Value);
                }
                else if (fbObj is SimpleFBObject)
                {
                    SimpleFBObject simpleFBObj = fbObj as SimpleFBObject;
                    Console.WriteLine((simpleFBObj.Name ?? "[no name]") + " (" + simpleFBObj.Mid + ")");
                    if (simpleFBObj.Objects != null)
                    {
                        if (!alreadyOutput.Contains(simpleFBObj.Mid))
                        {
                            alreadyOutput.Add(simpleFBObj.Mid);
                            foreach (PredicateAndObjects Object in simpleFBObj.Objects)
                            {
                                OutputPredicateAndObjects(Object, alreadyOutput, indent + 4);
                            }
                        }
                    }
                }
                else if (fbObj is CVTFBObject)
                {
                    CVTFBObject cvtObj = fbObj as CVTFBObject;
                    Console.WriteLine("CVT (" + cvtObj.Mid + ")");
                    if (!alreadyOutput.Contains(cvtObj.Mid))
                    {
                        alreadyOutput.Add(cvtObj.Mid);
                        foreach (PredicateAndObjects cvtObject in cvtObj.Objects)
                        {
                            OutputPredicateAndObjects(cvtObject, alreadyOutput, indent + 4);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("[Unknown object: " + fbObj);
                }
                newlineWritten = true;
            }
        }