Beispiel #1
0
            public int Consult(string fileName)
            {
                // string as ISO-style charcode lists or as C# strings
                consultFileStack.Push(fileName);
                consultParserStack.Push(Globals.CurrentParser);
                PrologParser parser = Globals.CurrentParser = new PrologParser(engine);

                allDiscontiguous = false;

                try
                {
                    prevIndex = null;
                    definedInCurrFile.Clear();
                    isDiscontiguous.Clear();
                    Uncacheall();
                    //Globals.ConsultModuleName = null;
                    parser.Prefix = "&program\r\n";
                    IO.Write("--- Consulting {0} ... ", fileName);
                    parser.LoadFromFile(fileName);
                    IO.WriteLine("{0} lines read", parser.LineCount);
                    InvalidateCrossRef();
                }
                finally
                {
                    Globals.CurrentParser = consultParserStack.Pop();;
                    //Globals.ConsultModuleName = null; // Currently not used
                }

                return(parser.LineCount);
            }
            public int Consult(string fileName)
            {
                bool csharpStringsSave = engine.csharpStrings;
                // string as ISO-style charcode lists or as C# strings
                PrologParser saveCurrentParser = Globals.CurrentParser;
                PrologParser parser            = Globals.CurrentParser = new PrologParser(engine);

                allDiscontiguous = false;

                try
                {
                    prevIndex = null;
                    definedInCurrFile.Clear();
                    isDiscontiguous.Clear();
                    actionWhenUndefined.Clear();
                    Uncacheall();
                    Globals.ConsultFileName   = fileName.ToLower();
                    Globals.ConsultModuleName = null;
                    parser.Prefix             = "&program\r\n";
                    IO.Write("--- Consulting {0} ... ", fileName);
                    parser.LoadFromFile(fileName);
                    IO.WriteLine("{0} lines read", parser.LineCount);
                    InvalidateCrossRef();
                }
                finally
                {
                    Globals.ConsultFileName   = null;
                    Globals.ConsultModuleName = null;
                    Globals.CurrentParser     = saveCurrentParser;
                    engine.csharpStrings      = csharpStringsSave;
                }

                return(parser.LineCount);
            }