new tutorial almost finished

This commit is contained in:
aarne
2007-07-06 15:37:32 +00:00
parent bece5b2974
commit bb423658aa
6 changed files with 916 additions and 396 deletions

View File

@@ -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 ;
}

View File

@@ -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" ;
}