def p_RT1(p): """RT : TRAIT""" p[0] = Gloseur(head="RT", children=[ Gloseur(head="TRAIT", leaf=p[1], feedback=BTOS(bout=[], trait_ordre=[p[1]], syntaxe=[p[1]])) ], feedback=BTOS(bout=[], trait_ordre=[p[1]], syntaxe=[p[1]]))
def p_POLY(p): """POLY : POLYSE RT""" p[0] = Gloseur(head="POLY", children=[ Gloseur(head="POLYSE", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B, trait_ordre=[] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_RT2(p): """RT : TRAIT GPTRAITS""" p[0] = Gloseur(head="RT", children=[ Gloseur(head="TRAIT", leaf=p[1], feedback=BTOS(bout=[], trait_ordre=[p[1]], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[] + p[2].feedback.B, trait_ordre=[p[1]] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_GPHRASE(p): """GPHRASE : PHRASE K""" p[0] = Gloseur(head="GPHRASE", children=[ Gloseur(head="PHRASE", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B, trait_ordre=[] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_T9(p): """T : AFFIX POLYP""" p[0] = Gloseur(head="T", children=[ Gloseur(head="AFFIX", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B, trait_ordre=[] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_T15(p): "RT : POLYP CIRCONF1" p[0] = Gloseur(head="T", children=[ Gloseur(head="CIRCONF1", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B, trait_ordre=[] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_R2(p): """R : LEMME INHERP""" p[0] = Gloseur(head="R", children=[ Gloseur(head="LEMME", leaf=p[1], feedback=BTOS(bout=[], trait_ordre=[p[1]], syntaxe=[p[1]])), p[2] ], feedback=BTOS(bout=[] + p[2].feedback.B, trait_ordre=[p[1]] + p[2].feedback.TO, syntaxe=[p[1]] + p[2].feedback.S))
def p_T12(p): """T : POLYP CIRCONF2""" p[0] = Gloseur(head="T", children=[ p[1], Gloseur(head="CIRCONF2", leaf=p[2], feedback=BTOS(bout=[p[2]], trait_ordre=[], syntaxe=[p[2]])) ], feedback=BTOS(bout=p[1].feedback.B + [p[2]], trait_ordre=p[1].feedback.TO + [], syntaxe=p[1].feedback.S + [p[2]]))
def p_R4(p): """R : DPTRAIT LEMME""" p[0] = Gloseur(head="R", children=[ p[1], Gloseur(head="LEMME", leaf=p[2], feedback=BTOS(bout=[], trait_ordre=[p[2]], syntaxe=[p[2]])) ], feedback=BTOS(bout=p[1].feedback.B + [], trait_ordre=[] + [p[2]], syntaxe=p[1].feedback.S + [p[2]]))
def p_T6(p): """T : POLYP CLITIC""" p[0] = Gloseur(type=None, head="T", children=[ p[1], Gloseur(head="CLITIC", leaf=p[2], feedback=BTOS(bout=[p[2]], trait_ordre=[], syntaxe=[p[2]])) ], feedback=BTOS(bout=p[1].feedback.B + [p[2]], trait_ordre=p[1].feedback.TO + [], syntaxe=p[1].feedback.S + [p[2]]))
def p_RT3(p): """RT : GPTRAITS""" p[0] = Gloseur(head="RT", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_POLYP1(p): """POLYP : RT""" p[0] = Gloseur(head="POLYP", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_K1(p): """K : R""" p[0] = Gloseur(head="K", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_T14(p): """T : MORPH0""" p[0] = Gloseur(head="T", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_R3(p): """R : POLYP""" p[0] = Gloseur(head="R", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_GPHRASES1(p): """GPHRASES : GPHRASE GPHRASES | GPHRASE """ if len(p) == 3: p[0] = Gloseur(head="GPHRASES", children=[p[1], p[2]], feedback=BTOS( bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S)) else: p[0] = Gloseur(head="GPHRASES", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_TS1(p): """TS : T TS | T """ if len(p) == 3: p[0] = Gloseur(head="TS", children=[p[1], p[2]], feedback=BTOS( bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S)) else: p[0] = Gloseur(head="TS", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_GPTRAITS1(p): """GPTRAITS : GPTRAIT GPTRAITS | GPTRAIT """ if (len(p) == 3): p[0] = Gloseur(head="GPTRAITS", children=[p[1], p[2]], feedback=BTOS( bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S)) else: p[0] = Gloseur(head="GPTRAITS", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_POLYP2(p): """POLYP : RT POLYS""" p[0] = Gloseur(head="POLYP", children=[p[1], p[2]], feedback=BTOS(bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S))
def p_M2(p): """M : K GPHRASES""" p[0] = Gloseur(head="M", children=[p[1], p[2]], feedback=BTOS(bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S))
def p_POLYS1(p): """POLYS : POLY POLYS | POLY """ if len(p) == 3: p[0] = Gloseur(head="POLYS", children=[p[1], p[2]], feedback=BTOS( bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S)) else: p[0] = Gloseur(head="POLYS", children=[p[1]], feedback=BTOS(bout=p[1].feedback.B, trait_ordre=p[1].feedback.TO, syntaxe=p[1].feedback.S))
def p_K2(p): """K : R TS""" p[0] = Gloseur(head="K", children=[p[1], p[2]], feedback=BTOS(bout=p[1].feedback.B + p[2].feedback.B, trait_ordre=p[1].feedback.TO + p[2].feedback.TO, syntaxe=p[1].feedback.S + p[2].feedback.S))
def p_DPTRAIT(p): """DPTRAIT : TRAIT PORTMA""" p[0] = Gloseur(head="DPTRAIT", children=[ Gloseur(head="TRAIT", leaf=p[1], feedback=BTOS(bout=[], trait_ordre=[p[1]], syntaxe=[p[1]])), Gloseur(head="PORTMA", leaf=p[2], feedback=BTOS(bout=[p[2]], trait_ordre=[], syntaxe=[p[2]])) ], feedback=BTOS(bout=[] + [p[2]], trait_ordre=[p[1]] + [], syntaxe=[p[1]] + [p[2]]))
def p_MORPH0(p): """MORPH0 : GMORPH0 POLYP DMORPH0""" p[0] = Gloseur(head="MORPH0", children=[ Gloseur(head="GMORPH0", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2], Gloseur(head="DMORPH0", leaf=p[3], feedback=BTOS(bout=[p[3]], trait_ordre=[], syntaxe=[p[3]])) ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B + [p[3]], trait_ordre=[] + p[2].feedback.TO + [], syntaxe=[p[1]] + p[2].feedback.S + [p[3]]))
def p_INHERP(p): """INHERP : GINHER POLYP DINHER""" p[0] = Gloseur(head="INHERP", children=[ Gloseur(head="GINHER", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2], Gloseur(head="DINHER", leaf=p[3], feedback=BTOS(bout=[p[3]], trait_ordre=[], syntaxe=[p[3]])) ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B + [p[3]], trait_ordre=[] + p[2].feedback.TO + [], syntaxe=[p[1]] + p[2].feedback.S + [p[3]]))
def p_INFIX(p): """INFIX : GINFIX POLYP DINFIX""" p[0] = Gloseur(type=None, head="INFIX", children=[ Gloseur(head="GINFIX", leaf=p[1], feedback=BTOS(bout=[p[1]], trait_ordre=[], syntaxe=[p[1]])), p[2], Gloseur(head="DINFIX", leaf=p[3], feedback=BTOS(bout=[p[3]], trait_ordre=[], syntaxe=[p[3]])) ], feedback=BTOS(bout=[p[1]] + p[2].feedback.B + [p[3]], trait_ordre=[] + p[2].feedback.TO + [], syntaxe=[p[1]] + p[2].feedback.S + [p[3]]))