mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-03 00:02:50 -06:00
godis tram grammars, augmented with Fin
This commit is contained in:
64
examples/godis-tram/Tram/TramSystem.gf
Normal file
64
examples/godis-tram/Tram/TramSystem.gf
Normal file
@@ -0,0 +1,64 @@
|
||||
--# -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;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user