summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <unknown>2003-10-06 08:16:05 +0000
committeraarne <unknown>2003-10-06 08:16:05 +0000
commit0ac49ec12ffdc8f02e1071eb333f5d2c659ca5b1 (patch)
tree20445471efc4551b0a01e78f34663310f799491c
parent3aa5921fbc1182a03bbd1f4eab648b958acb9c64 (diff)
Experimenting with the new parser:
Experimenting with the new parser: p -cat=S -new -parser=CF-BU "John walks"
-rw-r--r--grammars/basic/Basic.gf15
-rw-r--r--grammars/basic/English.gf27
-rw-r--r--src/GF/UseGrammar/Parsing.hs14
-rw-r--r--src/Today.hs2
4 files changed, 56 insertions, 2 deletions
diff --git a/grammars/basic/Basic.gf b/grammars/basic/Basic.gf
new file mode 100644
index 000000000..034d9ba29
--- /dev/null
+++ b/grammars/basic/Basic.gf
@@ -0,0 +1,15 @@
+abstract Basic = {
+
+cat
+S ; NP ; A1 ; CN ;
+
+fun
+PredA1 : NP -> A1 -> S ;
+CondS : S -> S -> S ;
+DisjA1 : A1 -> A1 -> A1 ;
+Every : CN -> NP ;
+ModA1 : CN -> A1 -> CN ;
+Number : CN ;
+Even : A1 ; Odd : A1 ; Prime : A1 ;
+Zero : NP ;
+}
diff --git a/grammars/basic/English.gf b/grammars/basic/English.gf
new file mode 100644
index 000000000..7747d1abd
--- /dev/null
+++ b/grammars/basic/English.gf
@@ -0,0 +1,27 @@
+concrete English of Basic = {
+
+lincat
+S = {s : Str} ; NP = {s : Str} ; A1 = {s : Str} ; CN = {s : Str} ;
+
+lin PredA1 Q F =
+ {s = Q.s ++ "is" ++ F.s} ;
+lin CondS A B =
+ {s = "if" ++ A.s ++ "then" ++ B.s} ;
+lin DisjA1 F G =
+ {s = F.s ++ "or" ++ G.s} ;
+lin Every A =
+ {s = "every" ++ A.s} ;
+lin ModA1 A F =
+ {s = F.s ++ A.s} ;
+lin Number =
+ {s = "number"} ;
+lin Even =
+ {s = "even"} ;
+lin Odd =
+ {s = "odd"} ;
+lin Prime =
+ {s = "prime"} ;
+lin Zero =
+ {s = "zero"} ;
+
+}
diff --git a/src/GF/UseGrammar/Parsing.hs b/src/GF/UseGrammar/Parsing.hs
index 4cd4f4bc8..6cafb8c69 100644
--- a/src/GF/UseGrammar/Parsing.hs
+++ b/src/GF/UseGrammar/Parsing.hs
@@ -19,6 +19,8 @@ import Option
import Custom
import ShellState
+import qualified ExportParser as N
+
import Operations
import List (nub)
@@ -35,7 +37,17 @@ parseStringMsg os sg cat s = do
return (ts,unlines ss)
parseStringC :: Options -> StateGrammar -> CFCat -> String -> Check [Tree]
-parseStringC opts0 sg cat s = do
+parseStringC opts0 sg cat s
+
+---- to test peb's new parser 6/10/2003
+ | oElem newParser opts0 = do
+ let pm = maybe "" id $ getOptVal opts0 useParser -- -parser=pm
+ gr = grammar sg
+ ps <- checkErr $ N.newParser pm gr (cfCat2Cat cat) s
+ checkWarn $ unlines ps
+ return []
+
+ | otherwise = do
let opts = unionOptions opts0 $ stateOptions sg
cf = stateCF sg
gr = stateGrammarST sg
diff --git a/src/Today.hs b/src/Today.hs
index 3e8e4ecae..208b000f9 100644
--- a/src/Today.hs
+++ b/src/Today.hs
@@ -1 +1 @@
-module Today where today = "Fri Oct 3 14:06:22 CEST 2003"
+module Today where today = "Mon Oct 6 10:50:56 CEST 2003"