summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorjohn.j.camilleri <john.j.camilleri@chalmers.se>2011-11-10 12:03:15 +0000
committerjohn.j.camilleri <john.j.camilleri@chalmers.se>2011-11-10 12:03:15 +0000
commit4baa44a933f9a7dd57db7eaab98048792e140e20 (patch)
treeb43bbe84398acfc8b3ac867c64e7c7f6e9e6853c /contrib
parentb25ec6ae8934f61b9a18ac1de49b191c050892d9 (diff)
Fixed lock field warnings in FoodsMlt
Diffstat (limited to 'contrib')
-rw-r--r--contrib/summerschool/foods/FoodsMlt.gf73
1 files changed, 4 insertions, 69 deletions
diff --git a/contrib/summerschool/foods/FoodsMlt.gf b/contrib/summerschool/foods/FoodsMlt.gf
index a10d1f380..71da86202 100644
--- a/contrib/summerschool/foods/FoodsMlt.gf
+++ b/contrib/summerschool/foods/FoodsMlt.gf
@@ -1,80 +1,15 @@
--- (c) 2009 John Camilleri under LGPL
+-- (c) 2011 John Camilleri under LGPL
-concrete FoodsMlt of Foods = open Prelude in {
+concrete FoodsMlt of Foods = open Prelude, ResMlt in {
flags coding=utf8 ;
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem ;
-
- lincat
+ lincat
Comment = SS ;
Quality = {s : Gender => Number => Str} ;
Kind = {s : Number => Str ; g : Gender} ;
Item = {s : Str ; g : Gender ; n : Number} ;
- oper
- --Create an adjective (full function)
- --Params: Sing Masc, Sing Fem, Plural
- adjective : (_,_,_ : Str) -> {s : Gender => Number => Str} = \iswed,sewda,suwed -> {
- s = table {
- Masc => table {
- Sg => iswed ;
- Pl => suwed
- } ;
- Fem => table {
- Sg => sewda ;
- Pl => suwed
- }
- }
- } ;
-
- --Create a regular adjective
- --Param: Sing Masc
- regAdj : Str -> {s : Gender => Number => Str} = \frisk ->
- adjective frisk (frisk + "a") (frisk + "i") ;
-
- --Create a "uni-adjective" eg tal-buzz
- --Param: Sing Masc
- uniAdj : Str -> {s : Gender => Number => Str} = \uni ->
- adjective uni uni uni ;
-
- --Create a noun
- --Params: Singular, Plural, Gender (inherent)
- noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = \ktieb,kotba,g -> {
- s = table {
- Sg => ktieb ;
- Pl => kotba
- } ;
- g = g
- } ;
-
- --Copula is a linking verb
- --Params: Number, Gender
- copula : Number -> Gender -> Str = \n,g -> case n of {
- Sg => case g of { Masc => "huwa" ; Fem => "hija" } ;
- Pl => "huma"
- } ;
-
- --Create an article, taking into account first letter of next word
- article = pre {
- "a"|"e"|"i"|"o"|"u" => "l-" ;
- --cons@("ċ"|"d"|"n"|"r"|"s"|"t"|"x"|"ż") => "i" + cons + "-" ;
- _ => "il-"
- } ;
-
- --Create a determinant
- --Params: Sg/Pl, Masc, Fem
- det : Number -> Str -> Str -> Kind -> {s : Str ; g : Gender ; n : Number} = \n,m,f,cn -> {
- s = case n of {
- Sg => case cn.g of {Masc => m ; Fem => f}; --string
- Pl => m --default to masc
- } ++ article ++ cn.s ! n ;
- g = cn.g ; --gender
- n = n --number
- } ;
-
- lin
+ lin
Pred item quality = ss (item.s ++ copula item.n item.g ++ quality.s ! item.g ! item.n) ;
This kind = det Sg "dan" "din" kind ;