mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
@@ -73,8 +73,7 @@ flags
|
||||
drink_V2 = dirV2 (regV "شَرِب") ;
|
||||
-- drink_V2 = dirV2 (v1 "شرب" i a) ;
|
||||
easy_A2V = mkA2 (sndA "سهل" "فَعل") "لِ" ;
|
||||
eat_V2 = dirV2 (regV "يَ؟كُل") ;
|
||||
-- eat_V2 = dirV2 (v1 "؟كل" a u) ;
|
||||
eat_V2 = dirV2 (mkV "ءكل" FormI) ;
|
||||
empty_A = sndA "فرغ" "فاعِل" ;
|
||||
enemy_N = brkN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
|
||||
factory_N = brkN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||
|
||||
@@ -4,12 +4,22 @@ flags coding=utf8 ;
|
||||
|
||||
oper
|
||||
|
||||
-- Definite article assimilation
|
||||
vow : pattern Str = #("َ" | "ِ" | "ُ") ;
|
||||
|
||||
|
||||
-- "Sun letters": assimilate with def. article
|
||||
sun : pattern Str = #("ت"|"ث"|"د"|"ذ"|"ر"|"ز"|"س"|"ش"|"ص"|"ض"|"ط"|"ظ"|"ل"|"ن") ;
|
||||
|
||||
-- Hamza
|
||||
hamza : pattern Str = #("ء"|"؟") ;
|
||||
|
||||
rectifyHmz: Str -> Str = \word ->
|
||||
case word of {
|
||||
l@(""|"ال") + "؟" + v@("َ"|"ُ") + tail => l + "أ" + v + tail;
|
||||
l@(""|"ال") + "؟" + v@("ِ") + tail => l + "إ" + v + tail;
|
||||
head + v1@("ِ"|"ُ"|"َ"|"ْ"|"ا"|"ي"|"و") + "؟" + v2@(""|"ُ"|"َ"|"ْ"|"ِ") => head + v1 + (tHmz v1) + v2;
|
||||
head + "؟" + tail => head + (bHmz (dp 2 head) (take 2 tail)) + tail; --last head , take 1 tail
|
||||
l@(""|"ال") + #hamza + v@("َ"|"ُ") + tail => l + "أ" + v + tail;
|
||||
l@(""|"ال") + #hamza + v@("ِ") + tail => l + "إ" + v + tail;
|
||||
head + v1@("ِ"|"ُ"|"َ"|"ْ"|"ا"|"ي"|"و") + #hamza + v2@(""|"ُ"|"َ"|"ْ"|"ِ") => head + v1 + (tHmz v1) + v2;
|
||||
head + #hamza + tail => head + (bHmz (dp 2 head) (take 2 tail)) + tail; --last head , take 1 tail
|
||||
_ => word
|
||||
};
|
||||
|
||||
|
||||
@@ -274,7 +274,7 @@ resource ParadigmsAra = open
|
||||
let { raw = v1' rootStr vPerf vImpf } in
|
||||
{ s = \\vf =>
|
||||
case rootStr of {
|
||||
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
||||
_ + #hamza + _ => rectifyHmz(raw.s ! vf);
|
||||
_ => raw.s ! vf
|
||||
};
|
||||
lock_V = <>
|
||||
@@ -336,7 +336,7 @@ resource ParadigmsAra = open
|
||||
let { raw = v5' rootStr } in
|
||||
{ s = \\vf =>
|
||||
case rootStr of {
|
||||
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
||||
_ + #hamza + _ => rectifyHmz(raw.s ! vf);
|
||||
_ => raw.s ! vf
|
||||
};
|
||||
lock_V = <>
|
||||
@@ -396,7 +396,7 @@ resource ParadigmsAra = open
|
||||
let { raw = brkN' root sg pl gen spec} in
|
||||
{ s = \\n,d,c =>
|
||||
case root of {
|
||||
_ + "؟" + _ => rectifyHmz(raw.s ! n ! d ! c);
|
||||
_ + #hamza + _ => rectifyHmz(raw.s ! n ! d ! c);
|
||||
_ => raw.s ! n ! d ! c
|
||||
};
|
||||
g = gen;
|
||||
@@ -491,7 +491,7 @@ resource ParadigmsAra = open
|
||||
let raw = sndA' root pat in {
|
||||
s = \\af =>
|
||||
case root of {
|
||||
_ + "؟" + _ => rectifyHmz(raw.s ! af);
|
||||
_ + #hamza + _ => rectifyHmz(raw.s ! af);
|
||||
_ => raw.s ! af
|
||||
};
|
||||
lock_A = <>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
---- implement $Test$, it moreover contains regular lexical
|
||||
---- patterns needed for $Lex$.
|
||||
--
|
||||
resource ResAra = PatternsAra ** open Prelude, Predef, ParamX in {
|
||||
resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
|
||||
|
||||
flags optimize=noexpand ; coding=utf8 ;
|
||||
|
||||
@@ -94,7 +94,8 @@ resource ResAra = PatternsAra ** open Prelude, Predef, ParamX in {
|
||||
w@_ + "ف" + x@_ + "ع" + y@_ =>
|
||||
let pat = { h = w ; m1 = x; m2 = ""; t = y} in
|
||||
case <length rS : Ints 100> of {
|
||||
6 | 5 => mkWeak pat (mkRoot3 rS) ; --3=>
|
||||
-- 6 | 5 => mkWeak pat (mkRoot3 rS) ; --3=>
|
||||
6 | 5 => mkHollow pat (mkRoot3 rS) ; --3=>
|
||||
4 | 3 => mkBilit pat (mkRoot2 rS) ; --2=>
|
||||
_ => rS ---- AR error "expected 3--6"
|
||||
}
|
||||
@@ -880,10 +881,6 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
_ => ""
|
||||
};
|
||||
|
||||
-- "Sun letters": assimilate with def. article
|
||||
sun : pattern Str = #("ت"|"ث"|"د"|"ذ"|"ر"|"ز"|"س"|"ش"|"ص"|"ض"|"ط"|"ظ"|"ل"|"ن") ;
|
||||
|
||||
vow : pattern Str = #("َ" | "ِ" | "ُ") ;
|
||||
defArt : State -> Str -> Str = \st,stem -> -- IL -- to be checked
|
||||
let al = "ال" in
|
||||
case st of {
|
||||
|
||||
Reference in New Issue
Block a user