1 
    2   module Attributes where
    3 
    4   import Core_datatype
    5 
    6 
    7 
    8   sym_nm nm = ( Name_Style , Symbol_Name nm )
    9 
   10   dat_nm nmL = ( Name_Style , Datatype_Name nmL )
   11 
   12 
   13   sym_nmd = ( Symbol_Style , Named )
   14 
   15   sym_ind = ( Symbol_Style , Indexed )
   16 
   17 
   18   pr_typed = ( Pair_Style , Typed )
   19 
   20   pr_untyped = ( Pair_Style , Untyped )
   21 
   22 
   23   let_stl = ( Let_Style , Let )
   24 
   25 
   26   op_stl Pre = ( Opr_Style , Prefixed )
   27 
   28   op_stl BinL = ( Opr_Style , Linfixed )
   29 
   30   op_stl BinR = ( Opr_Style , Rinfixed )
   31 
   32   op_stl Post = ( Opr_Style , Postfixed )
   33 
   34 
   35   ifx_bdr = ( Binder_Style , Infix_Binder )
   36 
   37   pre_bdr = ( Binder_Style , Prefix_Binder )    
   38 
   39 
   40   rcrs_stl = ( Recurse_Style , Recursive )
   41 
   42 
   43   hyp_ndpnd = ( Hyp_Style , NonDependent )
   44 
   45 
   46 
   47   grp = ( Dec_Style , Grouped )
   48 
   49   un_grp = ( Dec_Style , Ungrouped )
   50 
   51   dec_tpe = ( Dec_Style , Typed )
   52 
   53   dec_untpe = ( Dec_Style , Untyped )
   54 
   55 
   56   def_par = ( Def_Style , Parameter )
   57 
   58   def_unpar = ( Def_Style , NonParameter )
   59 
   60 
   61 
   62 
   63 
   64   attval tag1 (( tag2 , val ) : attL )
   65         | tag1 == tag2 = val
   66         | otherwise    = attval tag1 attL
   67 
   68   attval _ [] = Symbol_Name ( Name "_" ) -- hack for temporary unparser -- should be Undefined