Modules
Yari ships as a set of independent Gradle modules under com.easyparsingapi. Every module is documented on its own page, with installation, quick-start, and the full public API.
Foundation
yari-parsec
Parser-combinator engine. Compose typed Parser<T> values to scan characters, tokenize, build expressions with precedence/associativity, track source locations, and recover from errors. The foundation of every parser module.
yari-core
Common interfaces and abstractions shared by every module: the AST contract (AstNode, AstUnit, AstToken), the source-location system, comment model, and base utilities. Depends on yari-parsec.
Parsers
yari-xml-parser
Fault-tolerant XML parser. Supports simple and complex tags, self-closing tags, comments, CDATA, DOCTYPE, prolog, and namespaces. Depends on yari-core.
yari-css-parseryari-css-parser
Fault-tolerant CSS parser. Supports complete stylesheets, at-rules, complex selectors (pseudo-classes, pseudo-elements, combinators, nth-patterns…) and property values. Depends on yari-core.
yari-javascript-parseryari-javascript-parser
Fault-tolerant JavaScript parser. Supports functions, classes, ES6 modules (import/export), async/await, destructuring, template literals, generators, and more. Depends on yari-core.
yari-html-parseryari-html-parser
HTML parser that extends the XML parser and additionally processes embedded JavaScript and CSS. Produces a unified AST where each sub-language is parsed into its own tree. Depends on yari-xml-parser, yari-css-parser, yari-javascript-parser.