Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * Copyright The Sett Ltd, 2005 to 2014.
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
 package com.thesett.aima.logic.fol.wam.builtins;
 import static com.thesett.aima.logic.fol.wam.compiler.SymbolTableKeys.SYMKEY_PERM_VARS_REMAINING;
Conjunction implements the Prolog conjunction operator ',' that sets up multiple choice points potentially leading to multiple solutions.

CRC Card
Responsibilities Collaborations
Implement the conjunction operator.

Rupert Smith
 public class Conjunction extends BaseBuiltIn
Creates a cut built-in to implement the specified functor.

functor The functor to implement as a built-in.
defaultBuiltIn The default built in, for standard compilation and interners and symbol tables.
     public Conjunction(Functor functorDefaultBuiltIn defaultBuiltIn)

     public SizeableLinkedList<WAMInstructioncompileBodyArguments(Functor functorboolean isFirstBody,
         FunctorName clauseNameint bodyNumber)
         Term[] expressions = functor.getArguments();
         for (int i = 0; i < expressions.lengthi++)
             Functor expression = (Functorexpressions[i];
             Integer permVarsRemaining =
                 (Integer.getSymbolTable().get(expression.getSymbolKey(), );
             // Select a non-default built-in implementation to compile the functor with, if it is a built-in.
             BuiltIn builtIn;
             if (expression instanceof BuiltIn)
                 builtIn = (BuiltInexpression;
                 builtIn = ;
             // The 'isFirstBody' parameter is only set to true, when this is the first functor of a rule.
             instructions = builtIn.compileBodyArguments(expressionfalseclauseNamebodyNumber);
             // Call the body. The number of permanent variables remaining is specified for environment trimming.
             instructions = builtIn.compileBodyCall(expressionfalsefalsefalse, 0 /*permVarsRemaining*/);
         return result;

     public SizeableLinkedList<WAMInstructioncompileBodyCall(Functor expressionboolean isFirstBody,
         boolean isLastBodyboolean chainRuleint permVarsRemaining)
         return new SizeableLinkedList<WAMInstruction>();

Creates a string representation of this functor, mostly used for debugging purposes.

A string representation of this functor.
    public String toString()
        return "Conjunction: [ arguments = " + toStringArguments() + " ]";
New to GrepCode? Check out our FAQ X