diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-01-07 14:39:40 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-01-07 14:39:40 +0000 |
| commit | d133e0353ca614b36357dadb782aea43de895e09 (patch) | |
| tree | a68ecef132a1b18a12899ef9b718ed411816528f /src/GF/Compile/CheckGrammar.hs | |
| parent | 4e42d73ee508715e83c8f1a160b7bc696b78571b (diff) | |
regular expression patterns
Diffstat (limited to 'src/GF/Compile/CheckGrammar.hs')
| -rw-r--r-- | src/GF/Compile/CheckGrammar.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index 33db87e37..c55873409 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -515,11 +515,17 @@ inferLType gr trm = case trm of PSeq p q -> isConstPatt p && isConstPatt q PAlt p q -> isConstPatt p && isConstPatt q PRep p -> isConstPatt p + PNeg p -> isConstPatt p PAs _ p -> isConstPatt p _ -> False inferPatt p = case p of PP q c ps | q /= cPredef -> checkErr $ lookupResType gr q c >>= valTypeCnc + PAs _ p -> inferPatt p + PNeg p -> inferPatt p + PAlt p q -> checks [inferPatt p, inferPatt q] + PSeq _ _ -> return $ typeTok + PRep _ -> return $ typeTok _ -> infer (patt2term p) >>= return . snd checkLType :: SourceGrammar -> Term -> Type -> Check (Term, Type) @@ -700,6 +706,7 @@ pattContext env typ p = case p of g2 <- pattContext env typ q return $ g1 ++ g2 PRep p -> pattContext env typeStr p + PNeg p -> pattContext env typeStr p _ -> return [] ---- check types! where |
