# C.13 LaTeXML::Mouth

Tokenize the input.

## C.13.1 Description

A LaTeXML::Mouth (and subclasses) is responsible for tokenizing, ie. converting plain text and strings into LaTeXML::Tokens according to the current category codes (catcodes) stored in the LaTeXML::State.

LaTeXML::FileMouth

specializes LaTeXML::Mouth to tokenize from a file.

LaTeXML::StyleMouth

further specializes LaTeXML::FileMouth for processing style files, setting the catcode for @ and ignoring comments.

LaTeXML::PerlMouth

is not really a Mouth in the above sense, but is used to definitions from perl modules with exensions .ltxml and .latexml.

### Creating Mouths

\$mouth = LaTeXML::Mouth->new(\$string);

Creates a new Mouth reading from \$string.

\$mouth = LaTeXML::FileMouth->new(\$pathname);

Creates a new FileMouth to read from the given file.

\$mouth = LaTeXML::StyleMouth->new(\$pathname);

Creates a new StyleMouth to read from the given style file.

### Methods

Returns the next LaTeXML::Token from the source.

\$boole = \$mouth->hasMoreInput;

Returns whether there is more data to read.

\$string = \$mouth->getLocator(\$long);

Return a description of current position in the source, for reporting errors.

Reads tokens until one matches \$until (comparing the character, but not catcode). This is useful for the $\backslash$verb command.