.\"
.Dd $Mdocdate$
.Dt mdocml 1
.Os
.\" SECTION
.Sh NAME
.Nm mdocml
.Nd mdoc macro compiler
.\" SECTION
.Sh SYNOPSIS
.Nm mdocml
.Op Fl f Ns Ar filter
.Op Fl v
.Op Fl W Ns Ar err...
.Op Ar infile
.\" SECTION
.Sh DESCRIPTION
The
.Nm
utility interfaces the
.Xr mdoc 3
library to scan, parse, validate and output mdoc-macro documents.
Arguments follow:
.Bl -tag -width "\-Werr... "
.\" ITEM
.It Fl f Ns Ar filter
Pipe the parsed syntax tree into an output filter. May be either
.Ar tree
for the parse tree or
.Ar term
for a terminal-encoded, formatted manual page.
.\" ITEM
.It Fl v
Print verbose parsing output.
.\" ITEM
.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 .
.\" ITEM
.It Ar infile
Read input from
.Ar infile ,
which may be
.Dq \-
for stdin.
.El
.\" PARAGRAPH
.Pp
Parsing and validation rules are drawn entirely from the
.Xr mdoc 7
and
.Xr mdoc.samples 7
manuals.
.\" PARAGRAPH
.Pp
By default,
.Nm
reads from stdin and only validates its input.
.\" PARAGRAPH
.Pp
.Ex -std mdocml
.\" PARAGRAPH
.Pp
.Nm
is
.Ud
.\" SECTION
.Sh EXAMPLES
To validate this manual page:
.\" PARAGRAPH
.Pp
.D1 % mdocml \-Wall,error mdocml.1
.\" SECTION
.Sh SEE ALSO
.Xr groff 1 ,
.Xr mdoc.samples 7 ,
.Xr mdoc 7 ,
.Xr mdoc 3
.\"
.Sh AUTHORS
The
.Nm
utility was written by
.An Kristaps Dzonsons Aq kristaps@kth.se .
.\" SECTION
.Sh CAVEATS
See
.Xr mdoc 3
for a list of bugs, caveats, and incomplete macros.