public final class WyilFileWriter extends Object
Responsible for writing a WyilFile to an output stream in binary form. The binary format is structured to given maximum flexibility and to avoid built-in limitations in terms of e.g. maximum sizes, etc.
The primitive component of a WyilFile is a block. Each block has a kind, a given and then the payload. Blocks which are not recognised can be ignored by skipping over their payload. Blocks are always byte aligned, but their contents may not be.
A binary Wyil file begins with a header and a resource pool stratified into sections containing the string constants, general constants, types and more. Following the header are zero or more module blocks. Additional top-level block kinds (e.g. for licenses) may be specified in the future. Each module block consists of zero or more declaration blocks, which include method and function declarations, type declarations and constant declarations.
| Modifier and Type | Field and Description |
|---|---|
static int |
BLOCK_Constant |
static int |
BLOCK_Documentation |
static int |
BLOCK_Function |
static int |
BLOCK_Header |
static int |
BLOCK_License |
static int |
BLOCK_Method |
static int |
BLOCK_Module |
static int |
BLOCK_Property |
static int |
BLOCK_Type |
static int |
CONSTANT_Array |
static int |
CONSTANT_Byte |
static int |
CONSTANT_False |
static int |
CONSTANT_Function |
static int |
CONSTANT_Int |
static int |
CONSTANT_Method |
static int |
CONSTANT_Null |
static int |
CONSTANT_Record |
static int |
CONSTANT_True |
static int |
CONSTANT_Type |
static int |
MODIFIER_Export |
static int |
MODIFIER_MANGLE_MASK |
static int |
MODIFIER_Native |
static int |
MODIFIER_Private |
static int |
MODIFIER_PROTECTION_MASK |
static int |
MODIFIER_Public |
static int |
TYPE_Any |
static int |
TYPE_Array |
static int |
TYPE_Bool |
static int |
TYPE_Byte |
static int |
TYPE_Function |
static int |
TYPE_Int |
static int |
TYPE_Intersection |
static int |
TYPE_Method |
static int |
TYPE_Negation |
static int |
TYPE_Nominal |
static int |
TYPE_Null |
static int |
TYPE_Property |
static int |
TYPE_Record |
static int |
TYPE_Reference |
static int |
TYPE_Type |
static int |
TYPE_Union |
static int |
TYPE_Void |
| Constructor and Description |
|---|
WyilFileWriter(OutputStream output) |
public static final int BLOCK_Header
public static final int BLOCK_Module
public static final int BLOCK_Documentation
public static final int BLOCK_License
public static final int BLOCK_Type
public static final int BLOCK_Constant
public static final int BLOCK_Function
public static final int BLOCK_Method
public static final int BLOCK_Property
public static final int CONSTANT_Null
public static final int CONSTANT_True
public static final int CONSTANT_False
public static final int CONSTANT_Byte
public static final int CONSTANT_Int
public static final int CONSTANT_Array
public static final int CONSTANT_Record
public static final int CONSTANT_Type
public static final int CONSTANT_Function
public static final int CONSTANT_Method
public static final int TYPE_Any
public static final int TYPE_Void
public static final int TYPE_Null
public static final int TYPE_Bool
public static final int TYPE_Byte
public static final int TYPE_Int
public static final int TYPE_Type
public static final int TYPE_Nominal
public static final int TYPE_Reference
public static final int TYPE_Array
public static final int TYPE_Record
public static final int TYPE_Function
public static final int TYPE_Method
public static final int TYPE_Union
public static final int TYPE_Intersection
public static final int TYPE_Negation
public static final int TYPE_Property
public static final int MODIFIER_PROTECTION_MASK
public static final int MODIFIER_Private
public static final int MODIFIER_Public
public static final int MODIFIER_MANGLE_MASK
public static final int MODIFIER_Native
public static final int MODIFIER_Export
public WyilFileWriter(OutputStream output)
public void close()
throws IOException
IOExceptionpublic void write(WyilFile module) throws IOException
IOExceptionCopyright © 2017. All rights reserved.