diff options
| author | krangelov <kr.angelov@gmail.com> | 2020-05-14 15:05:13 +0200 |
|---|---|---|
| committer | krangelov <kr.angelov@gmail.com> | 2020-05-14 15:05:13 +0200 |
| commit | e8653135d4086e3856fba7e8467c85a7186a5571 (patch) | |
| tree | 54e99b18d3273885e8c9d7fdd878f4422ac31bcb /src/runtime | |
| parent | 62bc78380e69af2de3253130204fc45bac00f3f0 (diff) | |
| parent | dda348776e71f6d437741339857ca0b1cbea08ea (diff) | |
Merge branch 'master' of https://github.com/GrammaticalFramework/gf-core
Diffstat (limited to 'src/runtime')
| -rw-r--r-- | src/runtime/haskell/PGF/VisualizeTree.hs | 28 | ||||
| -rw-r--r-- | src/runtime/python/pypgf.c | 7 |
2 files changed, 24 insertions, 11 deletions
diff --git a/src/runtime/haskell/PGF/VisualizeTree.hs b/src/runtime/haskell/PGF/VisualizeTree.hs index 3e19107cc..bab40d0ae 100644 --- a/src/runtime/haskell/PGF/VisualizeTree.hs +++ b/src/runtime/haskell/PGF/VisualizeTree.hs @@ -242,6 +242,10 @@ rmcomments :: String -> String rmcomments [] = [] rmcomments ('-':'-':xs) = [] rmcomments ('-':x :xs) = '-':rmcomments (x:xs) +rmcomments ('#':xs) = case splitAt 3 xs of -- for compatibility with gf-ud annotations + ("cat",rest) -> rmcomments rest + ("fun",rest) -> rmcomments rest + _ -> [] --- gf-ud keywords not used in gf-core rmcomments (x:xs) = x:rmcomments xs -- | Prepare lines obtained from a configuration file for labels for @@ -761,19 +765,21 @@ ppSVG svg = -- UseComp {"not"} PART neg head -- UseComp {*} AUX cop head -type CncLabels = [ - Either - (String, String -> Maybe (String -> String,String,String)) - -- (fun, word -> (pos,label,target)) +type CncLabels = [CncLabel] + +data CncLabel = + CncSyncat (String, String -> Maybe (String -> String,String,String)) + -- (fun, word/lemma -> (pos,label,target)) -- the pos can remain unchanged, as in the current notation in the article - (String,[String]) - -- (category, morphological forms) - ] + | CncMorpho (String,[String]) + -- (category, features in ascending order) + | CncForm (String,(String,String)) + -- (wordform, (lemma,features)) fixCoNLL :: CncLabels -> CoNLL -> CoNLL fixCoNLL cncLabels conll = map (fixMorpho . fixDep) (markRoot conll) where - labels = [l | Left l <- cncLabels] - flabels = [r | Right r <- cncLabels] + labels = [l | CncSyncat l <- cncLabels] + flabels = [r | CncMorpho r <- cncLabels] -- change the root label from dep to root --- doing this for the leftmost word of the root node @@ -818,7 +824,7 @@ getCncDepLabels :: String -> CncLabels getCncDepLabels s = wlabels ws ++ flabels fs where wlabels = - map Left . + map CncSyncat . map merge . groupBy (\ (x,_) (a,_) -> x == a) . sortBy (comparing fst) . @@ -826,7 +832,7 @@ getCncDepLabels s = wlabels ws ++ flabels fs filter chooseW flabels = - map Right . + map CncMorpho . map collectTags . map words diff --git a/src/runtime/python/pypgf.c b/src/runtime/python/pypgf.c index 8d249d45a..c2e585dc3 100644 --- a/src/runtime/python/pypgf.c +++ b/src/runtime/python/pypgf.c @@ -3497,9 +3497,16 @@ MOD_INIT(pgf) PyModule_AddObject(m, "Type", (PyObject *) &pgf_TypeType); Py_INCREF(&pgf_TypeType); + PyModule_AddObject(m, "PGF", (PyObject *) &pgf_PGFType); Py_INCREF(&pgf_PGFType); + + PyModule_AddObject(m, "Concr", (PyObject *) &pgf_ConcrType); Py_INCREF(&pgf_ConcrType); + + PyModule_AddObject(m, "Iter", (PyObject *) &pgf_IterType); Py_INCREF(&pgf_IterType); + + PyModule_AddObject(m, "Bracket", (PyObject *) &pgf_BracketType); Py_INCREF(&pgf_BracketType); return MOD_SUCCESS_VAL(m); |
