Term() 공개 메소드

public Term ( int n ) : BinaryTree
n int
리턴 BinaryTree
예제 #1
0
        private void GetFile(string filename, ref string expected, ref string result)
        {
            StreamReader sr = new StreamReader(filename);

            PrologCodeParser parser = new PrologCodeParser();

            parser.Scanner = new PrologScanner(sr);

            PrologCodeTerm term = parser.ConvertBinaryTreeToCodeDOM(parser.Term(1200));
            sr.Close();

            StreamReader codefile = new StreamReader(filename);
            string originalCode = codefile.ReadLine();
            codefile.Close();
            string exp = originalCode.Replace(" ", "").Replace(".", "");
            string res = term.ToString().Replace(" ", "").Replace(".", "");

            expected = exp;
            result = res;
        }
예제 #2
0
        public void Parse_Fact_no_Args()
        {
            // Try to parse 'predicate.'
            Write("factnoargs.txt", "predicate.");

            StreamReader sr = new StreamReader("C:\\factnoargs.txt");

            PrologCodeParser parser = new PrologCodeParser();
            parser.Scanner = new PrologScanner(sr);

            BinaryTree ast = parser.Term(1200);
            sr.Close();

            // Expect: BinaryTree("predicate", null, null, null);
            Assert.AreEqual("predicate", ast.Name);
            Assert.IsNull(ast.Left);
            Assert.IsNull(ast.Right);
            Assert.IsNull(ast.Arguments);
        }
예제 #3
0
        private BinaryTree PrologTerm(string s)
        {
            // Try to parse 'predicate.'
            Write("parsertest.txt", s);

            StreamReader sr = new StreamReader("C:\\parsertest.txt");

            PrologCodeParser parser = new PrologCodeParser();

            parser.Scanner = new PrologScanner(sr);

            BinaryTree ast = parser.Term(1200);
            sr.Close();
            File.Delete("C:\\parsertest.txt");
            return ast;
        }
예제 #4
0
        public void Parse_Fact_with_Variable_Arg()
        {
            // Try to parse 'predicate.'
            Write("factnoargs.txt", "predicate(X).");

            StreamReader sr = new StreamReader("C:\\factnoargs.txt");

            PrologCodeParser parser = new PrologCodeParser();
            parser.Scanner = new PrologScanner(sr);

            BinaryTree ast = parser.Term(1200);
            sr.Close();

            // Expect: BinaryTree("predicate", null, null, null);
            Assert.AreEqual("predicate", ast.Name);
            Assert.IsNull(ast.Left);
            Assert.IsNull(ast.Right);
            ArrayList args = new ArrayList();
            ast.Flatten((BinaryTree)ast.Arguments[0], ref args);
            Assert.AreEqual(1, args.Count);
        }