.\"
.Dd $Mdocdate$
.Dt mdocml 1
.Os
.\"
.Sh NAME
.Nm mdocml
.Nd mdoc macro compiler
.\"
.Sh SYNOPSIS
.Nm mdocml
.Op Fl v
.Op Fl W Ns Ar err...
.Op Ar infile
.\"
.Sh DESCRIPTION
The
.Nm
utility interfaces the
.Xr mdoc 3
library to validate and parse mdoc-macro documents. Arguments follow:
.Bl -tag -width "\-Werr... "
.It Fl W Ns Ar err...
Print warning messages. May be set to
.Fl W Ns Ar all
for all warnings,
.Ar compat
for groff/troff-compatibility warnings, or
.Ar syntax
for syntax warnings. If
.Fl W Ns Ar error
is specified, warnings are considered errors and cause utility
termination. Multiple
.Fl W
arguments may be comma-separated, such as
.Fl W Ns Ar error,all .
.It Fl v
Print verbose parsing output.
.It Ar infile
Read input from
.Ar infile ,
which may be
.Dq \-
for stdin.
.El
.Pp
Parsing and validation rules are drawn entirely from the
.Xr mdoc 7
and
.Xr mdoc.samples 7
manuals.
.Pp
By default,
.Nm
reads from stdin, writes messages to stdout, and writes errors and
warnings to stderr.
.Pp
.Ex -std mdocml
.\"
.Sh EXAMPLES
To validate this manual page:
.Pp
.D1 % mdocml \-Wall,error mdocml.1
.\"
.Sh SEE ALSO
.Xr groff 1 ,
.Xr mdoc.samples 7 ,
.Xr mdoc 7 ,
.Xr mdoc 3
.\" .Sh STANDARDS
.\" .Sh HISTORY
.Sh AUTHORS
The
.Nm
utility was written by
.An Kristaps Dzonsons Aq kristaps@kth.se .
.\"
.Sh CAVEATS
The most glaring short-coming of
.Nm
is that it doesn't yet support the
.Sq \&Xc
and
.Sq \&Xo
macros when used to extend the line arguments to
.Sq \&It ;
in effect, trampling the body section. We note that this is explicitly
discouraged in
.Xr mdoc.samples 7 ,
but in practice used quite often.
.\" .Sh BUGS