summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeb <unknown>2005-08-08 08:01:10 +0000
committerpeb <unknown>2005-08-08 08:01:10 +0000
commit1351c101337e46a89c066f0830ed6f06fc96cf7a (patch)
treec2a07b6182345a72cf8cea2125972630044fdf46
parentb03a738c4433f40c1eca2691fe09ea31d71475fe (diff)
"Committed_by_peb"
-rw-r--r--grammars/ljung/thesis/CopyMorphism.gf22
-rw-r--r--grammars/ljung/thesis/CopyMorphismAbs.gf15
-rw-r--r--grammars/ljung/thesis/Erasing.gf26
-rw-r--r--grammars/ljung/thesis/ErasingAbs.gf21
-rw-r--r--src/GF/Infra/UseIO.hs11
-rw-r--r--src/GF/Parsing/MCFG/Active.hs16
-rw-r--r--src/GF/Parsing/MCFG/Active2.hs12
-rw-r--r--src/GF/Parsing/MCFG/Incremental.hs12
-rw-r--r--src/GF/Parsing/MCFG/Incremental2.hs12
-rw-r--r--src/GF/Parsing/MCFG/Naive.hs12
-rw-r--r--src/GF/Parsing/MCFG/Range.hs12
-rw-r--r--src/GF/Parsing/MCFG/ViaCFG.hs21
-rw-r--r--src/haddock/haddock-check.perl13
13 files changed, 184 insertions, 21 deletions
diff --git a/grammars/ljung/thesis/CopyMorphism.gf b/grammars/ljung/thesis/CopyMorphism.gf
new file mode 100644
index 000000000..71faf1d99
--- /dev/null
+++ b/grammars/ljung/thesis/CopyMorphism.gf
@@ -0,0 +1,22 @@
+
+-- the example 4.1 from Ljunglöf (2004, page 82)
+
+concrete CopyMorphism of CopyMorphismAbs = {
+
+lincat
+S = { s : Str };
+A = { s1 : Str; s2 : Str };
+
+lin
+
+f x = { s = x.s1 ++ x.s2 };
+
+g x y = { s1 = x.s1 ++ y.s1;
+ s2 = x.s2 ++ y.s2 };
+
+ac = { s1 = "a"; s2 = "c" };
+
+bd = { s1 = "b"; s2 = "d" };
+
+
+}
diff --git a/grammars/ljung/thesis/CopyMorphismAbs.gf b/grammars/ljung/thesis/CopyMorphismAbs.gf
new file mode 100644
index 000000000..02929f699
--- /dev/null
+++ b/grammars/ljung/thesis/CopyMorphismAbs.gf
@@ -0,0 +1,15 @@
+
+-- the example 4.1 from Ljunglöf (2004, page 82)
+
+abstract CopyMorphismAbs = {
+
+cat S; A;
+
+fun
+
+f : A -> S;
+g : A -> A -> A;
+ac : A;
+bd : A;
+
+}
diff --git a/grammars/ljung/thesis/Erasing.gf b/grammars/ljung/thesis/Erasing.gf
new file mode 100644
index 000000000..8b393eec8
--- /dev/null
+++ b/grammars/ljung/thesis/Erasing.gf
@@ -0,0 +1,26 @@
+
+-- the example 4.1 from Ljunglöf (2004, page 82)
+
+concrete Erasing of ErasingAbs = {
+
+lincat
+S = { s : Str };
+A = { s1 : Str; s2 : Str };
+B = { s : Str };
+C = { s : Str };
+
+lin
+
+f x = { s = x.s1 };
+
+g x y z = { s1 = x.s2 ++ y.s;
+ s2 = x.s1 ++ z.s };
+
+a = { s1 = "a1"; s2 = "a2" };
+
+b = { s = "b" };
+
+c = { s = "c" };
+
+
+}
diff --git a/grammars/ljung/thesis/ErasingAbs.gf b/grammars/ljung/thesis/ErasingAbs.gf
new file mode 100644
index 000000000..7b42b8863
--- /dev/null
+++ b/grammars/ljung/thesis/ErasingAbs.gf
@@ -0,0 +1,21 @@
+
+-- the example 4.1 from Ljunglöf (2004, page 82)
+
+abstract ErasingAbs = {
+
+cat S; A; B; C;
+
+fun
+
+f : A -> S;
+
+g : A -> B -> C -> A;
+
+a : A;
+
+b : B;
+
+c : C;
+
+
+}
diff --git a/src/GF/Infra/UseIO.hs b/src/GF/Infra/UseIO.hs
index 67f0d6c1b..7bf9edaf1 100644
--- a/src/GF/Infra/UseIO.hs
+++ b/src/GF/Infra/UseIO.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/05/27 11:37:57 $
--- > CVS $Author: aarne $
--- > CVS $Revision: 1.16 $
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.17 $
--
-- (Description of the module)
-----------------------------------------------------------------------------
@@ -147,7 +147,7 @@ prefixPathName p f = case f of
c:_ | isSep c -> f -- do not prefix [Unix style] absolute paths
_ -> case p of
"" -> f
- _ -> p ++ "/" ++ f -- / actually works on windows
+ _ -> p ++ "/" ++ f -- note: / actually works on windows
justInitPath :: FilePath -> FilePath
justInitPath = reverse . drop 1 . dropWhile (not . isSep) . reverse
@@ -303,7 +303,8 @@ readFileIOE f = ioe $ catch (readFile f >>= return . return)
-- intended semantics: if file is not found, try @\$GF_LIB_PATH\/file@
-- (even if file is an absolute path, but this should always fail)
-- it returns not only contents of the file, but also the path used
--- FIXME: unix-specific, / is \ on Windows
+--
+-- FIXME: unix-specific, \/ is \\ on Windows
readFileLibraryIOE :: String -> FilePath -> IOE (FilePath, String)
readFileLibraryIOE ini f =
ioe $ catch ((do {s <- readFile initPath; return (return (initPath,s))}))
diff --git a/src/GF/Parsing/MCFG/Active.hs b/src/GF/Parsing/MCFG/Active.hs
index cb1440e24..a422f7e10 100644
--- a/src/GF/Parsing/MCFG/Active.hs
+++ b/src/GF/Parsing/MCFG/Active.hs
@@ -1,3 +1,15 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.5 $
+--
+-- MCFG parsing, the active algorithm
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Active (parse, parseR) where
@@ -20,7 +32,7 @@ import GF.Infra.Print
----------------------------------------------------------------------
-- * parsing
---parse :: (Ord n, Ord c, Ord l, Ord t) => String -> MCFParser c n l t
+parse :: (Ord n, Ord c, Ord l, Ord t) => String -> MCFParser c n l t
parse strategy pinfo starts toks =
trace2 "MCFG.Active - strategy" (if isBU strategy then "BU"
else if isTD strategy then "TD" else "None") $
@@ -28,7 +40,7 @@ parse strategy pinfo starts toks =
Final (Abs cat rhs fun) found rrecs <- chartLookup chart Fin ]
where chart = process strategy pinfo starts toks
---parse :: (Ord n, Ord c, Ord l, Ord t) => String -> MCFParser c n l t
+-- parseR :: (Ord n, Ord c, Ord l, Ord t) => String -> MCFParser c n l t
parseR strategy pinfo starts =
trace2 "MCFG.Active Range - strategy" (if isBU strategy then "BU"
else if isTD strategy then "TD" else "None") $
diff --git a/src/GF/Parsing/MCFG/Active2.hs b/src/GF/Parsing/MCFG/Active2.hs
index a37c7c15d..f702c83b3 100644
--- a/src/GF/Parsing/MCFG/Active2.hs
+++ b/src/GF/Parsing/MCFG/Active2.hs
@@ -1,3 +1,15 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.2 $
+--
+-- MCFG parsing, the active algorithm (alternative version)
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Active2 (parse) where
diff --git a/src/GF/Parsing/MCFG/Incremental.hs b/src/GF/Parsing/MCFG/Incremental.hs
index eafca578d..64a6c759e 100644
--- a/src/GF/Parsing/MCFG/Incremental.hs
+++ b/src/GF/Parsing/MCFG/Incremental.hs
@@ -1,3 +1,15 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.4 $
+--
+-- MCFG parsing, the incremental algorithm
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Incremental (parse, parseR) where
diff --git a/src/GF/Parsing/MCFG/Incremental2.hs b/src/GF/Parsing/MCFG/Incremental2.hs
index 9d95f0fb0..880909758 100644
--- a/src/GF/Parsing/MCFG/Incremental2.hs
+++ b/src/GF/Parsing/MCFG/Incremental2.hs
@@ -1,3 +1,15 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.3 $
+--
+-- MCFG parsing, the incremental algorithm (alternative version)
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Incremental2 (parse) where
diff --git a/src/GF/Parsing/MCFG/Naive.hs b/src/GF/Parsing/MCFG/Naive.hs
index 932261d2b..8697f9c4c 100644
--- a/src/GF/Parsing/MCFG/Naive.hs
+++ b/src/GF/Parsing/MCFG/Naive.hs
@@ -1,3 +1,15 @@
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.5 $
+--
+-- MCFG parsing, the naive algorithm
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Naive (parse, parseR) where
diff --git a/src/GF/Parsing/MCFG/Range.hs b/src/GF/Parsing/MCFG/Range.hs
index 7e5cc859a..91671fa00 100644
--- a/src/GF/Parsing/MCFG/Range.hs
+++ b/src/GF/Parsing/MCFG/Range.hs
@@ -1,3 +1,15 @@
+---------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.5 $
+--
+-- Definitions of ranges, and operations on ranges
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.Range
( Range(..), makeRange, concatRange, rangeEdge, edgeRange, minRange, maxRange,
diff --git a/src/GF/Parsing/MCFG/ViaCFG.hs b/src/GF/Parsing/MCFG/ViaCFG.hs
index 00fff83e0..9204ea9f1 100644
--- a/src/GF/Parsing/MCFG/ViaCFG.hs
+++ b/src/GF/Parsing/MCFG/ViaCFG.hs
@@ -1,12 +1,15 @@
-{-- Module --------------------------------------------------------------------
- Filename: ApproxParse.hs
- Author: Håkan Burden
- Time-stamp: <2005-04-18, 14:56>
-
- Description: An agenda-driven implementation of the active algorithm 4.3.4,
- parsing through context-free approximation as described in
- Ljunglöf (2004)
-------------------------------------------------------------------------------}
+----------------------------------------------------------------------
+-- |
+-- Maintainer : PL
+-- Stability : (stable)
+-- Portability : (portable)
+--
+-- > CVS $Date: 2005/08/08 09:01:25 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.4 $
+--
+-- MCFG parsing, through context-free approximation
+-----------------------------------------------------------------------------
module GF.Parsing.MCFG.ViaCFG where
diff --git a/src/haddock/haddock-check.perl b/src/haddock/haddock-check.perl
index a16eac9ef..93647bac7 100644
--- a/src/haddock/haddock-check.perl
+++ b/src/haddock/haddock-check.perl
@@ -41,10 +41,11 @@ sub check_headerline {
if ($#ARGV >= 0) {
@FILES = @ARGV;
} else {
- @dirs = qw{. api canonical cf cfgm compile for-ghc-nofud
- grammar infra notrace parsers shell
- source speech translate useGrammar util visualization
- GF GF/* GF/*/* GF/*/*/*};
+# @dirs = qw{. api canonical cf cfgm compile for-ghc-nofud
+# grammar infra notrace parsers shell
+# source speech translate useGrammar util visualization
+# GF GF/* GF/*/* GF/*/*/*};
+ @dirs = qw{GF GF/* GF/*/* GF/*/*/*};
@FILES = grep(!/\/(Par|Lex)(GF|GFC|CFG)\.hs$/,
glob "{".join(",",@dirs)."}/*.hs");
}
@@ -70,7 +71,9 @@ for $file (@FILES) {
# the module header
$hdr_module = $module = "";
- s/^ (--+ \s* \n) +//sx;
+ s/^ \{-\# \s+ OPTIONS \s+ -cpp \s+ \#-\} //sx; # removing ghc options (cpp)
+ s/^ \s+ //sx; # removing initial whitespace
+ s/^ (--+ \s* \n) +//sx; # removing initial comment lines
unless (s/^ -- \s \| \s* \n//sx) {
push @ERR, "Incorrect module header";
} else {