14 enum class POS {
None,
S,
SBAR,
NP,
NPS,
NPO,
NPPOSS,
VP,
MD,
PP,
CP,
CC,
N,
V,
P,
A};
64 referent(-1), target(false), linear_order(0), pos(
POS::
None), word(
""){
69 const std::string& s = n.
child(0).label.value();
75 if(p != std::string::npos) {
76 referent = stoi(s.substr(p+1));
77 label = s.substr(0,p);
85 if(label.length() > 0 and label.at(0) ==
'>') {
87 label = label.substr(1,std::string::npos);
91 if(
posmap.count(label) != 0){
101 word = n.
child(1).label.value();
104 for(
size_t i=copy_from;i<n.
nchildren();i++) {
133 referent = t.referent;
135 linear_order = t.linear_order;
151 referent = t.referent;
153 linear_order = t.linear_order;
166 return (t.referent != -1) and
171 return root()->get_via(f);
174 std::string
string(
bool usedot=
true)
const override {
175 std::string out =
"[" + (target ? std::string(
">") :
"") +
177 (referent > -1 ?
"."+
str(referent) :
"") +
181 out +=
" " + c.string();
189 return (target ?
">" :
"") + label +
" " + std::to_string(referent);
196 if(t ==
nullptr)
return "nullptr";
This is the return type of parsing S-expressions. It contains an optional label and typically we be c...
POS
Definition: BindingTree.h:14
This is a general tree class, which we are adding because there are currently at least 3 different tr...
bool target
Definition: BindingTree.h:49
BindingTree(const SExpression::SExpNode &n)
This is a convertion from S-expression parsing.
Definition: BindingTree.h:63
std::string label
Definition: BindingTree.h:52
BindingTree()
Definition: BindingTree.h:55
std::function children
Definition: MyGrammar.h:25
Definition: BindingTree.h:46
int referent
Definition: BindingTree.h:48
Definition: SExpression.h:20
std::string word
Definition: BindingTree.h:53
BindingTree * coreferent()
Definition: BindingTree.h:162
BindingTree(const BindingTree &&t)
Definition: BindingTree.h:130
std::string str(BindingTree *t)
Definition: BindingTree.h:195
Definition: BaseNode.h:20
void operator=(const BindingTree &&t)
Definition: BindingTree.h:147
BindingTree(const BindingTree &t)
Definition: BindingTree.h:122
this_t & child(const size_t i)
Definition: BaseNode.h:175
int linear_order
Definition: BindingTree.h:50
void operator=(const this_t &t)
Definition: BaseNode.h:51
BindingTree * get_target()
Definition: BindingTree.h:157
std::string string(bool usedot=true) const override
Definition: BindingTree.h:174
std::string my_string() const override
Definition: BindingTree.h:187
POS pos
Definition: BindingTree.h:51
size_t nchildren() const
Definition: BaseNode.h:208
void operator=(const BindingTree &t)
Definition: BindingTree.h:138
std::map< std::string, POS > posmap
Definition: BindingTree.h:16