@DECL
ProcessPhrases(L("sent")) {
L("node") = pndown(L("sent"));
while (L("node")) {
L("name") = pnname(L("node"));
L("attr") = pnvar(L("node"),"phrase");
if (strstartswith(L("name"),"_") && L("attr")) {
L("trimmed") = strpiece(L("name"),1,strlength(L("name"))-1);
L("con") = pnvar(L("sent"),"con");
L("c") = MakeCountConPad(L("con"),L("trimmed"),3);
addstrval(L("c"),"text",pnvar(L("node"),"$text"));
IncrementPN(L("sent"),L("trimmed"));
}
L("node") = pnnext(L("node"));
}
}
LineAttrs(L("line"),L("node in")) {
L("len") = strlength(pnvar(L("line"),"$text"));
pnmakevar(L("line"),"length",L("len"));
L("node") = pndown(L("node in"));
L("first") = 1;
while (L("node")) {
L("name") = pnname(L("node"));
if (L("first")) {
if (strisupper(L("name"))) {
pnmakevar(L("line"),"first upper",1);
}
L("first") = 0;
}
if (L("name") != "_enum") {
if (strcontains(L("name"),",.:;!?")) {
IncrementPN(L("line"),"lower");
}
else if (pnvar(L("node"),"lower")) {
IncrementPN(L("line"),"lower");
} else if (strisupper(L("name"))) {
IncrementPN(L("line"),"upper");
}
IncrementPN(L("line"),"words");
}
if (!pnnext(L("node")) && IsCharPunct(L("name"))) {
pnmakevar(L("line"),"sent end",1);
}
L("node") = pnnext(L("node"));
}
}
IsCharPunct(L("char")) {
if (strcontains(L("char"),",.:;!?()")) {
return 1;
}
return 0;
}
AbsDiff(L("a"),L("b")) {
if (L("a") > L("b")) {
return L("a") - L("b");
}
return L("b") - L("a");
}
IncrementPN(L("node"),L("attr")) {
if (L("node")) {
L("at") = pnvar(L("node"),L("attr"));
if (!L("at")) {
pnmakevar(L("node"),L("attr"),1);
} else {
pnreplaceval(L("node"),L("attr"),L("at")+1);
}
}
}
@@DECL