From 436ddd5ebf531c2693af9402236a5a0c462dc5b7 Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 24 Mar 2007 23:11:59 +0000 Subject: simple source language for compiler experiment --- devel/compiler/ex.src | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 devel/compiler/ex.src (limited to 'devel/compiler/ex.src') diff --git a/devel/compiler/ex.src b/devel/compiler/ex.src new file mode 100644 index 000000000..33890fb89 --- /dev/null +++ b/devel/compiler/ex.src @@ -0,0 +1,31 @@ +param Num = Sg | Pl ; +param Gen = Masc | Fem ; + +oper Agr = {g : Gen ; n : Num} ; + +oper CN = {s : Num -> Str ; g : Gen} ; +oper NP = {s : Str ; a : Agr} ; + +oper artDef : Gen -> Str = \g -> table { + (Masc) => "le" ; + (Fem) => "la" +} ! g ; + + +lin Voiture : CN = { + s = table { + (Sg) => "voiture" ; + (Pl) => "voitures" + } ; + g = Fem +} ; + +lin Bus : CN = { + s = table {$x => "bus"} ; + g = Masc +} ; + +lin Def : CN -> NP = \cn -> { + s = artDef cn.g ++ cn.s ! Sg ; + a = {g = cn.g ; n = Sg} +} ; -- cgit v1.2.3