Package org.apache.sling.scripting.sightly.compiler

## Class SightlyCompiler

- java.lang.Object
- - org.apache.sling.scripting.sightly.compiler.SightlyCompiler

    public final class SightlyCompiler
    extends Object

The `SightlyCompiler` interprets a HTL script and transforms it internally into a `CommandStream`. The `CommandStream` can be fed to a `BackendCompiler` for transforming the stream into executable code, either by transpiling the commands to a JVM supported language or by directly executing them.

### Constructor Summary

Constructors
`SightlyCompiler()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`CompilationResult` `compile​(CompilationUnit compilationUnit)` Compiles a `CompilationUnit`.
`CompilationResult` `compile​(CompilationUnit compilationUnit, BackendCompiler backendCompiler)` Compiles a `CompilationUnit`, passing the processed `CommandStream` to the provided `BackendCompiler`.
`static SightlyCompiler` `withKnownExpressionOptions​(@NotNull Set<String> options)` Returns an instance of the `SightlyCompiler` with the provided `options` added to the list of known expression options.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SightlyCompiler

    public SightlyCompiler()

### Method Detail

#### withKnownExpressionOptions

    public static SightlyCompiler withKnownExpressionOptions​(@NotNull
                                                             @NotNull Set<String> options)

Returns an instance of the `SightlyCompiler` with the provided `options` added to the list of known expression options.

The compiler builds internally a set of allowed options from the options permitted by the expressions or plugins. As soon as an expression contains an unknown option the compiler logs a warning. Since the compiler works with dynamically registered `RuntimeCall`s, some of them can work with additional expression options, not known to the compiler.

NOTE: The `data-sly-template, data-sly-call, data-sly-use` plugins allow arbitrary options which define parameters and do not generate warnings.

Parameters:
  `options` - the options to add to the compiler's set of known expression options
Returns:
  an instance of the compiler

#### compile

    public CompilationResult compile​(CompilationUnit compilationUnit)

Compiles a `CompilationUnit`.

Parameters:
  `compilationUnit` - a compilation unit
Returns:
  the compilation result

#### compile

    public CompilationResult compile​(CompilationUnit compilationUnit,
                                     BackendCompiler backendCompiler)

Compiles a `CompilationUnit`, passing the processed `CommandStream` to the provided `BackendCompiler`.

Parameters:
  `compilationUnit` - a compilation unit
  `backendCompiler` - the backend compiler
Returns:
  the compilation result