on master help sign in
add Data.NonEmptyList.singleton
9da3c61Evan Czaplicki
compiler/src/Data/NonEmptyList.hs+6
@@ -1,5 +1,6 @@
1module Data.NonEmptyList
1module Data.NonEmptyList
2 ( List(..)
2 ( List(..)
3+ , singleton
3 , toList
4 , toList
4 , sortBy
5 , sortBy
5 )
6 )
@@ -19,6 +20,11 @@ data List a =
19 List a [a]
20 List a [a]
20
21
21
22
23+singleton :: a -> List a
24+singleton a =
25+ List a []
26+
27+
22toList :: List a -> [a]
28toList :: List a -> [a]
23toList (List x xs) =
29toList (List x xs) =
24 x:xs
30 x:xs
compiler/src/Parse/Shader.hs+3−4
@@ -32,17 +32,16 @@ import qualified Reporting.Error.Syntax as E
32shader :: A.Position -> Parser E.Expr Src.Expr
32shader :: A.Position -> Parser E.Expr Src.Expr
33shader start@(A.Position row col) =
33shader start@(A.Position row col) =
34 do block <- parseBlock
34 do block <- parseBlock
35− shdr <- parseGlsl row col block
35+ shdr <- parseGlsl row col src
36 end <- P.getPosition
36 end <- P.getPosition
37− let src = List.intercalate "\\n" (lines block)
38− return (A.at start end (Src.Shader (Utf8.fromChars src) shdr))
37+ return (A.at start end (Src.Shader (Shader.fromChars src) shdr))
39
38
40
39
41
40
42-- BLOCK
41-- BLOCK
43
42
44
43
45−parseBlock :: Parser E.Expr String
44+parseBlock :: Parser E.Expr P.Snippet
46parseBlock =
45parseBlock =
47 P.Parser $ \(P.State src pos end indent row col) cok _ cerr eerr ->
46 P.Parser $ \(P.State src pos end indent row col) cok _ cerr eerr ->
48 let
47 let