File head.hpp

class IHead
#include <head.hpp>

Defines an interface for all classes that represent the head of a rule.

Subclassed by CompleteHead, PartialHead

Public Types

typedef std::function<void(const CompleteHead&)> CompleteHeadVisitor

A visitor function for handling objects of the type CompleteHead.

typedef std::function<void(const PartialHead&)> PartialHeadVisitor

A visitor function for handling objects of the type PartialHead.

Public Functions

inline virtual ~IHead()
virtual void visit(CompleteHeadVisitor completeHeadVisitor, PartialHeadVisitor partialHeadVisitor) const = 0

Invokes one of the given visitor functions, depending on which one is able to handle this particular type of head.

Parameters:
  • completeHeadVisitor – The visitor function for handling objects of the type CompleteHead

  • partialHeadVisitor – The visitor function for handling objects of the type PartialHead