NAME
     lc - LIL compiler

SYNOPSIS
     lc [ -c ] [ -p ] [ -P ] file ...

DESCRIPTION
     Lc is the UNIX LIL compiler.   It  accepts  three  types  of
     arguments:

     Arguments whose names end with `.l'  are  taken  to  be  LIL
     source  programs; they are compiled, and each object program
     is left on the file whose name is that of  the  source  with
     `.o'  subsituted  for  `.l'.   The  `.o'  file  is  normally
     deleted, however, if a single LIL program  is  compiled  and
     loaded all at one go.

     The following flags are interpreted by lc.

     -c    Suppress the loading phase  of  the  compilation,  and
          force  an  object  file to be produced even if only one
          program is compiled.

     -p    if loading takes place, replace the  standard  startup
          routine  by  one  which automatically calls the monitor
          subroutine (III) at the start and arranges to write out
          a  mon.out  file  at normal termination of execution of
          the object program.  An execution profile can  then  be
          generated by use of prof (I).

     -P    Run only the string  preprocessor  on  the  named  LIL
          programs,  and  leave the output on corresponding files
          suffixed `.i'.

     Other arguments are taken to be object programs  or  perhaps
     libraries  of  routines.   These programs, together with the
     results of any compilations specified, are  loaded  (in  the
     order  given) to produce an executable program with the name
     a.out.

FILES
     file.l  input file
     file.o  object file
     a.out   loaded output
     /tmp/ctm?       temporary
     /lib/l[01]      compiler
     /lib/crt0.o     runtime startoff
     /lib/mcrt0.o    runtime startoff for monitoring.
     /lib/libc.a     builtin functions, etc.

SEE ALSO
     ``Programming in LIL: a tutorial,'' LIL Reference Manual,
     monitor (III), prof (I), cdb (I), ld (I).

DIAGNOSTICS
     The diagnostics produced by LIL itself are  intended  to  be
     self-explanatory.

BUGS
     Creates temporary symbols of the form `..octal', which might
     conflict with user defined symbols.