diff options
| author | krasimir <krasimir@chalmers.se> | 2015-05-11 13:01:39 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2015-05-11 13:01:39 +0000 |
| commit | 1e0d7be4f4322836093d744c916fe02bfbcf9418 (patch) | |
| tree | 21b259b2c9eb31ce9fbcfe5d168d1747f6a2c5c2 /src/runtime/haskell/PGF/Haskell.hs | |
| parent | 13998e32873758c0b1964a62f738b9916e666b86 (diff) | |
added all orthographic primitives
Diffstat (limited to 'src/runtime/haskell/PGF/Haskell.hs')
| -rw-r--r-- | src/runtime/haskell/PGF/Haskell.hs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/runtime/haskell/PGF/Haskell.hs b/src/runtime/haskell/PGF/Haskell.hs index 81e8cffaa..38c082be4 100644 --- a/src/runtime/haskell/PGF/Haskell.hs +++ b/src/runtime/haskell/PGF/Haskell.hs @@ -21,14 +21,14 @@ table vs = let m = M.fromList (zip enumAll vs) in (M.!) m type Str = [Tok] -- token sequence -- | Tokens -data Tok = TK String | TP [([Prefix],Str)] Str | BIND | SOFT_BIND | CAPIT +data Tok = TK String | TP [([Prefix],Str)] Str | BIND | SOFT_BIND | SOFT_SPACE | CAPIT | ALL_CAPIT deriving (Eq,Ord,Show) type Prefix = String -- ^ To be matched with the prefix of a following token -- | Render a token sequence as a 'String' fromStr :: Str -> String -fromStr = from False False +fromStr = from False id where from space cap ts = case ts of @@ -36,16 +36,19 @@ fromStr = from False False TK s:ts -> put s++from True cap ts BIND:ts -> from False cap ts SOFT_BIND:ts -> from False cap ts - CAPIT:ts -> from space True ts + SOFT_SPACE:ts -> from True cap ts + CAPIT:ts -> from space toUpper1 ts + ALL_CAPIT:ts -> from space toUpperAll ts TP alts def:ts -> from space cap (pick alts def r++[TK r]) -- hmm where r = fromStr ts where - put s = [' '|space]++up s - up = if cap then toUpper1 else id + put s = [' '|space]++cap s toUpper1 (c:s) = toUpper c:s toUpper1 s = s + toUpperAll = map toUpper + pick alts def r = head ([str|(ps,str)<-alts,any (`isPrefixOf` r) ps]++[def]) -- *** Common record types |
