Files
gf-core/examples/godis-tram/Tram/TramSystem.gf
2006-11-08 15:08:09 +00:00

65 lines
1.3 KiB
Plaintext

--# -path=.:../Common:prelude
abstract TramSystem = GodisSystem, Stops, Lines ** {
cat
Route; -- route descripiption.
Leg;
[Leg]{2}; -- route segments on a line
-- the following are derived from declaring [Leg]{2}:
-- BaseLeg : Leg -> Leg -> [Leg];
-- ConsLeg : Leg -> [Leg] -> [Leg];
fun
-----------------------------------------------------------------
-- Functions for creating routes
lineLeg : Line -> Stop -> Stop -> Leg;
oneLeg : Leg -> Route;
mkRoute : [Leg] -> Route;
-------------------------------------------------------------------
-- Predicates
-- Questions and Propositions as they are intended to be used
-- by either System or User
-- U: what is the shortest route?
shortest_route_Q : Question;
-- S: Take Tram Z from X to Y. Take...
shortest_route_P : Route -> Proposition;
-- S: Where do you want to go to?
dest_stop_Q : Question;
-- U: I want to go to Stop
dest_stop_P : Stop -> Proposition;
-- S: Where do you want to go from?
dept_stop_Q : Question;
-- U: I want to go from Stop
dept_stop_P : Stop -> Proposition;
-----------------------------------------------------------------
-- Short answers
-- U: "klippan"
stop : Stop -> ShortAns;
------------------------------------------------------------------
-- Actions
-- S: GoTGoDiS is a tram information system
help: Action;
-- S: restarting
top: Action;
}