From bb423658aa79e5cfdb5a89ec6af2f522a5bdb0cc Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 6 Jul 2007 15:37:32 +0000 Subject: new tutorial almost finished --- doc/tutorial/smarthouse/Smart.gf | 17 +++++++++++++++++ doc/tutorial/smarthouse/SmartEng.gf | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 doc/tutorial/smarthouse/Smart.gf create mode 100644 doc/tutorial/smarthouse/SmartEng.gf (limited to 'doc/tutorial/smarthouse') diff --git a/doc/tutorial/smarthouse/Smart.gf b/doc/tutorial/smarthouse/Smart.gf new file mode 100644 index 000000000..f23082b47 --- /dev/null +++ b/doc/tutorial/smarthouse/Smart.gf @@ -0,0 +1,17 @@ +abstract Smart = { + +flags startcat = Command ; + +cat + Command ; + Kind ; + Action Kind ; + Device Kind ; +fun + CAction : (k : Kind) -> Action k -> Device k -> Command ; + DKindOne : (k : Kind) -> Device k ; + light, fan : Kind ; + switchOn, switchOff : (k : Kind) -> Action k ; + dim : Action light ; +} + diff --git a/doc/tutorial/smarthouse/SmartEng.gf b/doc/tutorial/smarthouse/SmartEng.gf new file mode 100644 index 000000000..0f59cd1e0 --- /dev/null +++ b/doc/tutorial/smarthouse/SmartEng.gf @@ -0,0 +1,19 @@ +--# -path=.:prelude + +concrete SmartEng of Smart = open Prelude in { + +-- part of grammar Toy1 from the Regulus book + +lincat + Command, Kind, Action, Device = SS ; +lin + CAction _ act dev = ss (act.s ++ dev.s) ; + DKindOne k = ss ("the" ++ k.s) ; + + light = ss "light" ; + fan = ss "fan" ; + switchOn _ = ss ["switch on"] ; + switchOff _ = ss ["switch off"] ; + dim = ss "dim" ; +} + -- cgit v1.2.3