swapping some arguments in LibraryBrowser

This commit is contained in:
aarne
2012-05-31 11:48:29 +00:00
parent e905764fe6
commit e24008bdf2
2 changed files with 23 additions and 15 deletions

View File

@@ -399,6 +399,8 @@ incomplete resource Constructors = open Grammar in { --%
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --% = \s,v,n,q -> PredVP s (ComplSlash (SlashV2Q v q) n) ; --%
mkCl : NP -> V2V -> NP -> VP -> Cl -- she begs him to sleep mkCl : NP -> V2V -> NP -> VP -> Cl -- she begs him to sleep
= \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --% = \s,v,n,q -> PredVP s (ComplSlash (SlashV2V v q) n) ; --%
mkCl : NP -> VPSlash -> NP -> Cl -- she begs him to sleep here
= \s,v,n -> PredVP s (ComplSlash v n) ; --%
mkCl : NP -> A -> Cl -- she is old mkCl : NP -> A -> Cl -- she is old
= \x,y -> PredVP x (UseComp (CompAP (PositA y))) ; --% = \x,y -> PredVP x (UseComp (CompAP (PositA y))) ; --%
mkCl : NP -> A -> NP -> Cl -- she is older than him mkCl : NP -> A -> NP -> Cl -- she is older than him

View File

@@ -10,17 +10,17 @@ lincat
Sub10, Sub100, Sub1000, Sub1000000, Subj, Temp, Tense, Text, Utt, V, V2, V2A, V2Q, V2S, V2V, V3, Sub10, Sub100, Sub1000, Sub1000000, Subj, Temp, Tense, Text, Utt, V, V2, V2A, V2Q, V2S, V2V, V3,
VA, VP, VPSlash, VQ, VS, VV, Voc = Term ; VA, VP, VPSlash, VQ, VS, VV, Voc = Term ;
oper Term = {s : Str ; f,x : Str ; par : Str * Str ; flat : Bool} ; oper Term = {s : Str ; f,x,swap : Str ; par : Str * Str ; flat : Bool} ;
oper mkTerm = overload { oper mkTerm = overload {
mkTerm : Str -> Term = \f -> mkTerm : Str -> Term = \f ->
{s = f ; f = f ; x = [] ; par = noPar ; flat = False} ; {s = f ; f = f ; x,swap = [] ; par = noPar ; flat = False} ;
mkTerm : Str -> Term -> Term = \f,x -> mkTerm : Str -> Term -> Term = \f,x ->
appTerm f (fullTerm x) ; appTerm f (fullTerm x) ;
mkTerm : Str -> (_,_ : Term) -> Term = \f,x,y -> mkTerm : Str -> (_,_ : Term) -> Term = \f,x,y ->
appTerm f (fullTerm x ++ fullTerm y) ; appTerm f (concatTerm x y) ;
mkTerm : Str -> (_,_,_ : Term) -> Term = \f,x,y,z -> mkTerm : Str -> (_,_,_ : Term) -> Term = \f,x,y,z ->
appTerm f (fullTerm x ++ fullTerm y ++ fullTerm z) ; appTerm f (fullTerm x ++ concatTerm y z) ;
mkTerm : Str -> (_,_,_,_ : Term) -> Term = \f,x,y,z,u -> mkTerm : Str -> (_,_,_,_ : Term) -> Term = \f,x,y,z,u ->
appTerm f (fullTerm x ++ fullTerm y ++ fullTerm z ++ fullTerm u) ; appTerm f (fullTerm x ++ fullTerm y ++ fullTerm z ++ fullTerm u) ;
} ; } ;
@@ -28,15 +28,21 @@ oper mkTerm = overload {
noPar = <[],[]> ; noPar = <[],[]> ;
yesPar = <"(",")"> ; yesPar = <"(",")"> ;
appTerm : Str -> Str -> Term = \f,x -> {s = f ++ x ; f = f ; x = x ; par = yesPar ; flat = False} ; appTerm : Str -> Str -> Term = \f,x -> {s = f ++ x ; f = f ; x = x ; swap = [] ; par = yesPar ; flat = False} ;
useTerm : Term -> Str = \t -> t.f ++ t.x ; useTerm : Term -> Str = \t -> t.f ++ t.x ++ t.swap ;
fullTerm : Term -> Str = \t -> t.par.p1 ++ t.f ++ t.x ++ t.par.p2 ; fullTerm : Term -> Str = \t -> t.par.p1 ++ t.f ++ t.x ++ t.swap ++ t.par.p2 ;
flatTerm : Term -> Term = \t -> {s = t.x ; f = [] ; x = t.x ; par = noPar ; flat = False} ; flatTerm : Term -> Term = \t -> {s = t.x ; f = [] ; x = t.x ; swap = t.swap ; par = noPar ; flat = False} ;
flatIfTerm : Term -> Term = \t -> case t.flat of { flatIfTerm : Term -> Term = \t -> case t.flat of {
True => flatTerm t ; True => flatTerm t ;
False => t False => t
} ; } ;
mkFlat : Term -> Term = \t -> {s = t.s ; f = t.f ; x = t.x ; par = t.par ; flat = True} ; mkFlat : Term -> Term = \t -> {s = t.s ; f = t.f ; x = t.x ; swap = t.swap ; par = t.par ; flat = True} ;
mkSwap : Term -> Term = \t -> {s = t.s ; f = t.f ; x = [] ; swap = t.x ; par = t.par ; flat = False} ;
mkSwapTerm : Str -> Term -> Term -> Term = \f,x,y ->
let xs = fullTerm x ; ys = fullTerm y in
{s = f ++ xs ++ ys ; f = f ; x = xs ; swap = ys ; par = yesPar ; flat = False} ;
concatTerm : Term -> Term -> Str = \t,u ->
(t.par.p1 ++ t.f ++ t.x ++ t.par.p2 ++ fullTerm u ++ t.swap) ;
hide : Str -> Str = \f -> [] ; hide : Str -> Str = \f -> [] ;
@@ -129,7 +135,7 @@ lin FunRP prep_1 np_2 rp_3 = mkTerm "mkRP" prep_1 np_2 rp_3 ;
lin GenericCl vp_1 = mkTerm "genericCl" vp_1 ; lin GenericCl vp_1 = mkTerm "genericCl" vp_1 ;
lin IDig dig_1 = mkTerm "mkDigits" (mkTerm "\"999999\"") ; -- mkTerm "mkDigits" dig_1 ; lin IDig dig_1 = mkTerm "mkDigits" (mkTerm "\"999999\"") ; -- mkTerm "mkDigits" dig_1 ;
lin IIDig dig_1 digits_2 = mkTerm "mkDigits" (mkTerm "\"999\"") ; -- mkTerm "mkDigits" dig_1 digits_2 ; lin IIDig dig_1 digits_2 = mkTerm "mkDigits" (mkTerm "\"999\"") ; -- mkTerm "mkDigits" dig_1 digits_2 ;
lin IdRP = mkTerm "IdRP" ; lin IdRP = mkTerm "which_RP" ;
lin IdetCN idet_1 cn_2 = mkTerm "mkIP" idet_1 cn_2 ; lin IdetCN idet_1 cn_2 = mkTerm "mkIP" idet_1 cn_2 ;
lin IdetIP idet_1 = mkTerm "mkIP" idet_1 ; lin IdetIP idet_1 = mkTerm "mkIP" idet_1 ;
lin IdetQuant iquant_1 num_2 = mkTerm "mkIDet" iquant_1 num_2 ; lin IdetQuant iquant_1 num_2 = mkTerm "mkIDet" iquant_1 num_2 ;
@@ -184,12 +190,12 @@ lin SSubjS s_1 subj_2 s_3 = mkTerm "mkS" s_1 subj_2 s_3 ;
lin SentAP ap_1 sc_2 = mkTerm "mkAP" ap_1 sc_2 ; lin SentAP ap_1 sc_2 = mkTerm "mkAP" ap_1 sc_2 ;
lin SentCN cn_1 sc_2 = mkTerm "mkCN" cn_1 sc_2 ; lin SentCN cn_1 sc_2 = mkTerm "mkCN" cn_1 sc_2 ;
lin Slash2V3 v3_1 np_2 = mkTerm "mkVPSlash" v3_1 np_2 ; lin Slash2V3 v3_1 np_2 = mkTerm "mkVPSlash" v3_1 np_2 ;
lin Slash3V3 v3_1 np_2 = mkFlat (mkTerm "mkVPSlash" v3_1 np_2) ; lin Slash3V3 v3_1 np_2 = mkFlat (mkSwapTerm "mkVPSlash" v3_1 np_2) ;
lin SlashPrep cl_1 prep_2 = mkTerm "mkClSlash" cl_1 prep_2 ; lin SlashPrep cl_1 prep_2 = mkTerm "mkClSlash" cl_1 prep_2 ;
lin SlashV2A v2a_1 ap_2 = mkFlat (mkTerm "mkVPSlash" v2a_1 ap_2) ; lin SlashV2A v2a_1 ap_2 = mkFlat (mkSwapTerm "mkVPSlash" v2a_1 ap_2) ;
lin SlashV2Q v2q_1 qs_2 = mkFlat (mkTerm "mkVPSlash" v2q_1 qs_2) ; lin SlashV2Q v2q_1 qs_2 = mkFlat (mkSwapTerm "mkVPSlash" v2q_1 qs_2) ;
lin SlashV2S v2s_1 s_2 = mkFlat (mkTerm "mkVPSlash" v2s_1 s_2) ; lin SlashV2S v2s_1 s_2 = mkFlat (mkSwapTerm "mkVPSlash" v2s_1 s_2) ;
lin SlashV2V v2v_1 vp_2 = mkFlat (mkTerm "mkVPSlash" v2v_1 vp_2) ; lin SlashV2V v2v_1 vp_2 = mkFlat (mkSwapTerm "mkVPSlash" v2v_1 vp_2) ;
lin SlashV2VNP v2v_1 np_2 vpslash_3 = mkTerm "mkVPSlash" v2v_1 np_2 vpslash_3 ; lin SlashV2VNP v2v_1 np_2 vpslash_3 = mkTerm "mkVPSlash" v2v_1 np_2 vpslash_3 ;
lin SlashV2a v2_1 = mkFlat (mkTerm "mkVPSlash" v2_1) ; lin SlashV2a v2_1 = mkFlat (mkTerm "mkVPSlash" v2_1) ;
lin SlashVP np_1 vpslash_2 = mkTerm "mkClSlash" np_1 vpslash_2 ; lin SlashVP np_1 vpslash_2 = mkTerm "mkClSlash" np_1 vpslash_2 ;