def _(tree, params, rest): val = translate(tree, rest) if isinstance(val, FiVP): valverb = val.verb val.verb = FiA([ FiP(fi_verb, verbflags), compgen(valverb) if compgen else niTree(valverb, compflags) ]) val.flags |= phraseflags return val else: return FiA([ FiP(fi_verb, verbflags), compgen(val) if compgen else niTree(val, compflags) ])
def _(tree, params, rest): val = translate(tree, rest) val2 = translate(params["subtree"], PHRASE_RULES) return FiA( [val, FiNI("("), FiNI(fi_conj), niTree(val2), FiNI(")")], val.flags)
def _(tree, params, rest): val = translateRest(tree) val2 = translate(params["subtree"], VP_RULES) subj = translate(params["subj"], NP_RULES) return FiVP(verb=FiA([FiP("olla"), niTree(val2, {"-tava"}), val]), subj=subj, flags={"nollapersoona"})
def _(tree, params, rest): val = translate(tree, rest) val2 = translate(params["subtree"], VP_RULES) return FiA([val, niTree(val2, {"-a"})], val.flags)
def _(tree, params, rest): val = translateRest(tree) val2 = translate(params["subtree"], VP_RULES) # TODO: predikatiivimuoto erikseen: kykenevä tekemään return FiA([niTree(val2, {"-minen", "illatiivi"}), FiP("kykenevä"), val])
def _(tree, params, rest): ap = params["ap"] val = translate(tree, rest) val2 = translate(ap, ADVP_RULES) return FiA([val, niTree(val2)])
def _(tree, params, rest): ap = params["ap"] val = translate(tree, rest) val2 = translate(ap, NP_RULES) return FiA([niTree(val2, {"genetiivi"}), val], val.flags)
def _(tree, params, rest): val = translate(tree, rest) val2 = translate(params["proper"], NP_RULES) return FiA([niTree(val2, {"genetiivi"}), val], val.flags)
def _(tree, params, rest): return niTree(translateUnknownPos(tree), set())
def _(tree, params, rest): val = translateRest(tree) val2 = translate(params["subtree"], NP_RULES) return FiA([val, FiNI("kuin"), niTree(val2, {"nominatiivi"})], val.flags)
def _(tree, params, rest): val = translate(tree, rest) val2 = translate(params["prefix"], NP_RULES) return FiA([niTree(val2, {"nominatiivi"}), val], val.flags, compound=True)
def _(tree, params, rest): val = translateRest(tree) val2 = translate(params["subtree"], NP_RULES) return FiA([niTree(val2, {"genetiivi"}), FiNI("toimesta"), val])
def _(tree, params, rest): val = translate(tree, VP_RULES) return niTree(val, {"verbi", "imperatiivi", "yks_2", "subjekti yks_2"})
def _(tree, params, rest): val = translate(tree, VP_RULES) return niTree(val, { "verbi", "preteriti", "pe4" if "passiivi" in val.flags else "finiitti" })
def _(tree, params, rest): val = translate(tree, VP_RULES) return niTree(val, {"verbi", "preesens", "finiitti"})
def _(tree, params, rest): val = translateRest(tree) val2 = translate(params["subtree"], VP_RULES) return FiA([FiP("olla"), niTree(val2, {"-tava"}), val])