This project provides a reference implementation of the Audience Definition Language Specification (Audlang).
The Java/ANTLR implementation covers the full language feature set including comments.
<dependency>
<groupId>de.calamanari.adl</groupId>
<artifactId>audlang-java-core</artifactId>
<version>1.0.0</version>
</dependency>
There is a small set of further dependencies (e.g., SLF4j for logging, JUnit), please refer to this project's POM for details.
Classes in this project support:
- Expression Parsing
- Validation
- Optimization
- Mapping of attributes and values
- Formatting (including pretty-print)
💡 There is comprehensive logging available (level TRACE) to get an idea what the different features do with an expression.
While this project does not contain any target language converters, the core project provides a couple of foundation classes to simplify implementing custom converters (see Conversion).
Additionally, the core project provides utilities related to the Audlang Type Conventions (see Type Support).
The implementation is based on the Dual Layer Language Model (DLLM) that decouples the Audlang DSL with its user-centric feature set from the core language features required to execute expressions on any target system.
Converter implementations based on this core project can concentrate on the specific aspects of a target data store resp. its language.
Read next:
- Dual Layer Language Model (DLLM)
- Presentation Layer Expressions
- Core Expressions
- Optimization
- Conversion
- Type Support