


     CCCCLLLLAAAASSSSHHHH((((1111))))                XXXXEEEENNNNIIIIXXXX 3333....0000 ((((LLLLooooccccaaaallll))))                CCCCLLLLAAAASSSSHHHH((((1111))))



     NNNNAAAAMMMMEEEE
          clash - find indistinguishable or long identifiers

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
          ccccllllaaaasssshhhh [ ----aaaaccccttttddddssssmmmm_n ] [ file ] ...

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
          _C_l_a_s_h finds identifiers that are not distinct in the first
          _n_u_m_S_i_g_C_h_a_r_s characters, or finds identifiers that are longer
          than _n_u_m_S_i_g_C_h_a_r_s characters.  It lexically analyzes its
          input, ignoring comments.  It does not parse, so it does not
          understand scoping.  Some restrictions that _c_l_a_s_h might help
          detect:

          -    Most Unix file systems consider file names (components
               of pathnames) identical if their first 14 characters
               are identical.

          -    Many Unix assemblers and the loaders consider only the
               first eight characters of an identifier.

          -    Many C compilers treat identifiers as identical if
               their first seven characters are the same (eight for
               identifiers that are not external).  In fact, the ANSI
               C standard will probably make it legal for conforming
               compilers to ignore all but the first six characters
               and to ignore case distinctions.

          -    Yacc terminals become C preprocessor symbols, and
               should therefore differ within the first eight
               characters.

          The argument list is a sequence of input file names and
          flags.  If no input file name is given, the standard input
          is processed.

          A flag operand starts with ``-'' and continues with any
          number of option names.  Flags d, l, s, and m toggle a
          corresponding switch.

          ----aaaa   the input is a PDP-11 assembler program

          ----cccc   the input is a C program (default)

          ----tttt   the input is some other language (``text'')

          ----dddd   dump on error

          ----llll   print long identifiers

          ----ssss   separate: process each file independantly




     Page 1                                          (printed 6/12/89)






     CCCCLLLLAAAASSSSHHHH((((1111))))                XXXXEEEENNNNIIIIXXXX 3333....0000 ((((LLLLooooccccaaaallll))))                CCCCLLLLAAAASSSSHHHH((((1111))))



          ----mmmm   monocase: case distinctions don't count

          ----_n   sets _n_u_m_S_i_g_C_h_a_r_s (default is 7)

     LLLLOOOOCCCCAAAALLLL IIIINNNNFFFFOOOO
          Written at the University of Toronto by D. Hugh Redelmeier.

     BBBBUUUUGGGGSSSS
          Understands neither libraries nor #include commands: all
          relevant files must be explicitly scanned.
          The maximum number of symbols and the maximum number of
          characters in them are fixed.











































     Page 2                                          (printed 6/12/89)



