@@ -1307,66 +1307,70 @@ eatShader array offset length row col =
1307-- KERNEL CHOMP
1307-- KERNEL CHOMP
1310−data ChunkTag = KernelEnum Word8 | KernelImport
1311+ = KernelEnum Word8 Text
1313+ | KernelImport Text
1313−kernelChunk :: Parser (BS.ByteString, Maybe (ChunkTag, Text))
1316+kernelChunk :: Parser (BS.ByteString, Maybe ChunkTag)
1314kernelChunk =
1317kernelChunk =
1315 Parser $ \(State array offset length indent row col ctx) cok _ _ _ ->
1318 Parser $ \(State array offset length indent row col ctx) cok _ _ _ ->
1317− (# maybeChunkTag, newOffset, newLength, newRow, newCol #) =
1320+ (# maybeChunkTag, jsOffset, newOffset, newLength, newRow, newCol #) =
1318− kernelChunkHelp array offset length row col
1321+ chompChunk array offset length row col
1320− javascript =
1323+ !javascript =
1321− Text.encodeUtf8 (Text.Text array offset (newOffset - offset))
1324+ Text.encodeUtf8 (Text.Text array offset (jsOffset - offset))
1323− case maybeChunkTag of
1327− State array newOffset newLength indent newRow newCol ctx
1329− cok (javascript, Nothing) newState noError
1333− (# newerOffset, newerLength, newerCol #) =
1334− varPrimHelp array newOffset newLength newCol
1336− !newState =
1326+ !newState =
1337− State array newerOffset newerLength indent newRow newerCol ctx
1327+ State array newOffset newLength indent newRow newCol ctx
1340− Text.Text array newOffset (newerOffset - newOffset)
1342− cok (javascript, Just (tag, kernelSymbol)) newState noError
1329+ cok (javascript, maybeChunkTag) newState noError
1345−kernelChunkHelp :: Text.Array -> Int -> Int -> Int -> Int -> (# Maybe ChunkTag, Int, Int, Int, Int #)
1332+chompChunk :: Text.Array -> Int -> Int -> Int -> Int -> (# Maybe ChunkTag, Int, Int, Int, Int, Int #)
1346−kernelChunkHelp array offset length row col =
1333+chompChunk array offset length row col =
1347 if length == 0 then
1334 if length == 0 then
1348− (# Nothing, offset, length, row, col #)
1335+ (# Nothing, offset, offset, length, row, col #)
1352 !word = Text.unsafeIndex array offset
1339 !word = Text.unsafeIndex array offset
1354 if word == 0x005F {- _ -} && length > 3 && Text.unsafeIndex array (offset + 1) == 0x005F {- _ -} then
1341 if word == 0x005F {- _ -} && length > 3 && Text.unsafeIndex array (offset + 1) == 0x005F {- _ -} then
1355− (# Just (toChunkTag (Text.unsafeIndex array (offset + 2))), offset, length, row, col #)
1342+ chompChunkTag array offset (offset + 2) (length - 2) row (col + 2)
1357 else if word == 0x000A {- \n -} then
1344 else if word == 0x000A {- \n -} then
1358− kernelChunkHelp array (offset + 1) (length - 1) (row + 1) 1
1345+ chompChunk array (offset + 1) (length - 1) (row + 1) 1
1360 else if word < 0xD800 || word > 0xDBFF then
1347 else if word < 0xD800 || word > 0xDBFF then
1361− kernelChunkHelp array (offset + 1) (length - 1) row (col + 1)
1348+ chompChunk array (offset + 1) (length - 1) row (col + 1)
1364− kernelChunkHelp array (offset + 2) (length - 2) row (col + 1)
1351+ chompChunk array (offset + 2) (length - 2) row (col + 1)
1367−toChunkTag :: Word16 -> ChunkTag
1354+chompChunkTag :: Text.Array -> Int -> Int -> Int -> Int -> Int -> (# Maybe ChunkTag, Int, Int, Int, Int, Int #)
1355+chompChunkTag array jsOffset offset length row col =
1357+ (# newOffset, newLength, newCol #) =
1358+ varPrimHelp array offset length col
1368−toChunkTag word =
1360+ !word =
1361+ Text.unsafeIndex array offset
1364+ Text.Text array offset (newOffset - offset)
1369− if isDigit word then
1367+ if isDigit word then
1370− KernelEnum (fromIntegral (word - 0x0030 {- 0 -}))
1368+ KernelEnum (fromIntegral (word - 0x0030 {- 0 -})) kernelSymbol
1369+ else if kernelSymbol == "DEV" then
1371+ else if kernelSymbol == "PROD" then
1372− KernelImport
1374+ KernelImport kernelSymbol
1376+ (# Just chunkTag, jsOffset, newOffset, newLength, row, newCol #)