packages feed

alex 3.1.1 → 3.1.2

raw patch · 3 files changed

+49/−2 lines, 3 files

Files

alex.cabal view
@@ -1,5 +1,5 @@ name: alex-version: 3.1.1+version: 3.1.2 license: BSD3 license-file: LICENSE copyright: (c) Chis Dornan, Simon Marlow@@ -16,6 +16,10 @@   for scanning text efficiently. It is similar to the tool   lex or flex for C/C++.   .+  Changes in 3.1.2:+  .+  * Add missing file to extra-source-files+  .   Changes in 3.1.1:   .   * Bug fixes (#24, #30, #31, #32)@@ -71,6 +75,7 @@         tests/tokens_strict_bytestring.x         tests/tokens_monad_bytestring.x         tests/tokens_monadUserState_bytestring.x+        tests/tokens_bytestring_unicode.x         tests/unicode.x  source-repository head
dist/build/alex/alex-tmp/Parser.hs view
@@ -21,7 +21,7 @@ import qualified Data.Array as Happy_Data_Array import qualified GHC.Exts as Happy_GHC_Exts --- parser produced by Happy Version 1.19.0.1+-- parser produced by Happy Version 1.19.1  newtype HappyAbsSyn  = HappyAbsSyn HappyAny #if __GLASGOW_HASKELL__ >= 607
+ tests/tokens_bytestring_unicode.x view
@@ -0,0 +1,42 @@+{+{-# LANGUAGE OverloadedStrings #-}+module Main (main) where+import System.Exit+import Data.ByteString.Lazy.Char8 (unpack)+}++%wrapper "basic-bytestring"++$digit = 0-9      -- digits+$alpha = [a-zA-Zαβ]    -- alphabetic characters++tokens :-++  $white+        ;+  "--".*        ;+  let          { \s -> Let }+  in          { \s -> In }+  $digit+                               { \s -> Int (read (unpack s)) }+  [\=\+\-\*\/\(\)]                      { \s -> Sym (head (unpack s)) }+  $alpha [$alpha $digit \_ \']*         { \s -> Var (unpack s) }++{+-- Each right-hand side has type :: ByteString -> Token++-- The token type:+data Token =+  Let     |+  In      |+  Sym Char  |+  Var String  |+  Int Int    |+  Err+  deriving (Eq,Show)++main = if test1 /= result1 then exitFailure+                           else exitWith ExitSuccess++-- \206\177\206\178\206\178 is "αββ" utf-8 encoded+test1 = alexScanTokens "  let in 012334\n=+*foo \206\177\206\178\206\178 bar__'"+result1 = [Let,In,Int 12334,Sym '=',Sym '+',Sym '*',Var "foo",Var "\206\177\206\178\206\178",Var "bar__'"]+}