forked from GitHub/gf-core
tram using compiled resources
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
abstract Tram = {
|
abstract Tram = PredefAbs ** {
|
||||||
|
|
||||||
cat
|
cat
|
||||||
Dep ; -- from here, from Angered
|
Dep ; -- from here, from Angered
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
--# -path=.:compiled
|
--# -path=.:compiled:prelude
|
||||||
-- --# -path=.:resource-1.0/abstract:resource-1.0/common:resource-1.0/multimodal:resource-1.0/english:prelude:resource-1.0/mathematical
|
|
||||||
|
|
||||||
concrete TramEng of Tram = TramI with
|
concrete TramEng of Tram = TramI with
|
||||||
(Multimodal = MultimodalEng),
|
(Multimodal = MultimodalEng),
|
||||||
|
|||||||
5
examples/tram/TramFin.gf
Normal file
5
examples/tram/TramFin.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:compiled:prelude
|
||||||
|
|
||||||
|
concrete TramFin of Tram = TramI with
|
||||||
|
(Multimodal = MultimodalFin),
|
||||||
|
(Symbol = SymbolFin) ;
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
--# -path=.:resource-1.0/abstract:resource-1.0/french:resource-1.0/common:resource-1.0/multimodal:resource-1.0/romance:prelude:resource-1.0/mathematical
|
--# -path=.:compiled:prelude
|
||||||
|
|
||||||
|
-- --# -path=.:resource-1.0/abstract:resource-1.0/french:resource-1.0/common:resource-1.0/multimodal:resource-1.0/romance:prelude:resource-1.0/mathematical
|
||||||
|
|
||||||
concrete TramFre of Tram = TramI with
|
concrete TramFre of Tram = TramI with
|
||||||
(Multimodal = MultimodalFre),
|
(Multimodal = MultimodalFre),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
--# -path=.:resource-1.0/abstract:resource-1.0/common:resource-1.0/mathematical:resource-1.0/multimodal:resource-1.0/german:prelude
|
--# -path=.:compiled:prelude
|
||||||
|
-- --# -path=.:resource-1.0/abstract:resource-1.0/common:resource-1.0/mathematical:resource-1.0/multimodal:resource-1.0/german:prelude
|
||||||
|
|
||||||
concrete TramGer of Tram = TramI with
|
concrete TramGer of Tram = TramI with
|
||||||
(Multimodal = MultimodalGer),
|
(Multimodal = MultimodalGer),
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ lin
|
|||||||
DestClick = here7to_MAdv ;
|
DestClick = here7to_MAdv ;
|
||||||
DepHere = DemAdv here7from_Adv ;
|
DepHere = DemAdv here7from_Adv ;
|
||||||
DestHere = DemAdv here7to_Adv ;
|
DestHere = DemAdv here7to_Adv ;
|
||||||
--- DepNamed s = MPrepNP from_Prep (DemNP (UsePN (SymbPN (MkSymb s)))) ;
|
DepNamed s = MPrepNP from_Prep (DemNP (UsePN (SymbPN (MkSymb s)))) ;
|
||||||
--- DestNamed s = MPrepNP to_Prep (DemNP (UsePN (SymbPN (MkSymb s)))) ;
|
DestNamed s = MPrepNP to_Prep (DemNP (UsePN (SymbPN (MkSymb s)))) ;
|
||||||
|
|
||||||
CCoord x y = {point = "(" ++ x.s ++ "," ++ y.s ++ ")" ; lock_Point = <>} ;
|
CCoord x y = {point = "(" ++ x.s ++ "," ++ y.s ++ ")" ; lock_Point = <>} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:compiled
|
--# -path=.:compiled:prelude
|
||||||
|
|
||||||
-- --# -path=.:resource-1.0/abstract:resource-1.0/swedish:resource-1.0/common:resource-1.0/multimodal:resource-1.0/scandinavian:prelude:resource-1.0/mathematical
|
-- --# -path=.:resource-1.0/abstract:resource-1.0/swedish:resource-1.0/common:resource-1.0/multimodal:resource-1.0/scandinavian:prelude:resource-1.0/mathematical
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ test:
|
|||||||
langs:
|
langs:
|
||||||
echo "s ;; pm | wf langs.gfcm" | gf -src -nocf */Lang??*.gf english/LangEng.gf +RTS -M500M
|
echo "s ;; pm | wf langs.gfcm" | gf -src -nocf */Lang??*.gf english/LangEng.gf +RTS -M500M
|
||||||
|
|
||||||
|
install:
|
||||||
|
cp -p */*.gfc */*.gfr ../compiled
|
||||||
|
|
||||||
stat:
|
stat:
|
||||||
wc */*.gfc
|
wc */*.gfc
|
||||||
gfdoc:
|
gfdoc:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
-- *Note*. This module is not automatically included in the main
|
-- *Note*. This module is not automatically included in the main
|
||||||
-- grammar [Lang Lang.html].
|
-- grammar [Lang Lang.html].
|
||||||
|
|
||||||
abstract Symbol = Cat ** {
|
abstract Symbol = Cat, PredefAbs ** {
|
||||||
|
|
||||||
--2 Noun phrases with symbols and numbers
|
--2 Noun phrases with symbols and numbers
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
abstract Demonstrative = Cat ** {
|
abstract Demonstrative = Cat, PredefAbs ** {
|
||||||
|
|
||||||
-- Naming convention: $M$ prepended to 'unimodal' names.
|
-- Naming convention: $M$ prepended to 'unimodal' names.
|
||||||
-- Exceptions: lexical units, those without unimodal counterparts.
|
-- Exceptions: lexical units, those without unimodal counterparts.
|
||||||
|
|||||||
4
lib/resource-1.0/multimodal/DemonstrativeFin.gf
Normal file
4
lib/resource-1.0/multimodal/DemonstrativeFin.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:../finnish/:../abstract:../common:prelude
|
||||||
|
|
||||||
|
concrete DemonstrativeFin of Demonstrative = CatFin ** DemonstrativeI with
|
||||||
|
(Lang = LangFin) ;
|
||||||
18
lib/resource-1.0/multimodal/MultimodalFin.gf
Normal file
18
lib/resource-1.0/multimodal/MultimodalFin.gf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
--# -path=.:../finnish/:../abstract:../common:prelude
|
||||||
|
|
||||||
|
concrete MultimodalFin of Multimodal =
|
||||||
|
NounFin,
|
||||||
|
-- Verb,
|
||||||
|
AdjectiveFin,
|
||||||
|
AdverbFin,
|
||||||
|
NumeralFin,
|
||||||
|
-- Sentence,
|
||||||
|
-- Question,
|
||||||
|
-- Relative,
|
||||||
|
-- Conjunction,
|
||||||
|
-- Phrase,
|
||||||
|
-- Tensed,
|
||||||
|
StructuralFin,
|
||||||
|
DemonstrativeFin,
|
||||||
|
LexiconFin
|
||||||
|
** {} ;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../french/:../romancs:../abstract:../common:prelude
|
--# -path=.:../french/:../romance:../abstract:../common:prelude
|
||||||
|
|
||||||
concrete MultimodalFre of Multimodal =
|
concrete MultimodalFre of Multimodal =
|
||||||
NounFre,
|
NounFre,
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import GF.Grammar.PrGrammar
|
|||||||
import GF.Canon.CMacros
|
import GF.Canon.CMacros
|
||||||
----import Values
|
----import Values
|
||||||
import GF.Grammar.MMacros
|
import GF.Grammar.MMacros
|
||||||
|
import GF.Grammar.Macros (zIdent)
|
||||||
import qualified GF.Infra.Modules as M
|
import qualified GF.Infra.Modules as M
|
||||||
import qualified GF.Canon.CanonToGrammar as CG
|
import qualified GF.Canon.CanonToGrammar as CG
|
||||||
|
|
||||||
@@ -50,7 +51,7 @@ lookupCncInfo gr f@(CIQ m c) = do
|
|||||||
_ -> prtBad "not concrete module" m
|
_ -> prtBad "not concrete module" m
|
||||||
|
|
||||||
lookupLin :: CanonGrammar -> CIdent -> Err Term
|
lookupLin :: CanonGrammar -> CIdent -> Err Term
|
||||||
lookupLin gr f = do
|
lookupLin gr f = errIn "looking up linearization rule" $ do
|
||||||
info <- lookupCncInfo gr f
|
info <- lookupCncInfo gr f
|
||||||
case info of
|
case info of
|
||||||
CncFun _ _ t _ -> return t
|
CncFun _ _ t _ -> return t
|
||||||
@@ -58,7 +59,9 @@ lookupLin gr f = do
|
|||||||
AnyInd _ n -> lookupLin gr $ redirectIdent n f
|
AnyInd _ n -> lookupLin gr $ redirectIdent n f
|
||||||
|
|
||||||
lookupLincat :: CanonGrammar -> CIdent -> Err CType
|
lookupLincat :: CanonGrammar -> CIdent -> Err CType
|
||||||
lookupLincat gr f = do
|
lookupLincat gr (CIQ _ c) | elem c [zIdent "String", zIdent "Int", zIdent "Float"] =
|
||||||
|
return defLinType --- ad hoc; not needed? cf. Grammar.Lookup.lookupLincat
|
||||||
|
lookupLincat gr f = errIn "looking up linearization type" $ do
|
||||||
info <- lookupCncInfo gr f
|
info <- lookupCncInfo gr f
|
||||||
case info of
|
case info of
|
||||||
CncCat t _ _ -> return t
|
CncCat t _ _ -> return t
|
||||||
@@ -66,7 +69,7 @@ lookupLincat gr f = do
|
|||||||
_ -> prtBad "no lincat found for" f
|
_ -> prtBad "no lincat found for" f
|
||||||
|
|
||||||
lookupPrintname :: CanonGrammar -> CIdent -> Err Term
|
lookupPrintname :: CanonGrammar -> CIdent -> Err Term
|
||||||
lookupPrintname gr f = do
|
lookupPrintname gr f = errIn "looking up printname" $ do
|
||||||
info <- lookupCncInfo gr f
|
info <- lookupCncInfo gr f
|
||||||
case info of
|
case info of
|
||||||
CncFun _ _ _ t -> return t
|
CncFun _ _ _ t -> return t
|
||||||
|
|||||||
@@ -287,6 +287,7 @@ computeLType gr t = do
|
|||||||
Q (IC "Predef") (IC "Float") -> return ty ---- shouldn't be needed
|
Q (IC "Predef") (IC "Float") -> return ty ---- shouldn't be needed
|
||||||
|
|
||||||
Q m c | elem c [cPredef,cPredefAbs] -> return ty
|
Q m c | elem c [cPredef,cPredefAbs] -> return ty
|
||||||
|
Q m c | elem c [zIdent "Int",zIdent "Float",zIdent "String"] -> return defLinType ----
|
||||||
|
|
||||||
Q m ident -> checkIn ("module" +++ prt m) $ do
|
Q m ident -> checkIn ("module" +++ prt m) $ do
|
||||||
ty' <- checkErr (lookupResDef gr m ident)
|
ty' <- checkErr (lookupResDef gr m ident)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import Data.List (nub)
|
|||||||
import Control.Monad
|
import Control.Monad
|
||||||
|
|
||||||
lookupResDef :: SourceGrammar -> Ident -> Ident -> Err Term
|
lookupResDef :: SourceGrammar -> Ident -> Ident -> Err Term
|
||||||
lookupResDef gr = look True where
|
lookupResDef gr m c = look True m c where
|
||||||
look isTop m c = do
|
look isTop m c = do
|
||||||
mi <- lookupModule gr m
|
mi <- lookupModule gr m
|
||||||
case mi of
|
case mi of
|
||||||
|
|||||||
Reference in New Issue
Block a user