Remove shader references from parser ast.

This commit is contained in:
Robin Heggelund Hansen 2022-02-11 14:50:03 +01:00
parent abb35eb321
commit 9d75b0f16d
7 changed files with 0 additions and 101 deletions

View File

@ -22,7 +22,6 @@ module AST.Optimized
where
import qualified AST.Canonical as Can
import qualified AST.Utils.Shader as Shader
import Control.Monad (liftM, liftM2, liftM3, liftM4)
import Data.Binary (Binary, get, getWord8, put, putWord8)
import qualified Data.Index as Index
@ -67,7 +66,6 @@ data Expr
| Record (Map.Map Name Expr)
| Unit
| Tuple Expr Expr (Maybe Expr)
| Shader Shader.Source (Set.Set Name) (Set.Set Name)
data Global = Global ModuleName.Canonical Name
@ -235,7 +233,6 @@ instance Binary Expr where
Record a -> putWord8 23 >> put a
Unit -> putWord8 24
Tuple a b c -> putWord8 25 >> put a >> put b >> put c
Shader a b c -> putWord8 26 >> put a >> put b >> put c
get =
do
@ -267,7 +264,6 @@ instance Binary Expr where
23 -> liftM Record get
24 -> pure Unit
25 -> liftM3 Tuple get get get
26 -> liftM3 Shader get get get
_ -> fail "problem getting Opt.Expr binary"
instance Binary Def where

View File

@ -29,7 +29,6 @@ module AST.Source
where
import qualified AST.Utils.Binop as Binop
import qualified AST.Utils.Shader as Shader
import Data.Name (Name)
import qualified Data.Name as Name
import qualified Gren.Float as EF
@ -63,7 +62,6 @@ data Expr_
| Record [(A.Located Name, Expr)]
| Unit
| Tuple Expr Expr [Expr]
| Shader Shader.Source Shader.Types
data VarType = LowVar | CapVar

View File

@ -1,72 +0,0 @@
{-# LANGUAGE EmptyDataDecls #-}
{-# OPTIONS_GHC -Wall #-}
module AST.Utils.Shader
( Source,
Types (..),
Type (..),
fromChars,
toJsStringBuilder,
)
where
import Control.Monad (liftM)
import Data.Binary (Binary, get, put)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Builder as B
import qualified Data.ByteString.UTF8 as BS_UTF8
import qualified Data.Map as Map
import qualified Data.Name as Name
-- SOURCE
newtype Source
= Source BS.ByteString
-- TYPES
data Types = Types
{ _attribute :: Map.Map Name.Name Type,
_uniform :: Map.Map Name.Name Type,
_varying :: Map.Map Name.Name Type
}
data Type
= Int
| Float
| V2
| V3
| V4
| M4
| Texture
-- TO BUILDER
toJsStringBuilder :: Source -> B.Builder
toJsStringBuilder (Source src) =
B.byteString src
-- FROM CHARS
fromChars :: [Char] -> Source
fromChars chars =
Source (BS_UTF8.fromString (escape chars))
escape :: [Char] -> [Char]
escape chars =
case chars of
[] ->
[]
c : cs
| c == '\r' -> escape cs
| c == '\n' -> '\\' : 'n' : escape cs
| c == '\"' -> '\\' : '"' : escape cs
| c == '\'' -> '\\' : '\'' : escape cs
| c == '\\' -> '\\' : '\\' : escape cs
| otherwise -> c : escape cs
-- BINARY
instance Binary Source where
get = liftM Source get
put (Source a) = put a

View File

@ -127,9 +127,6 @@ canonicalize env (A.At region expression) =
<$> canonicalize env a
<*> canonicalize env b
<*> canonicalizeTupleExtras region env cs
Src.Shader _ _ ->
-- TODO: Remove shaders from language
Result.throw (Error.TupleLargerThanThree region)
-- CANONICALIZE TUPLE EXTRAS

View File

@ -14,14 +14,12 @@ where
import qualified AST.Canonical as Can
import qualified AST.Optimized as Opt
import qualified AST.Utils.Shader as Shader
import qualified Data.Index as Index
import qualified Data.IntMap as IntMap
import qualified Data.List as List
import Data.Map ((!))
import qualified Data.Map as Map
import qualified Data.Name as Name
import qualified Data.Set as Set
import qualified Data.Utf8 as Utf8
import qualified Generate.JavaScript.Builder as JS
import qualified Generate.JavaScript.Name as JsName
@ -149,20 +147,6 @@ generate mode expression =
generateJsExpr mode b,
generateJsExpr mode c
]
Opt.Shader src attributes uniforms ->
let toTranlation field =
( JsName.fromLocal field,
JS.String (JsName.toBuilder (generateField mode field))
)
toTranslationObject fields =
JS.Object (map toTranlation (Set.toList fields))
in JsExpr $
JS.Object $
[ (JsName.fromLocal "src", JS.String (Shader.toJsStringBuilder src)),
(JsName.fromLocal "attributes", toTranslationObject attributes),
(JsName.fromLocal "uniforms", toTranslationObject uniforms)
]
-- CODE CHUNKS

View File

@ -56,7 +56,6 @@ hasDebug expression =
Opt.Record fs -> any hasDebug fs
Opt.Unit -> False
Opt.Tuple a b c -> hasDebug a || hasDebug b || maybe False hasDebug c
Opt.Shader _ _ _ -> False
defHasDebug :: Opt.Def -> Bool
defHasDebug def =
@ -72,5 +71,3 @@ deciderHasDebug decider =
Opt.Chain _ success failure -> deciderHasDebug success || deciderHasDebug failure
Opt.FanOut _ tests fallback -> any (deciderHasDebug . snd) tests || deciderHasDebug fallback
-- TODO: FIND GLOBALLY UNUSED DEFINITIONS?
-- TODO: FIND PACKAGE USAGE STATS? (e.g. gren/core = 142, author/project = 2, etc.)

View File

@ -120,7 +120,6 @@ Executable gren
AST.Optimized
AST.Source
AST.Utils.Binop
AST.Utils.Shader
AST.Utils.Type
Canonicalize.Effects
Canonicalize.Environment