-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rule.cpp
37 lines (30 loc) · 687 Bytes
/
Rule.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Rule.cpp
// Project2
//
// Created by Michael Bird on 7/3/14.
// Copyright (c) 2014 Michael Bird. All rights reserved.
//
#include "Rule.h"
#include <sstream>
Rule::Rule() {};
Rule::~Rule() {};
void Rule::add_head(Predicate head) {
rule_head = head;
}
void Rule::add_rule(Predicate rule_pred) {
rule_body.push_back(rule_pred);
}
string Rule::toString() {
stringstream ss;
ss << rule_head.toString() << " :- ";
for(auto rule_pred: rule_body)
ss << rule_pred.toString() << ",";
string rule = ss.str();
rule.pop_back(); // removes the last comma
return rule;
}
void Rule::clear() {
rule_head.clear();
rule_body.clear();
}