diff options
| author | aarne <unknown> | 2004-01-29 12:03:23 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-01-29 12:03:23 +0000 |
| commit | fdddeca0d08ba68b564b14359ef9b4a697cdb636 (patch) | |
| tree | 711b817c905f33b5e196582183c3d4bc7d757b40 /examples/letter/letter.Abs.gf | |
| parent | 4c31deb83940be8e6ff3775013aec5da593c4d7a (diff) | |
Improving unicode menus, e.g. in Letter.
Diffstat (limited to 'examples/letter/letter.Abs.gf')
| -rw-r--r-- | examples/letter/letter.Abs.gf | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/examples/letter/letter.Abs.gf b/examples/letter/letter.Abs.gf new file mode 100644 index 000000000..48be93a33 --- /dev/null +++ b/examples/letter/letter.Abs.gf @@ -0,0 +1,80 @@ +--1 An Abstract Syntax for Business and Love Letters +-- +-- This file defines the abstract syntax of a grammar set whose concrete syntax +-- has so far been written to five languages: English, Finnish, French, Russian, +-- and Swedish. +-- +-- The main category of the grammar is $Letter$. The other categories are +-- parts of the letter. + +flags startcat=Letter ; + +cat + Letter ; + Recipient ; Author ; + Message ; + Heading ; Ending ; + Mode ; Sentence ; NounPhrase ; Position ; + +-- There is just one top-level letter structure. + +fun + MkLetter : Heading -> Message -> Ending -> Letter ; + +-- The heading consists of a greeting of the recipient. The $JustHello$ +-- function will actually suppress the name (and title) of the recipient, +-- but the $Recipient$ argument keeps track of the gender and number. + + DearRec : Recipient -> Heading ; + PlainRec : Recipient -> Heading ; + HelloRec : Recipient -> Heading ; + JustHello : Recipient -> Heading ; + +-- A message is a sentence with of without a *mode*, which is either +-- regret or honour. + + ModeSent : Mode -> Sentence -> Message ; + PlainSent : Sentence -> Message ; + + Honour, Regret : Mode ; + +-- The ending is either formal or informal. It does not currently depend on +-- the heading: making it so would eliminate formality mismatches between +-- the heading and the ending. + + FormalEnding : Author -> Ending ; + InformalEnding : Author -> Ending ; + +-- The recipient is either a colleague, colleagues, or darling. +-- It can also be a named person. The gender distinction is made +-- because there are things in the body of the letter that depend on it. + + ColleagueHe, ColleagueShe : Recipient ; + ColleaguesHe, ColleaguesShe : Recipient ; + DarlingHe, DarlingShe : Recipient ; + + NameHe, NameShe : String -> Recipient ; + +-- For the author, there is likewise a fixed set of titles, plus the named author. +-- Gender distinctions could be useful even here, for the same reason as with +-- $Recipient$. Notice that the rendering of $Spouse$ will depend on the +-- gender of the recipient. + + President, Mother, Spouse, Dean : Author ; + Name : String -> Author ; + +-- As for the message body, no much choice is yet available: one can say that +-- the recipient is promoted to some position, that someone has gone bankrupt, +-- or that the author loves the recipient. + + BePromoted : Position -> Sentence ; + GoBankrupt : NounPhrase -> Sentence ; + ILoveYou : Sentence ; + + Competitor : NounPhrase ; + Company : NounPhrase ; + OurCustomers : NounPhrase ; + + Senior : Position ; + ProjectManager : Position ; + |
