diff options
Diffstat (limited to 'src/Codec/Wavefront/Token.hs')
-rw-r--r-- | src/Codec/Wavefront/Token.hs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/Codec/Wavefront/Token.hs b/src/Codec/Wavefront/Token.hs index 70b3437..88113a4 100644 --- a/src/Codec/Wavefront/Token.hs +++ b/src/Codec/Wavefront/Token.hs | |||
@@ -13,6 +13,7 @@ | |||
13 | module Codec.Wavefront.Token where | 13 | module Codec.Wavefront.Token where |
14 | 14 | ||
15 | import Codec.Wavefront.Face | 15 | import Codec.Wavefront.Face |
16 | import Codec.Wavefront.FreeForm | ||
16 | import Codec.Wavefront.Line | 17 | import Codec.Wavefront.Line |
17 | import Codec.Wavefront.Location | 18 | import Codec.Wavefront.Location |
18 | import Codec.Wavefront.Normal | 19 | import Codec.Wavefront.Normal |
@@ -43,6 +44,11 @@ data Token | |||
43 | | TknMtlLib [Text] | 44 | | TknMtlLib [Text] |
44 | | TknUseMtl Text | 45 | | TknUseMtl Text |
45 | | TknS Natural | 46 | | TknS Natural |
47 | | TknCSType Bool CSType | ||
48 | | TknCurve2 [Int] | ||
49 | | TknParm Parm | ||
50 | | TknSP [Int] | ||
51 | | TknEnd | ||
46 | deriving (Eq,Show) | 52 | deriving (Eq,Show) |
47 | 53 | ||
48 | -- |A stream of 'Token'. | 54 | -- |A stream of 'Token'. |
@@ -65,9 +71,20 @@ tokenize = fmap cleanupTokens . analyseResult False . parse (untilEnd tokenizer) | |||
65 | , fmap (Just . TknMtlLib) mtllib | 71 | , fmap (Just . TknMtlLib) mtllib |
66 | , fmap (Just . TknUseMtl) usemtl | 72 | , fmap (Just . TknUseMtl) usemtl |
67 | , fmap (Just . TknS) smoothingGroup | 73 | , fmap (Just . TknS) smoothingGroup |
74 | -- , fmap (Just . uncurry . TknCSType) cstype | ||
75 | , fmap (Just . TknCurve2) ints | ||
76 | , fmap (Just . TknParm) parm | ||
77 | , fmap (Just . TknSP) ints | ||
78 | , fmap (const $ Just TknEnd) (string "end" <* eol) | ||
68 | , Nothing <$ comment | 79 | , Nothing <$ comment |
69 | ] | 80 | ] |
70 | 81 | ||
82 | parm :: Parser Parm | ||
83 | parm = return Parm -- TODO | ||
84 | |||
85 | ints :: Parser [Int] | ||
86 | ints = return [] -- todo | ||
87 | |||
71 | analyseResult :: Bool -> Result [Maybe Token] -> Either String [Maybe Token] | 88 | analyseResult :: Bool -> Result [Maybe Token] -> Either String [Maybe Token] |
72 | analyseResult partial r = case r of | 89 | analyseResult partial r = case r of |
73 | Done _ tkns -> Right tkns | 90 | Done _ tkns -> Right tkns |