diff options
| author | aarne <unknown> | 2005-03-02 13:25:45 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-03-02 13:25:45 +0000 |
| commit | 48deedea143d55fec973a3749c78d46921dfd3f7 (patch) | |
| tree | 91ede10b4da420078be956a26348d37bc9aeb8b6 /src | |
| parent | 7b08eb7ffd5e82a793fe47cf764b1ce2f4d3a0ee (diff) | |
fixed shell solve command
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/UseGrammar/Custom.hs | 9 | ||||
| -rw-r--r-- | src/GF/UseGrammar/Editing.hs | 13 |
2 files changed, 13 insertions, 9 deletions
diff --git a/src/GF/UseGrammar/Custom.hs b/src/GF/UseGrammar/Custom.hs index 8e2b79c07..7a5ce63e6 100644 --- a/src/GF/UseGrammar/Custom.hs +++ b/src/GF/UseGrammar/Custom.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/03/02 09:43:52 $ +-- > CVS $Date: 2005/03/02 14:25:45 $ -- > CVS $Author: aarne $ --- > CVS $Revision: 1.43 $ +-- > CVS $Revision: 1.44 $ -- -- A database for customizable GF shell commands. -- @@ -304,8 +304,9 @@ customTermCommand = Ok tr <- [annotate gr $ MM.qualifTerm (absId g) t]]) ,(strCI "typecheck", \g t -> err (const []) (return . loc2tree) (reCheckStateReject (grammar g) (tree2loc t))) - ,(strCI "solve", \g t -> err (const [t]) (return . loc2tree) - (solveAll (grammar g) (tree2loc t))) + ,(strCI "solve", \g t -> err (const []) (return . loc2tree) + (solveAll (grammar g) (tree2loc t) + >>= rejectUnsolvable)) ,(strCI "context", \g t -> err (const [t]) (return . loc2tree) (contextRefinements (grammar g) (tree2loc t))) ,(strCI "reindex", \g t -> let gr = grammar g in diff --git a/src/GF/UseGrammar/Editing.hs b/src/GF/UseGrammar/Editing.hs index b9ccb6691..a816d85ef 100644 --- a/src/GF/UseGrammar/Editing.hs +++ b/src/GF/UseGrammar/Editing.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/03/02 09:43:52 $ +-- > CVS $Date: 2005/03/02 14:25:45 $ -- > CVS $Author: aarne $ --- > CVS $Revision: 1.12 $ +-- > CVS $Revision: 1.13 $ -- -- generic tree editing, with some grammar notions assumed. AR 18\/8\/2001. -- 19\/6\/2003 for GFC @@ -362,9 +362,12 @@ reCheckState gr st = annotate gr (tree2exp (loc2tree st)) >>= return . tree2loc reCheckStateReject :: CGrammar -> State -> Err State reCheckStateReject gr st = do st' <- reCheckState gr st - case (constrsNode $ nodeTree $ actTree st') of - [] -> return st' - cs -> Bad $ "Unsolvable constraints:" +++ prConstraints cs + rejectUnsolvable st' + +rejectUnsolvable :: State -> Err State +rejectUnsolvable st = case (constrsNode $ nodeTree $ actTree st) of + [] -> return st + cs -> Bad $ "Unsolvable constraints:" +++ prConstraints cs -- | extract metasubstitutions from constraints and solve them solveAll :: CGrammar -> State -> Err State |
