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