peb's forest patch

This commit is contained in:
aarne
2007-07-08 12:43:07 +00:00
parent ff8758c8db
commit 751a841191
3 changed files with 20 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
html:
txt2tags -thtml --toc gf-tutorial2_8.txt
tex:
txt2tags -ttex --toc gf-tutorial2.txt
pdflatex gf-tutorial2.tex
pdflatex gf-tutorial2.tex
txt2tags -ttex --toc gf-tutorial2_8.txt
pdflatex gf-tutorial2_8.tex
pdflatex gf-tutorial2_8.tex

View File

@@ -72,7 +72,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
NumInt n = {s = n.s; n = table (Predef.Ints 1 * Predef.Ints 9) {
<0,1> => Sg ;
_ => Pl
} ! <n.size,n.last>
} ! <1,2> ---- parser bug (AR 2/6/2007) <n.size,n.last>
} ;
OrdInt n = {s = \\_ => n.s ++ "."} ;

View File

@@ -258,6 +258,21 @@ chart2forests :: (Ord n, Ord e) =>
-- In essence, the result is a map from 'n' to forest daughters
-- simplest implementation
chart2forests chart isMeta = concatMap (edge2forests [])
where edge2forests edges edge
| isMeta edge = [FMeta]
| edge `elem` edges = []
| otherwise = map (item2forest (edge:edges)) $ chart ? edge
item2forest edges (SMeta) = FMeta
item2forest edges (SNode name children) =
FNode name $ children >>= mapM (edge2forests edges)
item2forest edges (SString s) = FString s
item2forest edges (SInt n) = FInt n
item2forest edges (SFloat f) = FFloat f
{- -before AR inserted peb's patch 8/7/2007, this was:
chart2forests chart isMeta = concatMap edge2forests
where edge2forests edge = if isMeta edge then [FMeta]
else map item2forest $ chart ? edge
@@ -267,6 +282,7 @@ chart2forests chart isMeta = concatMap edge2forests
item2forest (SInt n) = FInt n
item2forest (SFloat f) = FFloat f
-}
{-
-- more intelligent(?) implementation,