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: html:
txt2tags -thtml --toc gf-tutorial2_8.txt txt2tags -thtml --toc gf-tutorial2_8.txt
tex: tex:
txt2tags -ttex --toc gf-tutorial2.txt txt2tags -ttex --toc gf-tutorial2_8.txt
pdflatex gf-tutorial2.tex pdflatex gf-tutorial2_8.tex
pdflatex gf-tutorial2.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) { NumInt n = {s = n.s; n = table (Predef.Ints 1 * Predef.Ints 9) {
<0,1> => Sg ; <0,1> => Sg ;
_ => Pl _ => Pl
} ! <n.size,n.last> } ! <1,2> ---- parser bug (AR 2/6/2007) <n.size,n.last>
} ; } ;
OrdInt n = {s = \\_ => n.s ++ "."} ; 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 -- In essence, the result is a map from 'n' to forest daughters
-- simplest implementation -- 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 chart2forests chart isMeta = concatMap edge2forests
where edge2forests edge = if isMeta edge then [FMeta] where edge2forests edge = if isMeta edge then [FMeta]
else map item2forest $ chart ? edge else map item2forest $ chart ? edge
@@ -267,6 +282,7 @@ chart2forests chart isMeta = concatMap edge2forests
item2forest (SInt n) = FInt n item2forest (SInt n) = FInt n
item2forest (SFloat f) = FFloat f item2forest (SFloat f) = FFloat f
-}
{- {-
-- more intelligent(?) implementation, -- more intelligent(?) implementation,