Example #1
0
        public IStatementList GetFollowedByT(Statement statement)
        {
            IStatementList followed          = ImplementationFactory.CreateStatementList();
            Statement      followedStatement = GetFollowedBy(statement);

            followed.AddStatement(followedStatement);
            for (int i = 0; i < followed.GetSize(); i++)
            {
                followed.AddStatement(GetFollowedBy(followed[i]));
            }
            return(followed);
        }
Example #2
0
        public IStatementList GetFollowsT(Statement statement)
        {
            IStatementList following          = ImplementationFactory.CreateStatementList();
            Statement      followingStatement = GetFollows(statement);

            following.AddStatement(followingStatement);
            for (int i = 0; i < following.GetSize(); i++)
            {
                following.AddStatement(GetFollows(following[i]));
            }
            return(following);
        }
Example #3
0
        private IStatementList Statements()
        {
            Statement      statement  = SingleStatement();
            IStatementList statements = ImplementationFactory.CreateStatementList();

            statements.AddStatement(statement);

            while (currentToken.Type != TokenType.RBRACE)
            {
                statements.AddStatement(SingleStatement());
            }
            return(statements);
        }
Example #4
0
        private void BuildPath(List <IStatementList> paths, IStatementList path, Statement lastElement)
        {
            Statement element = path.GetSize() > 0 ? path.GetLast() : lastElement;

            if (path.GetSize() == 0 || element != lastElement)
            {
                IStatementList nexting = GetNext(element);
                if (nexting.GetSize() > 0)
                {
                    if (nexting.GetLast() != nexting.GetFirst())
                    {
                        IStatementList newPath = path.Copy();
                        newPath.AddStatement(nexting.GetLast());
                        BuildPath(paths, newPath, element);
                    }
                    path.AddStatement(nexting.GetFirst());
                    BuildPath(paths, path, element);
                }
                else
                {
                    paths.Add(path);
                }
            }
            else
            {
                paths.Add(path);
            }
        }
Example #5
0
        protected override IEntityList ProcessRightSide(IProgramKnowledgeBase pkb, IEntity arg)
        {
            Statement      statement = arg as Statement;
            Statement      parent    = pkb.ParentTable.GetParent(statement);
            IStatementList result    = ImplementationFactory.CreateStatementList();

            result.AddStatement(parent);
            return(result);
        }
Example #6
0
        protected override IEntityList ProcessRightSide(IProgramKnowledgeBase pkb, IEntity arg)
        {
            Statement      statement = arg as Statement;
            Statement      followed  = pkb.FollowsTable.GetFollowedBy(statement);
            IStatementList result    = ImplementationFactory.CreateStatementList();

            result.AddStatement(followed);
            return(result);
        }
Example #7
0
        public IStatementList GetParentT(Statement statement)
        {
            IStatementList parents         = ImplementationFactory.CreateStatementList();
            Statement      parentStatement = GetParent(statement);

            parents.AddStatement(parentStatement);
            for (int i = 0; i < parents.GetSize(); i++)
            {
                parents.AddEntity(GetParent(parents[i]));
            }
            return(parents);
        }
Example #8
0
        private IStatementList StmtLst()
        {
            Eat(TokenType.LBRACE);
            IStatementList statements = Statements();

            Eat(TokenType.RBRACE);

            IStatementList root = ImplementationFactory.CreateStatementList();

            foreach (Statement statement in statements)
            {
                root.AddStatement(statement);
            }

            return(root);
        }