1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
   10 
   11 
   12 
   13 
   14 
   15 
   16   module Config (
   17       maxchar, max_list_len, max_tuple_len, max_array_len, max_vnts,
   18       max_flds,
   19       line_len, one, apply_prec,
   20       constructor_name, type_name, val_name,
   21       and_name, div_name, drop_name, eq_name, int_to_char_name, less_name,
   22       minus_name, mult_name, negate_name, not_name,
   23       or_name, plus_name, print_name, take_name, assoc_name,
   24       array_type_name, bool_type_name, char_type_name, double_type_name,
   25       int_type_name, integer_type_name, float_type_name,
   26       list_separator, field_separator, empty_string, val_def, type_def,
   27       union,
   28       lbrack, rbrack, lbrace, rbrace, lsq, rsq, space, newline,
   29       data_name, mod_name, main_name, where_name, decl_sep, derive_eq,
   30       lambda_name, map_name, array_name,
   31       file_ext,
   32       version
   33       ) where
   34 
   35 
   36 
   37 
   38 
   39 
   40   maxchar ::  Int
   41   maxchar  =  127
   42 
   43 
   44 
   45 
   46 
   47 
   48 
   49 
   50   max_list_len ::  Int
   51   max_list_len  =  5
   52 
   53 
   54 
   55 
   56 
   57 
   58 
   59   max_tuple_len ::  Int
   60   max_tuple_len  =  4
   61 
   62 
   63 
   64 
   65 
   66 
   67 
   68   max_array_len ::  Int
   69   max_array_len  =  5
   70 
   71 
   72 
   73 
   74 
   75 
   76   max_vnts ::  Int
   77   max_vnts  =  6
   78 
   79 
   80 
   81 
   82 
   83 
   84   max_flds ::  Int
   85   max_flds  =  4
   86 
   87 
   88 
   89 
   90 
   91 
   92 
   93 
   94 
   95   line_len ::  Int
   96   line_len  =  70
   97 
   98 
   99 
  100 
  101 
  102 
  103 
  104 
  105 
  106 
  107 
  108 
  109   one :: Int
  110   one  =  1
  111 
  112 
  113 
  114 
  115 
  116 
  117 
  118   apply_prec :: Int
  119   apply_prec  =  10
  120 
  121 
  122 
  123 
  124 
  125 
  126 
  127 
  128 
  129 
  130 
  131 
  132   constructor_name, type_name, val_name :: String
  133   constructor_name  =  "Cons"
  134   type_name         =  "Type"
  135   val_name          =  "val"
  136 
  137 
  138 
  139 
  140 
  141 
  142 
  143   and_name, div_name, drop_name, eq_name, int_to_char_name, less_name,
  144       minus_name, mult_name, negate_name, not_name, or_name, plus_name,
  145       print_name, take_name, assoc_name :: String
  146   and_name          =  "&&"
  147   div_name          =  "div"
  148   drop_name         =  "drop"
  149   eq_name           =  "=="
  150   int_to_char_name  =  "chr"
  151   less_name         =  "<"
  152   minus_name        =  "-"
  153   mult_name         =  "*"
  154   negate_name       =  "negate"
  155   not_name          =  "not"
  156   or_name           =  "||"
  157   plus_name         =  "+"
  158   print_name        =  "print"
  159   take_name         =  "take"
  160   assoc_name        =  ":="
  161 
  162 
  163 
  164 
  165 
  166 
  167 
  168   array_type_name, bool_type_name, char_type_name, double_type_name,
  169       int_type_name, integer_type_name, float_type_name :: ShowS
  170   array_type_name    =  showString "Array"
  171   bool_type_name     =  showString "Bool"
  172   char_type_name     =  showString "Char"
  173   double_type_name   =  showString "Double"
  174   int_type_name      =  showString "Int"
  175   integer_type_name  =  showString "Integer"
  176   float_type_name    =  showString "Float"
  177 
  178 
  179 
  180 
  181   list_separator, field_separator, empty_string, val_def, type_def,
  182       union :: ShowS
  183   list_separator   =  showString ", "
  184   field_separator  =  showString " "
  185   empty_string     =  showString ""
  186   val_def          =  showString " = "
  187   type_def         =  showString " = "
  188   union            =  showString " | "
  189 
  190 
  191 
  192 
  193   lbrack, rbrack, lbrace, rbrace, lsq, rsq, space, newline :: ShowS
  194   lbrack   =  showChar '('
  195   rbrack   =  showChar ')'
  196   lbrace   =  showChar '{'
  197   rbrace   =  showChar '}'
  198   lsq      =  showChar '['
  199   rsq      =  showChar ']'
  200   space    =  showChar ' '
  201   newline  =  showChar '\n'
  202 
  203 
  204 
  205 
  206 
  207 
  208   data_name, mod_name, main_name, decl_sep, derive_eq, lambda_name,
  209       map_name, array_name :: ShowS
  210   data_name    =  showString "data"
  211   mod_name     =  showString "module"
  212   main_name    =  showString "main"
  213   where_name   =  showString "where"
  214   decl_sep     =  showString ";"
  215   derive_eq    =  showString "deriving (Eq)"
  216   lambda_name  =  showString "\\"
  217   map_name     =  showString "->"
  218   array_name   =  showString "array"
  219 
  220 
  221 
  222 
  223   file_ext :: String
  224   file_ext  =  ".hs"
  225 
  226 
  227 
  228 
  229 
  230 
  231 
  232   version :: ShowS
  233   version  =  showString "1.20 dated 92/07/20"
  234 
  235