Kipper Compiler
The Kipper Compiler is a TypeScript-based compiler that can compile Kipper code into TypeScript and generate the required overhead for the Kipper program. (In the future, native JavaScript should be supported as well. See #32 for more information.)
Kipper API
Kipper provides a TypeScript API for interacting with its compiler, which can be used to configure
and inspect the compilation of a program. This API is per default shipped with the
@kipper/core
package and the kipper-standalone.js
file.
Configuring the Kipper Compiler
Configuring KipperCompile.compile()
can be done using the
CompileConfig
interface, which defines all available parameters for a compilation.
Kipper Compiler Parameters
Parameter | Type |
Description |
---|---|---|
fileName | string |
The name of the file. Per default
anonymous-script .
|
target | KipperTarget |
The Kipper target instance, which defines the translation behaviour of the Kipper AST nodes.
Per default TypeScriptTarget .
|
optimisationOptions | OptimisationOptions |
The options for optimising the Kipper output. Defaults to an object with the following values:
More info down below in Kipper Optimiser Parameters. |
extendBuiltIns | Array<BuiltInFunction> |
Additional built-in functions that should be available in the Kipper program. This extends
builtIns and is per default empty. |
builtIns |
Array<BuiltInFunction> |
Standard built-in functions that should be available in the Kipper program.
If this is defined with new built-in functions that Kipper does not implement per default, the Kipper target class will have to be updated as well to implement the generation of these built-ins. Defaults to the function as listed in Built-in Functions. |
Kipper Optimiser Parameters
Parameter | Type | Description |
---|---|---|
optimiseInternals | boolean |
If set to true, the internal functions (functions generated by the Kipper compiler to provide
specific functionality) of the compiled code will be optimised using tree-shaking reducing the
size of the output. Defaults to true .
|
optimiseBuiltIns | boolean |
If set to true, the
built-in functions
of the compiled code will be optimised using tree-shaking reducing the size of the output.
Defaults to false .
|
Example Configuration
Kipper CLI Parameters
Parameters for the Kipper Compiler CLI in the console.
Flags | Description |
---|---|
-b, --[no-]optimise-builtins |
If set to true, the built-in functions of the compiled code will be optimised using tree-shaking reducing the size of the output. |
-e, --encoding=encoding |
The encoding that should be used to read the file (ascii,utf8,utf16le). Defaults to
utf8 .
|
-i, --[no-]optimise-internals | If set to true, the internal functions of the compiled code will be optimised using tree-shaking reducing the size of the output. |
-o, --output-dir=output-dir |
The build directory where the compiled files should be placed. If the path does not exist, it
will be created. Defaults to
build . |
-s, --string-code=string-code |
The content of a Kipper file that can be passed as a replacement for the 'file' parameter. |