mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-04 00:32:51 -06:00
in the shell, permit 3-letter lang codes as concrete syntax names
This commit is contained in:
@@ -52,6 +52,13 @@ lookConcr :: PGF -> CId -> Concr
|
||||
lookConcr pgf cnc =
|
||||
lookMap (error $ "Missing concrete syntax: " ++ showCId cnc) cnc $ concretes pgf
|
||||
|
||||
-- use if name fails, use abstract + name; so e.g. "Eng" becomes "DemoEng"
|
||||
lookConcrComplete :: PGF -> CId -> Concr
|
||||
lookConcrComplete pgf cnc =
|
||||
case Map.lookup cnc (concretes pgf) of
|
||||
Just c -> c
|
||||
_ -> lookConcr pgf (mkCId (showCId (absname pgf) ++ showCId cnc))
|
||||
|
||||
lookConcrFlag :: PGF -> CId -> CId -> Maybe Literal
|
||||
lookConcrFlag pgf lang f = Map.lookup f $ cflags $ lookConcr pgf lang
|
||||
|
||||
@@ -196,4 +203,4 @@ updateProductionIndices pgf = pgf{ concretes = fmap updateConcrete (concretes pg
|
||||
getFunctions (PApply funid args) = let CncFun fun _ = cncfuns pinfo Array.! funid in [fun]
|
||||
getFunctions (PCoerce fid) = case IntMap.lookup fid productions of
|
||||
Nothing -> []
|
||||
Just prods -> [fun | prod <- Set.toList prods, fun <- getFunctions prod]
|
||||
Just prods -> [fun | prod <- Set.toList prods, fun <- getFunctions prod]
|
||||
|
||||
Reference in New Issue
Block a user