Added languageCode function to the PGF API.

This commit is contained in:
bjorn
2008-08-18 09:25:43 +00:00
parent 7743fee09c
commit 5e1836d4f9

View File

@@ -22,7 +22,7 @@ module PGF(
CId, mkCId, prCId,
-- ** Language
Language, languages, abstractName,
Language, languages, abstractName, languageCode,
-- ** Category
Category, categories, startCat,
@@ -68,6 +68,7 @@ import qualified PGF.Parsing.FCFG.Incremental as Incremental
import GF.Text.UTF8
import GF.Data.ErrM
import GF.Data.Utilities
import qualified Data.Map as Map
import System.Random (newStdGen)
@@ -153,6 +154,13 @@ generateAllDepth :: PGF -> Category -> Maybe Int -> [Tree]
-- | List of all languages available in the given grammar.
languages :: PGF -> [Language]
-- | Gets the RFC 4646 language tag
-- of the language which the given concrete syntax implements,
-- if this is listed in the source grammar.
-- Example language tags include @"en"@ for English,
-- and @"en-UK"@ for British English.
languageCode :: PGF -> Language -> Maybe String
-- | The abstract language name is the name of the top-level
-- abstract module
abstractName :: PGF -> Language
@@ -219,6 +227,9 @@ abstractName pgf = prCId (absname pgf)
languages pgf = [prCId l | l <- cncnames pgf]
languageCode pgf lang =
fmap (replace '_' '-') $ lookConcrFlag pgf (mkCId lang) (mkCId "language")
categories pgf = [prCId c | c <- Map.keys (cats (abstract pgf))]
startCat pgf = lookStartCat pgf