git.iko.soy/typeable/cabal2nix
on master help sign in
Added the modules generated by bnfc into the repository until I've

figured out how to integrate that tool into the cabal build process.

commit4a0f046234bd2ac7fd19811ebefc602c35407404 authorPeter Simons <simons@cryp.to> dateFri 12 Aug 2011, 12:20 (15 years ago) parent172ad4a
5 files changed+1182
cabal2nix.cabal+4 src/Hackage4Nix/Nix/Abs.hs+46 src/Hackage4Nix/Nix/ErrM.hs+26 src/Hackage4Nix/Nix/Lex.hs+351 src/Hackage4Nix/Nix/Par.hs+755
cabal2nix.cabal+4
@@ -66,3 +66,7 @@ Executable hackage4nix
6666 Cabal2Nix.CorePackages
6767 Cabal2Nix.Package
6868 Cabal2Nix.Hackage
69+ Hackage4Nix.Nix.Abs
70+ Hackage4Nix.Nix.ErrM
71+ Hackage4Nix.Nix.Lex
72+ Hackage4Nix.Nix.Par
src/Hackage4Nix/Nix/Abs.hsnew file+46
@@ -0,0 +1,46 @@
1+module Hackage4Nix.Nix.Abs where
2+
3+-- Haskell module generated by the BNF converter
4+
5+
6+newtype Ident = Ident String deriving (Eq,Ord,Show)
7+newtype QString = QString String deriving (Eq,Ord,Show)
8+newtype URL = URL String deriving (Eq,Ord,Show)
9+newtype Path = Path String deriving (Eq,Ord,Show)
10+data Expr =
11+ Expr [Argument] Argument Dictionary
12+ deriving (Eq,Ord,Show)
13+
14+data Argument =
15+ Argument Ident
16+ deriving (Eq,Ord,Show)
17+
18+data Dictionary =
19+ Dictionary [Attribute]
20+ deriving (Eq,Ord,Show)
21+
22+data Attribute =
23+ Attribute Reference Value
24+ deriving (Eq,Ord,Show)
25+
26+data Reference =
27+ Reference [Ident]
28+ deriving (Eq,Ord,Show)
29+
30+data Value =
31+ StringV String
32+ | QStringV QString
33+ | URLV URL
34+ | PathV Path
35+ | BoolV Boolean
36+ | AttributeV Reference
37+ | ListV [Value]
38+ | DictionaryV Dictionary
39+ | FunctionV Reference Dictionary
40+ deriving (Eq,Ord,Show)
41+
42+data Boolean =
43+ Yes
44+ | No
45+ deriving (Eq,Ord,Show)
46+
src/Hackage4Nix/Nix/ErrM.hsnew file+26
@@ -0,0 +1,26 @@
1+-- BNF Converter: Error Monad
2+-- Copyright (C) 2004 Author: Aarne Ranta
3+
4+-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
5+module Hackage4Nix.Nix.ErrM where
6+
7+-- the Error monad: like Maybe type with error msgs
8+
9+import Control.Monad (MonadPlus(..), liftM)
10+
11+data Err a = Ok a | Bad String
12+ deriving (Read, Show, Eq, Ord)
13+
14+instance Monad Err where
15+ return = Ok
16+ fail = Bad
17+ Ok a >>= f = f a
18+ Bad s >>= f = Bad s
19+
20+instance Functor Err where
21+ fmap = liftM
22+
23+instance MonadPlus Err where
24+ mzero = Bad "Err.mzero"
25+ mplus (Bad _) y = y
26+ mplus x _ = x
src/Hackage4Nix/Nix/Lex.hsnew file+351
@@ -0,0 +1,351 @@
1+{-# LANGUAGE CPP,MagicHash #-}
2+{-# LINE 3 "Hackage4Nix/Nix/Lex.x" #-}
3+
4+{-# OPTIONS -fno-warn-incomplete-patterns #-}
5+module Hackage4Nix.Nix.Lex where
6+
7+
8+
9+
10+#if __GLASGOW_HASKELL__ >= 603
11+#include "ghcconfig.h"
12+#elif defined(__GLASGOW_HASKELL__)
13+#include "config.h"
14+#endif
15+#if __GLASGOW_HASKELL__ >= 503
16+import Data.Array
17+import Data.Char (ord)
18+import Data.Array.Base (unsafeAt)
19+#else
20+import Array
21+import Char (ord)
22+#endif
23+#if __GLASGOW_HASKELL__ >= 503
24+import GHC.Exts
25+#else
26+import GlaExts
27+#endif
28+alex_base :: AlexAddr
29+alex_base = AlexA# "\xf8\xff\xff\xff\xfc\xff\xff\xff\xfd\xff\xff\xff\xde\xff\xff\xff\x00\x00\x00\x00\xdf\xff\xff\xff\xe0\xff\xff\xff\xe1\xff\xff\xff\xe2\xff\xff\xff\xe3\xff\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xff\xff\xa3\xff\xff\xff\xd1\x00\x00\x00\xa1\x01\x00\x00\x71\x02\x00\x00\x41\x03\x00\x00\x11\x04\x00\x00\xac\xff\xff\xff\xd5\xff\xff\xff\xb7\xff\xff\xff\xab\xff\xff\xff\xb5\xff\xff\xff\xad\xff\xff\xff\xc1\xff\xff\xff\xb1\xff\xff\xff\xc0\xff\xff\xff\xbb\xff\xff\xff\xbd\xff\xff\xff\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xf1\x00\x00\x00\xc1\x01\x00\x00\xe1\x04\x00\x00\xb1\x05\x00\x00\x25\x00\x00\x00\x27\x00\x00\x00\x91\x02\x00\x00\x61\x03\x00\x00\x81\x06\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x93\x00\x00\x00\x4a\x04\x00\x00"#
30+
31+alex_table :: AlexAddr
32+alex_table = AlexA# "\x00\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\xff\xff\xff\xff\x06\x00\x06\x00\x05\x00\x06\x00\x06\x00\x07\x00\x03\x00\x04\x00\x14\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2b\x00\x15\x00\x0a\x00\x16\x00\x2e\x00\x01\x00\x17\x00\x18\x00\x19\x00\x23\x00\x0b\x00\x0b\x00\x1b\x00\x1a\x00\x0b\x00\x1c\x00\x0d\x00\x09\x00\x0a\x00\x1d\x00\x1e\x00\x0c\x00\x1f\x00\x22\x00\x22\x00\x00\x00\x1f\x00\x20\x00\x0b\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x0b\x00\x25\x00\x0b\x00\x28\x00\x00\x00\x00\x00\x26\x00\x26\x00\x10\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x11\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x12\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x13\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2f\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x0f\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x00\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x00\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00"#
33+
34+alex_check :: AlexAddr
35+alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2f\x00\x2f\x00\x6d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2f\x00\x6b\x00\x20\x00\x44\x00\x22\x00\x23\x00\x65\x00\x72\x00\x69\x00\x27\x00\x28\x00\x29\x00\x61\x00\x76\x00\x2c\x00\x74\x00\x2e\x00\x2f\x00\x20\x00\x69\x00\x6f\x00\x6e\x00\x27\x00\x27\x00\x27\x00\xff\xff\x27\x00\x27\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x2f\x00\x5d\x00\x2f\x00\xff\xff\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\x5c\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x5c\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3b\x00\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3b\x00\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3b\x00\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3b\x00\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x22\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x27\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"#
36+
37+alex_deflt :: AlexAddr
38+alex_deflt = AlexA# "\xff\xff\x02\x00\x02\x00\x08\x00\xff\xff\x08\x00\x08\x00\x08\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x00\x21\x00\x21\x00\x21\x00\xff\xff\x24\x00\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x2a\x00\xff\xff\xff\xff\x2f\x00\x2f\x00\xff\xff"#
39+
40+alex_accept = listArray (0::Int,48) [[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[],[],[],[],[],[(AlexAccSkip)],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[],[],[],[],[],[],[],[],[],[],[],[(AlexAcc (alex_action_4))],[],[],[],[],[(AlexAcc (alex_action_5))],[],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[],[],[(AlexAcc (alex_action_6))],[],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_8))],[],[],[]]
41+{-# LINE 40 "Hackage4Nix/Nix/Lex.x" #-}
42+
43+
44+tok f p s = f p s
45+
46+share :: String -> String
47+share = id
48+
49+data Tok =
50+ TS !String !Int -- reserved words and symbols
51+ | TL !String -- string literals
52+ | TI !String -- integer literals
53+ | TV !String -- identifiers
54+ | TD !String -- double precision float literals
55+ | TC !String -- character literals
56+ | T_QString !String
57+ | T_URL !String
58+ | T_Path !String
59+
60+ deriving (Eq,Show,Ord)
61+
62+data Token =
63+ PT Posn Tok
64+ | Err Posn
65+ deriving (Eq,Show,Ord)
66+
67+tokenPos (PT (Pn _ l _) _ :_) = "line " ++ show l
68+tokenPos (Err (Pn _ l _) :_) = "line " ++ show l
69+tokenPos _ = "end of file"
70+
71+posLineCol (Pn _ l c) = (l,c)
72+mkPosToken t@(PT p _) = (posLineCol p, prToken t)
73+
74+prToken t = case t of
75+ PT _ (TS s _) -> s
76+ PT _ (TL s) -> s
77+ PT _ (TI s) -> s
78+ PT _ (TV s) -> s
79+ PT _ (TD s) -> s
80+ PT _ (TC s) -> s
81+ PT _ (T_QString s) -> s
82+ PT _ (T_URL s) -> s
83+ PT _ (T_Path s) -> s
84+
85+
86+data BTree = N | B String Tok BTree BTree deriving (Show)
87+
88+eitherResIdent :: (String -> Tok) -> String -> Tok
89+eitherResIdent tv s = treeFind resWords
90+ where
91+ treeFind N = tv s
92+ treeFind (B a t left right) | s < a = treeFind left
93+ | s > a = treeFind right
94+ | s == a = t
95+
96+resWords = b "[" 8 (b "." 4 (b ")" 2 (b "(" 1 N N) (b "," 3 N N)) (b ";" 6 (b ":" 5 N N) (b "=" 7 N N))) (b "true" 12 (b "cabal.mkDerivation" 10 (b "]" 9 N N) (b "false" 11 N N)) (b "}" 14 (b "{" 13 N N) N))
97+ where b s n = let bs = id s
98+ in B bs (TS bs n)
99+
100+unescapeInitTail :: String -> String
101+unescapeInitTail = id . unesc . tail . id where
102+ unesc s = case s of
103+ '\\':c:cs | elem c ['\"', '\\', '\''] -> c : unesc cs
104+ '\\':'n':cs -> '\n' : unesc cs
105+ '\\':'t':cs -> '\t' : unesc cs
106+ '"':[] -> []
107+ c:cs -> c : unesc cs
108+ _ -> []
109+
110+-------------------------------------------------------------------
111+-- Alex wrapper code.
112+-- A modified "posn" wrapper.
113+-------------------------------------------------------------------
114+
115+data Posn = Pn !Int !Int !Int
116+ deriving (Eq, Show,Ord)
117+
118+alexStartPos :: Posn
119+alexStartPos = Pn 0 1 1
120+
121+alexMove :: Posn -> Char -> Posn
122+alexMove (Pn a l c) '\t' = Pn (a+1) l (((c+7) `div` 8)*8+1)
123+alexMove (Pn a l c) '\n' = Pn (a+1) (l+1) 1
124+alexMove (Pn a l c) _ = Pn (a+1) l (c+1)
125+
126+type AlexInput = (Posn, -- current position,
127+ Char, -- previous char
128+ String) -- current input string
129+
130+tokens :: String -> [Token]
131+tokens str = go (alexStartPos, '\n', str)
132+ where
133+ go :: AlexInput -> [Token]
134+ go inp@(pos, _, str) =
135+ case alexScan inp 0 of
136+ AlexEOF -> []
137+ AlexError (pos, _, _) -> [Err pos]
138+ AlexSkip inp' len -> go inp'
139+ AlexToken inp' len act -> act pos (take len str) : (go inp')
140+
141+alexGetChar :: AlexInput -> Maybe (Char,AlexInput)
142+alexGetChar (p, _, s) =
143+ case s of
144+ [] -> Nothing
145+ (c:s) ->
146+ let p' = alexMove p c
147+ in p' `seq` Just (c, (p', c, s))
148+
149+alexInputPrevChar :: AlexInput -> Char
150+alexInputPrevChar (p, c, s) = c
151+
152+alex_action_3 = tok (\p s -> PT p (eitherResIdent (TV . share) s))
153+alex_action_4 = tok (\p s -> PT p (eitherResIdent (T_QString . share) s))
154+alex_action_5 = tok (\p s -> PT p (eitherResIdent (T_URL . share) s))
155+alex_action_6 = tok (\p s -> PT p (eitherResIdent (T_Path . share) s))
156+alex_action_7 = tok (\p s -> PT p (eitherResIdent (TV . share) s))
157+alex_action_8 = tok (\p s -> PT p (TL $ share $ unescapeInitTail s))
158+{-# LINE 1 "templates/GenericTemplate.hs" #-}
159+{-# LINE 1 "templates/GenericTemplate.hs" #-}
160+{-# LINE 1 "<built-in>" #-}
161+{-# LINE 1 "<command-line>" #-}
162+{-# LINE 1 "templates/GenericTemplate.hs" #-}
163+-- -----------------------------------------------------------------------------
164+-- ALEX TEMPLATE
165+--
166+-- This code is in the PUBLIC DOMAIN; you may copy it freely and use
167+-- it for any purpose whatsoever.
168+
169+-- -----------------------------------------------------------------------------
170+-- INTERNALS and main scanner engine
171+
172+{-# LINE 37 "templates/GenericTemplate.hs" #-}
173+
174+{-# LINE 47 "templates/GenericTemplate.hs" #-}
175+
176+
177+data AlexAddr = AlexA# Addr#
178+
179+#if __GLASGOW_HASKELL__ < 503
180+uncheckedShiftL# = shiftL#
181+#endif
182+
183+{-# INLINE alexIndexInt16OffAddr #-}
184+alexIndexInt16OffAddr (AlexA# arr) off =
185+#ifdef WORDS_BIGENDIAN
186+ narrow16Int# i
187+ where
188+ i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
189+ high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
190+ low = int2Word# (ord# (indexCharOffAddr# arr off'))
191+ off' = off *# 2#
192+#else
193+ indexInt16OffAddr# arr off
194+#endif
195+
196+
197+
198+
199+
200+{-# INLINE alexIndexInt32OffAddr #-}
201+alexIndexInt32OffAddr (AlexA# arr) off =
202+#ifdef WORDS_BIGENDIAN
203+ narrow32Int# i
204+ where
205+ i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`
206+ (b2 `uncheckedShiftL#` 16#) `or#`
207+ (b1 `uncheckedShiftL#` 8#) `or#` b0)
208+ b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))
209+ b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))
210+ b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
211+ b0 = int2Word# (ord# (indexCharOffAddr# arr off'))
212+ off' = off *# 4#
213+#else
214+ indexInt32OffAddr# arr off
215+#endif
216+
217+
218+
219+
220+
221+#if __GLASGOW_HASKELL__ < 503
222+quickIndex arr i = arr ! i
223+#else
224+-- GHC >= 503, unsafeAt is available from Data.Array.Base.
225+quickIndex = unsafeAt
226+#endif
227+
228+
229+
230+
231+-- -----------------------------------------------------------------------------
232+-- Main lexing routines
233+
234+data AlexReturn a
235+ = AlexEOF
236+ | AlexError !AlexInput
237+ | AlexSkip !AlexInput !Int
238+ | AlexToken !AlexInput !Int a
239+
240+-- alexScan :: AlexInput -> StartCode -> AlexReturn a
241+alexScan input (I# (sc))
242+ = alexScanUser undefined input (I# (sc))
243+
244+alexScanUser user input (I# (sc))
245+ = case alex_scan_tkn user input 0# input sc AlexNone of
246+ (AlexNone, input') ->
247+ case alexGetChar input of
248+ Nothing ->
249+
250+
251+
252+ AlexEOF
253+ Just _ ->
254+
255+
256+
257+ AlexError input'
258+
259+ (AlexLastSkip input'' len, _) ->
260+
261+
262+
263+ AlexSkip input'' len
264+
265+ (AlexLastAcc k input''' len, _) ->
266+
267+
268+
269+ AlexToken input''' len k
270+
271+
272+-- Push the input through the DFA, remembering the most recent accepting
273+-- state it encountered.
274+
275+alex_scan_tkn user orig_input len input s last_acc =
276+ input `seq` -- strict in the input
277+ let
278+ new_acc = check_accs (alex_accept `quickIndex` (I# (s)))
279+ in
280+ new_acc `seq`
281+ case alexGetChar input of
282+ Nothing -> (new_acc, input)
283+ Just (c, new_input) ->
284+
285+
286+
287+ let
288+ (base) = alexIndexInt32OffAddr alex_base s
289+ ((I# (ord_c))) = ord c
290+ (offset) = (base +# ord_c)
291+ (check) = alexIndexInt16OffAddr alex_check offset
292+
293+ (new_s) = if (offset >=# 0#) && (check ==# ord_c)
294+ then alexIndexInt16OffAddr alex_table offset
295+ else alexIndexInt16OffAddr alex_deflt s
296+ in
297+ case new_s of
298+ -1# -> (new_acc, input)
299+ -- on an error, we want to keep the input *before* the
300+ -- character that failed, not after.
301+ _ -> alex_scan_tkn user orig_input (len +# 1#)
302+ new_input new_s new_acc
303+
304+ where
305+ check_accs [] = last_acc
306+ check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len))
307+ check_accs (AlexAccSkip : _) = AlexLastSkip input (I# (len))
308+ check_accs (AlexAccPred a predx : rest)
309+ | predx user orig_input (I# (len)) input
310+ = AlexLastAcc a input (I# (len))
311+ check_accs (AlexAccSkipPred predx : rest)
312+ | predx user orig_input (I# (len)) input
313+ = AlexLastSkip input (I# (len))
314+ check_accs (_ : rest) = check_accs rest
315+
316+data AlexLastAcc a
317+ = AlexNone
318+ | AlexLastAcc a !AlexInput !Int
319+ | AlexLastSkip !AlexInput !Int
320+
321+data AlexAcc a user
322+ = AlexAcc a
323+ | AlexAccSkip
324+ | AlexAccPred a (AlexAccPred user)
325+ | AlexAccSkipPred (AlexAccPred user)
326+
327+type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool
328+
329+-- -----------------------------------------------------------------------------
330+-- Predicates on a rule
331+
332+alexAndPred p1 p2 user in1 len in2
333+ = p1 user in1 len in2 && p2 user in1 len in2
334+
335+--alexPrevCharIsPred :: Char -> AlexAccPred _
336+alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input
337+
338+--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _
339+alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input
340+
341+--alexRightContext :: Int -> AlexAccPred _
342+alexRightContext (I# (sc)) user _ _ input =
343+ case alex_scan_tkn user input 0# input sc AlexNone of
344+ (AlexNone, _) -> False
345+ _ -> True
346+ -- TODO: there's no need to find the longest
347+ -- match when checking the right context, just
348+ -- the first match will do.
349+
350+-- used by wrappers
351+iUnbox (I# (i)) = i
src/Hackage4Nix/Nix/Par.hsnew file+755
@@ -0,0 +1,755 @@
1+{-# OPTIONS_GHC -w #-}
2+{-# OPTIONS -fglasgow-exts -cpp #-}
3+{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
4+module Hackage4Nix.Nix.Par where
5+import Hackage4Nix.Nix.Abs
6+import Hackage4Nix.Nix.Lex
7+import Hackage4Nix.Nix.ErrM
8+import qualified Data.Array as Happy_Data_Array
9+import qualified GHC.Exts as Happy_GHC_Exts
10+
11+-- parser produced by Happy Version 1.18.6
12+
13+newtype HappyAbsSyn = HappyAbsSyn HappyAny
14+#if __GLASGOW_HASKELL__ >= 607
15+type HappyAny = Happy_GHC_Exts.Any
16+#else
17+type HappyAny = forall a . a
18+#endif
19+happyIn14 :: (Ident) -> (HappyAbsSyn )
20+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
21+{-# INLINE happyIn14 #-}
22+happyOut14 :: (HappyAbsSyn ) -> (Ident)
23+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
24+{-# INLINE happyOut14 #-}
25+happyIn15 :: (String) -> (HappyAbsSyn )
26+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
27+{-# INLINE happyIn15 #-}
28+happyOut15 :: (HappyAbsSyn ) -> (String)
29+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
30+{-# INLINE happyOut15 #-}
31+happyIn16 :: (QString) -> (HappyAbsSyn )
32+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
33+{-# INLINE happyIn16 #-}
34+happyOut16 :: (HappyAbsSyn ) -> (QString)
35+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
36+{-# INLINE happyOut16 #-}
37+happyIn17 :: (URL) -> (HappyAbsSyn )
38+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
39+{-# INLINE happyIn17 #-}
40+happyOut17 :: (HappyAbsSyn ) -> (URL)
41+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
42+{-# INLINE happyOut17 #-}
43+happyIn18 :: (Path) -> (HappyAbsSyn )
44+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
45+{-# INLINE happyIn18 #-}
46+happyOut18 :: (HappyAbsSyn ) -> (Path)
47+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
48+{-# INLINE happyOut18 #-}
49+happyIn19 :: (Expr) -> (HappyAbsSyn )
50+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
51+{-# INLINE happyIn19 #-}
52+happyOut19 :: (HappyAbsSyn ) -> (Expr)
53+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
54+{-# INLINE happyOut19 #-}
55+happyIn20 :: (Argument) -> (HappyAbsSyn )
56+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
57+{-# INLINE happyIn20 #-}
58+happyOut20 :: (HappyAbsSyn ) -> (Argument)
59+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
60+{-# INLINE happyOut20 #-}
61+happyIn21 :: ([Argument]) -> (HappyAbsSyn )
62+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
63+{-# INLINE happyIn21 #-}
64+happyOut21 :: (HappyAbsSyn ) -> ([Argument])
65+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
66+{-# INLINE happyOut21 #-}
67+happyIn22 :: (Dictionary) -> (HappyAbsSyn )
68+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
69+{-# INLINE happyIn22 #-}
70+happyOut22 :: (HappyAbsSyn ) -> (Dictionary)
71+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
72+{-# INLINE happyOut22 #-}
73+happyIn23 :: (Attribute) -> (HappyAbsSyn )
74+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
75+{-# INLINE happyIn23 #-}
76+happyOut23 :: (HappyAbsSyn ) -> (Attribute)
77+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
78+{-# INLINE happyOut23 #-}
79+happyIn24 :: ([Attribute]) -> (HappyAbsSyn )
80+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
81+{-# INLINE happyIn24 #-}
82+happyOut24 :: (HappyAbsSyn ) -> ([Attribute])
83+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
84+{-# INLINE happyOut24 #-}
85+happyIn25 :: (Reference) -> (HappyAbsSyn )
86+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
87+{-# INLINE happyIn25 #-}
88+happyOut25 :: (HappyAbsSyn ) -> (Reference)
89+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
90+{-# INLINE happyOut25 #-}
91+happyIn26 :: ([Ident]) -> (HappyAbsSyn )
92+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
93+{-# INLINE happyIn26 #-}
94+happyOut26 :: (HappyAbsSyn ) -> ([Ident])
95+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
96+{-# INLINE happyOut26 #-}
97+happyIn27 :: (Value) -> (HappyAbsSyn )
98+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
99+{-# INLINE happyIn27 #-}
100+happyOut27 :: (HappyAbsSyn ) -> (Value)
101+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
102+{-# INLINE happyOut27 #-}
103+happyIn28 :: ([Value]) -> (HappyAbsSyn )
104+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
105+{-# INLINE happyIn28 #-}
106+happyOut28 :: (HappyAbsSyn ) -> ([Value])
107+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
108+{-# INLINE happyOut28 #-}
109+happyIn29 :: (Boolean) -> (HappyAbsSyn )
110+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
111+{-# INLINE happyIn29 #-}
112+happyOut29 :: (HappyAbsSyn ) -> (Boolean)
113+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
114+{-# INLINE happyOut29 #-}
115+happyInTok :: (Token) -> (HappyAbsSyn )
116+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
117+{-# INLINE happyInTok #-}
118+happyOutTok :: (HappyAbsSyn ) -> (Token)
119+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
120+{-# INLINE happyOutTok #-}
121+
122+
123+happyActOffsets :: HappyAddr
124+happyActOffsets = HappyA# "\x80\x00\x7d\x00\x7d\x00\x7e\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x52\x00\x00\x00\x1b\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x00\x00\x37\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x75\x00\x5e\x00\x75\x00\x76\x00\x72\x00\x00\x00\x78\x00\x70\x00\x70\x00\x70\x00\x6f\x00\x6e\x00\x6b\x00\x52\x00\x73\x00\xf8\xff\x46\x00\x00\x00\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x6d\x00\x74\x00\x65\x00\x66\x00\x5c\x00\x5a\x00\x00\x00\x00\x00"#
125+
126+happyGotoOffsets :: HappyAddr
127+happyGotoOffsets = HappyA# "\x56\x00\x6c\x00\x6a\x00\x48\x00\x1f\x00\x4a\x00\x0b\x00\x41\x00\x31\x00\x29\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x28\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x60\x00\x11\x00\x00\x00\x0f\x00\x01\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00"#
128+
129+happyDefActions :: HappyAddr
130+happyDefActions = HappyA# "\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\xe8\xff\x00\x00\x00\x00\x00\x00\xda\xff\x00\x00\x00\x00\xf4\xff\x00\x00\xd7\xff\xd8\xff\x00\x00\xe5\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdc\xff\xde\xff\xe6\xff\x00\x00\xdf\xff\xda\xff\xe8\xff\xf3\xff\xf2\xff\xf1\xff\xf0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xff\xec\xff\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xd9\xff\xe4\xff\xdd\xff\xea\xff\xe7\xff\xe9\xff\xeb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff"#
131+
132+happyCheck :: HappyAddr
133+happyCheck = HappyA# "\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x0f\x00\x0a\x00\x08\x00\x08\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0b\x00\x0c\x00\x09\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0b\x00\x0c\x00\x09\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x0e\x00\x08\x00\x08\x00\x0f\x00\x0c\x00\x0b\x00\x0c\x00\x0d\x00\x08\x00\x0f\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x06\x00\x15\x00\x0c\x00\x08\x00\x09\x00\x08\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x08\x00\x05\x00\x02\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x06\x00\x07\x00\x00\x00\x0d\x00\x00\x00\x05\x00\x00\x00\x0f\x00\x06\x00\x07\x00\x06\x00\x07\x00\x06\x00\x15\x00\x0f\x00\x01\x00\x05\x00\x0a\x00\x0f\x00\x06\x00\x0f\x00\x03\x00\x0e\x00\x07\x00\x0f\x00\x04\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x15\x00\xff\xff\x15\x00\xff\xff\x0f\x00\x15\x00\x0d\x00\x0f\x00\x0d\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
134+
135+happyTable :: HappyAddr
136+happyTable = HappyA# "\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x39\x00\x0d\x00\x31\x00\x16\x00\x42\x00\x11\x00\x17\x00\x18\x00\x35\x00\x11\x00\x1a\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x22\x00\x18\x00\x30\x00\x16\x00\x25\x00\x18\x00\x17\x00\x18\x00\x3a\x00\x11\x00\x1a\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0f\x00\x10\x00\x24\x00\x16\x00\x25\x00\x18\x00\x17\x00\x18\x00\x35\x00\x11\x00\x1a\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x32\x00\x10\x00\x33\x00\x16\x00\x0d\x00\x36\x00\x17\x00\x18\x00\x19\x00\x1c\x00\x1a\x00\x11\x00\x0f\x00\x10\x00\x1d\x00\x27\x00\x0d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x40\x00\xff\xff\x21\x00\x1c\x00\x38\x00\x26\x00\x0f\x00\x10\x00\x1d\x00\x23\x00\x0d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x1c\x00\x2b\x00\x44\x00\x0f\x00\x10\x00\x1d\x00\x27\x00\x0d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x28\x00\x3b\x00\x27\x00\x1d\x00\x27\x00\x42\x00\x27\x00\x0d\x00\x28\x00\x2d\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x0d\x00\x40\x00\x3e\x00\x3f\x00\x0d\x00\x3a\x00\x0d\x00\x2f\x00\x3d\x00\x30\x00\x0d\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0d\x00\xff\xff\x1d\x00\x0d\x00\x2d\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
137+
138+happyReduceArr = Happy_Data_Array.array (11, 40) [
139+ (11 , happyReduce_11),
140+ (12 , happyReduce_12),
141+ (13 , happyReduce_13),
142+ (14 , happyReduce_14),
143+ (15 , happyReduce_15),
144+ (16 , happyReduce_16),
145+ (17 , happyReduce_17),
146+ (18 , happyReduce_18),
147+ (19 , happyReduce_19),
148+ (20 , happyReduce_20),
149+ (21 , happyReduce_21),
150+ (22 , happyReduce_22),
151+ (23 , happyReduce_23),
152+ (24 , happyReduce_24),
153+ (25 , happyReduce_25),
154+ (26 , happyReduce_26),
155+ (27 , happyReduce_27),
156+ (28 , happyReduce_28),
157+ (29 , happyReduce_29),
158+ (30 , happyReduce_30),
159+ (31 , happyReduce_31),
160+ (32 , happyReduce_32),
161+ (33 , happyReduce_33),
162+ (34 , happyReduce_34),
163+ (35 , happyReduce_35),
164+ (36 , happyReduce_36),
165+ (37 , happyReduce_37),
166+ (38 , happyReduce_38),
167+ (39 , happyReduce_39),
168+ (40 , happyReduce_40)
169+ ]
170+
171+happy_n_terms = 22 :: Int
172+happy_n_nonterms = 16 :: Int
173+
174+happyReduce_11 = happySpecReduce_1 0# happyReduction_11
175+happyReduction_11 happy_x_1
176+ = case happyOutTok happy_x_1 of { (PT _ (TV happy_var_1)) ->
177+ happyIn14
178+ (Ident happy_var_1
179+ )}
180+
181+happyReduce_12 = happySpecReduce_1 1# happyReduction_12
182+happyReduction_12 happy_x_1
183+ = case happyOutTok happy_x_1 of { (PT _ (TL happy_var_1)) ->
184+ happyIn15
185+ (happy_var_1
186+ )}
187+
188+happyReduce_13 = happySpecReduce_1 2# happyReduction_13
189+happyReduction_13 happy_x_1
190+ = case happyOutTok happy_x_1 of { (PT _ (T_QString happy_var_1)) ->
191+ happyIn16
192+ (QString (happy_var_1)
193+ )}
194+
195+happyReduce_14 = happySpecReduce_1 3# happyReduction_14
196+happyReduction_14 happy_x_1
197+ = case happyOutTok happy_x_1 of { (PT _ (T_URL happy_var_1)) ->
198+ happyIn17
199+ (URL (happy_var_1)
200+ )}
201+
202+happyReduce_15 = happySpecReduce_1 4# happyReduction_15
203+happyReduction_15 happy_x_1
204+ = case happyOutTok happy_x_1 of { (PT _ (T_Path happy_var_1)) ->
205+ happyIn18
206+ (Path (happy_var_1)
207+ )}
208+
209+happyReduce_16 = happyReduce 10# 5# happyReduction_16
210+happyReduction_16 (happy_x_10 `HappyStk`
211+ happy_x_9 `HappyStk`
212+ happy_x_8 `HappyStk`
213+ happy_x_7 `HappyStk`
214+ happy_x_6 `HappyStk`
215+ happy_x_5 `HappyStk`
216+ happy_x_4 `HappyStk`
217+ happy_x_3 `HappyStk`
218+ happy_x_2 `HappyStk`
219+ happy_x_1 `HappyStk`
220+ happyRest)
221+ = case happyOut21 happy_x_2 of { happy_var_2 ->
222+ case happyOut20 happy_x_7 of { happy_var_7 ->
223+ case happyOut22 happy_x_9 of { happy_var_9 ->
224+ happyIn19
225+ (Expr happy_var_2 happy_var_7 happy_var_9
226+ ) `HappyStk` happyRest}}}
227+
228+happyReduce_17 = happySpecReduce_1 6# happyReduction_17
229+happyReduction_17 happy_x_1
230+ = case happyOut14 happy_x_1 of { happy_var_1 ->
231+ happyIn20
232+ (Argument happy_var_1
233+ )}
234+
235+happyReduce_18 = happySpecReduce_0 7# happyReduction_18
236+happyReduction_18 = happyIn21
237+ ([]
238+ )
239+
240+happyReduce_19 = happySpecReduce_1 7# happyReduction_19
241+happyReduction_19 happy_x_1
242+ = case happyOut20 happy_x_1 of { happy_var_1 ->
243+ happyIn21
244+ ((:[]) happy_var_1
245+ )}
246+
247+happyReduce_20 = happySpecReduce_3 7# happyReduction_20
248+happyReduction_20 happy_x_3
249+ happy_x_2
250+ happy_x_1
251+ = case happyOut20 happy_x_1 of { happy_var_1 ->
252+ case happyOut21 happy_x_3 of { happy_var_3 ->
253+ happyIn21
254+ ((:) happy_var_1 happy_var_3
255+ )}}
256+
257+happyReduce_21 = happySpecReduce_3 8# happyReduction_21
258+happyReduction_21 happy_x_3
259+ happy_x_2
260+ happy_x_1
261+ = case happyOut24 happy_x_2 of { happy_var_2 ->
262+ happyIn22
263+ (Dictionary (reverse happy_var_2)
264+ )}
265+
266+happyReduce_22 = happySpecReduce_3 9# happyReduction_22
267+happyReduction_22 happy_x_3
268+ happy_x_2
269+ happy_x_1
270+ = case happyOut25 happy_x_1 of { happy_var_1 ->
271+ case happyOut27 happy_x_3 of { happy_var_3 ->
272+ happyIn23
273+ (Attribute happy_var_1 happy_var_3
274+ )}}
275+
276+happyReduce_23 = happySpecReduce_0 10# happyReduction_23
277+happyReduction_23 = happyIn24
278+ ([]
279+ )
280+
281+happyReduce_24 = happySpecReduce_3 10# happyReduction_24
282+happyReduction_24 happy_x_3
283+ happy_x_2
284+ happy_x_1
285+ = case happyOut24 happy_x_1 of { happy_var_1 ->
286+ case happyOut23 happy_x_2 of { happy_var_2 ->
287+ happyIn24
288+ (flip (:) happy_var_1 happy_var_2
289+ )}}
290+
291+happyReduce_25 = happySpecReduce_1 11# happyReduction_25
292+happyReduction_25 happy_x_1
293+ = case happyOut26 happy_x_1 of { happy_var_1 ->
294+ happyIn25
295+ (Reference happy_var_1
296+ )}
297+
298+happyReduce_26 = happySpecReduce_1 12# happyReduction_26
299+happyReduction_26 happy_x_1
300+ = case happyOut14 happy_x_1 of { happy_var_1 ->
301+ happyIn26
302+ ((:[]) happy_var_1
303+ )}
304+
305+happyReduce_27 = happySpecReduce_3 12# happyReduction_27
306+happyReduction_27 happy_x_3
307+ happy_x_2
308+ happy_x_1
309+ = case happyOut14 happy_x_1 of { happy_var_1 ->
310+ case happyOut26 happy_x_3 of { happy_var_3 ->
311+ happyIn26
312+ ((:) happy_var_1 happy_var_3
313+ )}}
314+
315+happyReduce_28 = happySpecReduce_1 13# happyReduction_28
316+happyReduction_28 happy_x_1
317+ = case happyOut15 happy_x_1 of { happy_var_1 ->
318+ happyIn27
319+ (StringV happy_var_1
320+ )}
321+
322+happyReduce_29 = happySpecReduce_1 13# happyReduction_29
323+happyReduction_29 happy_x_1
324+ = case happyOut16 happy_x_1 of { happy_var_1 ->
325+ happyIn27
326+ (QStringV happy_var_1
327+ )}
328+
329+happyReduce_30 = happySpecReduce_1 13# happyReduction_30
330+happyReduction_30 happy_x_1
331+ = case happyOut17 happy_x_1 of { happy_var_1 ->
332+ happyIn27
333+ (URLV happy_var_1
334+ )}
335+
336+happyReduce_31 = happySpecReduce_1 13# happyReduction_31
337+happyReduction_31 happy_x_1
338+ = case happyOut18 happy_x_1 of { happy_var_1 ->
339+ happyIn27
340+ (PathV happy_var_1
341+ )}
342+
343+happyReduce_32 = happySpecReduce_1 13# happyReduction_32
344+happyReduction_32 happy_x_1
345+ = case happyOut29 happy_x_1 of { happy_var_1 ->
346+ happyIn27
347+ (BoolV happy_var_1
348+ )}
349+
350+happyReduce_33 = happySpecReduce_1 13# happyReduction_33
351+happyReduction_33 happy_x_1
352+ = case happyOut25 happy_x_1 of { happy_var_1 ->
353+ happyIn27
354+ (AttributeV happy_var_1
355+ )}
356+
357+happyReduce_34 = happySpecReduce_3 13# happyReduction_34
358+happyReduction_34 happy_x_3
359+ happy_x_2
360+ happy_x_1
361+ = case happyOut28 happy_x_2 of { happy_var_2 ->
362+ happyIn27
363+ (ListV (reverse happy_var_2)
364+ )}
365+
366+happyReduce_35 = happySpecReduce_1 13# happyReduction_35
367+happyReduction_35 happy_x_1
368+ = case happyOut22 happy_x_1 of { happy_var_1 ->
369+ happyIn27
370+ (DictionaryV happy_var_1
371+ )}
372+
373+happyReduce_36 = happySpecReduce_2 13# happyReduction_36
374+happyReduction_36 happy_x_2
375+ happy_x_1
376+ = case happyOut25 happy_x_1 of { happy_var_1 ->
377+ case happyOut22 happy_x_2 of { happy_var_2 ->
378+ happyIn27
379+ (FunctionV happy_var_1 happy_var_2
380+ )}}
381+
382+happyReduce_37 = happySpecReduce_0 14# happyReduction_37
383+happyReduction_37 = happyIn28
384+ ([]
385+ )
386+
387+happyReduce_38 = happySpecReduce_2 14# happyReduction_38
388+happyReduction_38 happy_x_2
389+ happy_x_1
390+ = case happyOut28 happy_x_1 of { happy_var_1 ->
391+ case happyOut27 happy_x_2 of { happy_var_2 ->
392+ happyIn28
393+ (flip (:) happy_var_1 happy_var_2
394+ )}}
395+
396+happyReduce_39 = happySpecReduce_1 15# happyReduction_39
397+happyReduction_39 happy_x_1
398+ = happyIn29
399+ (Yes
400+ )
401+
402+happyReduce_40 = happySpecReduce_1 15# happyReduction_40
403+happyReduction_40 happy_x_1
404+ = happyIn29
405+ (No
406+ )
407+
408+happyNewToken action sts stk [] =
409+ happyDoAction 21# notHappyAtAll action sts stk []
410+
411+happyNewToken action sts stk (tk:tks) =
412+ let cont i = happyDoAction i tk action sts stk tks in
413+ case tk of {
414+ PT _ (TS _ 1) -> cont 1#;
415+ PT _ (TS _ 2) -> cont 2#;
416+ PT _ (TS _ 3) -> cont 3#;
417+ PT _ (TS _ 4) -> cont 4#;
418+ PT _ (TS _ 5) -> cont 5#;
419+ PT _ (TS _ 6) -> cont 6#;
420+ PT _ (TS _ 7) -> cont 7#;
421+ PT _ (TS _ 8) -> cont 8#;
422+ PT _ (TS _ 9) -> cont 9#;
423+ PT _ (TS _ 10) -> cont 10#;
424+ PT _ (TS _ 11) -> cont 11#;
425+ PT _ (TS _ 12) -> cont 12#;
426+ PT _ (TS _ 13) -> cont 13#;
427+ PT _ (TS _ 14) -> cont 14#;
428+ PT _ (TV happy_dollar_dollar) -> cont 15#;
429+ PT _ (TL happy_dollar_dollar) -> cont 16#;
430+ PT _ (T_QString happy_dollar_dollar) -> cont 17#;
431+ PT _ (T_URL happy_dollar_dollar) -> cont 18#;
432+ PT _ (T_Path happy_dollar_dollar) -> cont 19#;
433+ _ -> cont 20#;
434+ _ -> happyError' (tk:tks)
435+ }
436+
437+happyError_ tk tks = happyError' (tk:tks)
438+
439+happyThen :: () => Err a -> (a -> Err b) -> Err b
440+happyThen = (thenM)
441+happyReturn :: () => a -> Err a
442+happyReturn = (returnM)
443+happyThen1 m k tks = (thenM) m (\a -> k a tks)
444+happyReturn1 :: () => a -> b -> Err a
445+happyReturn1 = \a tks -> (returnM) a
446+happyError' :: () => [(Token)] -> Err a
447+happyError' = happyError
448+
449+pExpr tks = happySomeParser where
450+ happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut19 x))
451+
452+pArgument tks = happySomeParser where
453+ happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (happyOut20 x))
454+
455+pListArgument tks = happySomeParser where
456+ happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (happyOut21 x))
457+
458+pDictionary tks = happySomeParser where
459+ happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (happyOut22 x))
460+
461+pAttribute tks = happySomeParser where
462+ happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (happyOut23 x))
463+
464+pListAttribute tks = happySomeParser where
465+ happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (happyOut24 x))
466+
467+pReference tks = happySomeParser where
468+ happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (happyOut25 x))
469+
470+pListIdent tks = happySomeParser where
471+ happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (happyOut26 x))
472+
473+pValue tks = happySomeParser where
474+ happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (happyOut27 x))
475+
476+pListValue tks = happySomeParser where
477+ happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (happyOut28 x))
478+
479+pBoolean tks = happySomeParser where
480+ happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (happyOut29 x))
481+
482+happySeq = happyDontSeq
483+
484+
485+returnM :: a -> Err a
486+returnM = return
487+
488+thenM :: Err a -> (a -> Err b) -> Err b
489+thenM = (>>=)
490+
491+happyError :: [Token] -> Err a
492+happyError ts =
493+ Bad $ "syntax error at " ++ tokenPos ts ++
494+ case ts of
495+ [] -> []
496+ [Err _] -> " due to lexer error"
497+ _ -> " before " ++ unwords (map (id . prToken) (take 4 ts))
498+
499+myLexer = tokens
500+{-# LINE 1 "templates/GenericTemplate.hs" #-}
501+{-# LINE 1 "templates/GenericTemplate.hs" #-}
502+{-# LINE 1 "<built-in>" #-}
503+{-# LINE 1 "<command-line>" #-}
504+{-# LINE 1 "templates/GenericTemplate.hs" #-}
505+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
506+
507+{-# LINE 30 "templates/GenericTemplate.hs" #-}
508+
509+
510+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
511+
512+
513+
514+
515+
516+{-# LINE 51 "templates/GenericTemplate.hs" #-}
517+
518+{-# LINE 61 "templates/GenericTemplate.hs" #-}
519+
520+{-# LINE 70 "templates/GenericTemplate.hs" #-}
521+
522+infixr 9 `HappyStk`
523+data HappyStk a = HappyStk a (HappyStk a)
524+
525+-----------------------------------------------------------------------------
526+-- starting the parse
527+
528+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
529+
530+-----------------------------------------------------------------------------
531+-- Accepting the parse
532+
533+-- If the current token is 0#, it means we've just accepted a partial
534+-- parse (a %partial parser). We must ignore the saved token on the top of
535+-- the stack in this case.
536+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
537+ happyReturn1 ans
538+happyAccept j tk st sts (HappyStk ans _) =
539+ (happyTcHack j (happyTcHack st)) (happyReturn1 ans)
540+
541+-----------------------------------------------------------------------------
542+-- Arrays only: do the next action
543+
544+
545+
546+happyDoAction i tk st
547+ = {- nothing -}
548+
549+
550+ case action of
551+ 0# -> {- nothing -}
552+ happyFail i tk st
553+ -1# -> {- nothing -}
554+ happyAccept i tk st
555+ n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
556+
557+ (happyReduceArr Happy_Data_Array.! rule) i tk st
558+ where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
559+ n -> {- nothing -}
560+
561+
562+ happyShift new_state i tk st
563+ where (new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
564+ where (off) = indexShortOffAddr happyActOffsets st
565+ (off_i) = (off Happy_GHC_Exts.+# i)
566+ check = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
567+ then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==# i)
568+ else False
569+ (action)
570+ | check = indexShortOffAddr happyTable off_i
571+ | otherwise = indexShortOffAddr happyDefActions st
572+
573+{-# LINE 130 "templates/GenericTemplate.hs" #-}
574+
575+
576+indexShortOffAddr (HappyA# arr) off =
577+ Happy_GHC_Exts.narrow16Int# i
578+ where
579+ i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
580+ high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
581+ low = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
582+ off' = off Happy_GHC_Exts.*# 2#
583+
584+
585+
586+
587+
588+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
589+
590+
591+
592+
593+-----------------------------------------------------------------------------
594+-- HappyState data type (not arrays)
595+
596+{-# LINE 163 "templates/GenericTemplate.hs" #-}
597+
598+-----------------------------------------------------------------------------
599+-- Shifting a token
600+
601+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
602+ let (i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
603+-- trace "shifting the error token" $
604+ happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
605+
606+happyShift new_state i tk st sts stk =
607+ happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
608+
609+-- happyReduce is specialised for the common cases.
610+
611+happySpecReduce_0 i fn 0# tk st sts stk
612+ = happyFail 0# tk st sts stk
613+happySpecReduce_0 nt fn j tk st@((action)) sts stk
614+ = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
615+
616+happySpecReduce_1 i fn 0# tk st sts stk
617+ = happyFail 0# tk st sts stk
618+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
619+ = let r = fn v1 in
620+ happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
621+
622+happySpecReduce_2 i fn 0# tk st sts stk
623+ = happyFail 0# tk st sts stk
624+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
625+ = let r = fn v1 v2 in
626+ happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
627+
628+happySpecReduce_3 i fn 0# tk st sts stk
629+ = happyFail 0# tk st sts stk
630+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
631+ = let r = fn v1 v2 v3 in
632+ happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
633+
634+happyReduce k i fn 0# tk st sts stk
635+ = happyFail 0# tk st sts stk
636+happyReduce k nt fn j tk st sts stk
637+ = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
638+ sts1@((HappyCons (st1@(action)) (_))) ->
639+ let r = fn stk in -- it doesn't hurt to always seq here...
640+ happyDoSeq r (happyGoto nt j tk st1 sts1 r)
641+
642+happyMonadReduce k nt fn 0# tk st sts stk
643+ = happyFail 0# tk st sts stk
644+happyMonadReduce k nt fn j tk st sts stk =
645+ happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
646+ where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
647+ drop_stk = happyDropStk k stk
648+
649+happyMonad2Reduce k nt fn 0# tk st sts stk
650+ = happyFail 0# tk st sts stk
651+happyMonad2Reduce k nt fn j tk st sts stk =
652+ happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
653+ where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
654+ drop_stk = happyDropStk k stk
655+
656+ (off) = indexShortOffAddr happyGotoOffsets st1
657+ (off_i) = (off Happy_GHC_Exts.+# nt)
658+ (new_state) = indexShortOffAddr happyTable off_i
659+
660+
661+
662+
663+happyDrop 0# l = l
664+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
665+
666+happyDropStk 0# l = l
667+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
668+
669+-----------------------------------------------------------------------------
670+-- Moving to a new state after a reduction
671+
672+
673+happyGoto nt j tk st =
674+ {- nothing -}
675+ happyDoAction j tk new_state
676+ where (off) = indexShortOffAddr happyGotoOffsets st
677+ (off_i) = (off Happy_GHC_Exts.+# nt)
678+ (new_state) = indexShortOffAddr happyTable off_i
679+
680+
681+
682+
683+-----------------------------------------------------------------------------
684+-- Error recovery (0# is the error token)
685+
686+-- parse error if we are in recovery and we fail again
687+happyFail 0# tk old_st _ stk =
688+-- trace "failing" $
689+ happyError_ tk
690+
691+{- We don't need state discarding for our restricted implementation of
692+ "error". In fact, it can cause some bogus parses, so I've disabled it
693+ for now --SDM
694+
695+-- discard a state
696+happyFail 0# tk old_st (HappyCons ((action)) (sts))
697+ (saved_tok `HappyStk` _ `HappyStk` stk) =
698+-- trace ("discarding state, depth " ++ show (length stk)) $
699+ happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
700+-}
701+
702+-- Enter error recovery: generate an error token,
703+-- save the old token and carry on.
704+happyFail i tk (action) sts stk =
705+-- trace "entering error recovery" $
706+ happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
707+
708+-- Internal happy errors:
709+
710+notHappyAtAll :: a
711+notHappyAtAll = error "Internal Happy error\n"
712+
713+-----------------------------------------------------------------------------
714+-- Hack to get the typechecker to accept our action functions
715+
716+
717+happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
718+happyTcHack x y = y
719+{-# INLINE happyTcHack #-}
720+
721+
722+-----------------------------------------------------------------------------
723+-- Seq-ing. If the --strict flag is given, then Happy emits
724+-- happySeq = happyDoSeq
725+-- otherwise it emits
726+-- happySeq = happyDontSeq
727+
728+happyDoSeq, happyDontSeq :: a -> b -> b
729+happyDoSeq a b = a `seq` b
730+happyDontSeq a b = b
731+
732+-----------------------------------------------------------------------------
733+-- Don't inline any functions from the template. GHC has a nasty habit
734+-- of deciding to inline happyGoto everywhere, which increases the size of
735+-- the generated parser quite a bit.
736+
737+
738+{-# NOINLINE happyDoAction #-}
739+{-# NOINLINE happyTable #-}
740+{-# NOINLINE happyCheck #-}
741+{-# NOINLINE happyActOffsets #-}
742+{-# NOINLINE happyGotoOffsets #-}
743+{-# NOINLINE happyDefActions #-}
744+
745+{-# NOINLINE happyShift #-}
746+{-# NOINLINE happySpecReduce_0 #-}
747+{-# NOINLINE happySpecReduce_1 #-}
748+{-# NOINLINE happySpecReduce_2 #-}
749+{-# NOINLINE happySpecReduce_3 #-}
750+{-# NOINLINE happyReduce #-}
751+{-# NOINLINE happyMonadReduce #-}
752+{-# NOINLINE happyGoto #-}
753+{-# NOINLINE happyFail #-}
754+
755+-- end of Happy Template.