diff --git a/next-lib/src/parse/ParseEng.gf b/next-lib/src/parse/ParseEng.gf index 889aa0dc2..bee66010d 100644 --- a/next-lib/src/parse/ParseEng.gf +++ b/next-lib/src/parse/ParseEng.gf @@ -82,8 +82,16 @@ lin RelSlash rp slash = variants { RelativeEng.RelSlash rp slash; StrandRelSlash -- Allow both "who"/"which" and "that" --- FIXME: allow both "who" and "which" for all genders -lin IdRP = variants { RelativeEng.IdRP; that_RP } ; +lin IdRP = + { s = table { + RC _ Gen => "whose" ; + RC Neutr _ => variants { "which"; "that"; {- for dictionary entries with the wrong gender -} "who" } ; + RC _ Acc => variants { "whom"; "that"; {- incorrect but common -} "who" } ; + RC _ Nom => variants { "who" ; "that" } ; + RPrep _ => variants { "which"; "whom"; {- incorrect but common -} "who" } + } ; + a = RNoAg + } ; lin everybody_NP = variants { regNP "everybody" singular; regNP "everyone" singular } ; lin somebody_NP = variants { regNP "somebody" singular; regNP "someone" singular } ; diff --git a/next-lib/src/parse/ParseEngAbs.gf b/next-lib/src/parse/ParseEngAbs.gf index 5ac51a5cc..1cd65ea62 100644 --- a/next-lib/src/parse/ParseEngAbs.gf +++ b/next-lib/src/parse/ParseEngAbs.gf @@ -1,9 +1,9 @@ abstract ParseEngAbs = Parse, ExtraEngAbs - [ - -- Don't include the uncontracted clauses. Instead - -- use them as variants of the contracted ones. - UncNegCl, UncNegQCl, UncNegRCl, UncNegImpSg, UncNegImpPl + UncNegCl, UncNegQCl, UncNegRCl, UncNegImpSg, UncNegImpPl, + StrandRelSlash, + that_RP ], Lexicon [N3, distance_N3,