mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
change tabularLinearize in the Haskell binding to return a list instead of map this preserves the order
This commit is contained in:
@@ -363,7 +363,7 @@ then the right method to use is <tt>tabularLinearize</tt>:
|
||||
</pre>
|
||||
<pre class="haskell">
|
||||
Prelude PGF2> tabularLinearize eng e
|
||||
fromList [("s Pl Gen","red theatres'"),("s Pl Nom","red theatres"),("s Sg Gen","red theatre's"),("s Sg Nom","red theatre")]
|
||||
[("s Sg Nom","red theatre"),("s Sg Gen","red theatre's"),("s Pl Nom","red theatres"),("s Pl Gen","red theatres'")]
|
||||
</pre>
|
||||
<pre class="java">
|
||||
for (Map.Entry<String,String> entry : eng.tabularLinearize(e).entrySet()) {
|
||||
|
||||
@@ -648,7 +648,7 @@ linearizeAll lang e = unsafePerformIO $
|
||||
throwIO (PGFError "The abstract tree cannot be linearized")
|
||||
|
||||
-- | Generates a table of linearizations for an expression
|
||||
tabularLinearize :: Concr -> Expr -> Map.Map String String
|
||||
tabularLinearize :: Concr -> Expr -> [(String, String)]
|
||||
tabularLinearize lang e = unsafePerformIO $
|
||||
withGuPool $ \tmpPl -> do
|
||||
exn <- gu_new_exn tmpPl
|
||||
@@ -660,7 +660,7 @@ tabularLinearize lang e = unsafePerformIO $
|
||||
peek ptr
|
||||
if ctree == nullPtr
|
||||
then do touchExpr e
|
||||
return Map.empty
|
||||
return []
|
||||
else do labels <- alloca $ \p_n_lins ->
|
||||
alloca $ \p_labels -> do
|
||||
pgf_lzr_get_table (concr lang) ctree p_n_lins p_labels
|
||||
@@ -670,7 +670,7 @@ tabularLinearize lang e = unsafePerformIO $
|
||||
labels <- mapM peekCString labels
|
||||
return labels
|
||||
lins <- collect lang ctree 0 labels exn tmpPl
|
||||
return (Map.fromList lins)
|
||||
return lins
|
||||
where
|
||||
collect lang ctree lin_idx [] exn tmpPl = return []
|
||||
collect lang ctree lin_idx (label:labels) exn tmpPl = do
|
||||
|
||||
Reference in New Issue
Block a user