@composita/il
Version:
Composita language IL.
79 lines • 2.23 kB
JavaScript
export class DeclarationDescriptor {
constructor() {
this.init = new CodeBlockDescriptor();
this.variables = new Array();
this.procedures = new Array();
this.components = new Array();
}
}
export class ComponentDescriptor {
constructor(identifier) {
this.identifier = identifier;
this.offers = new Array();
this.requires = new Array();
this.declarations = new DeclarationDescriptor();
this.implementations = new Array();
this.begin = new CodeBlockDescriptor();
this.activity = new CodeBlockDescriptor();
this.finally = new CodeBlockDescriptor();
}
}
export class ProcedureDescriptor {
constructor(identifier, returnType) {
this.identifier = identifier;
this.returnType = returnType;
this.parameters = new Array();
this.declarations = new DeclarationDescriptor();
this.begin = new CodeBlockDescriptor();
}
}
export class ImplementationDescriptor {
constructor(reference) {
this.reference = reference;
this.declarations = new DeclarationDescriptor();
this.begin = new CodeBlockDescriptor();
}
}
export class VariableDescriptor {
constructor(identifier, type, mutable) {
this.identifier = identifier;
this.type = type;
this.mutable = mutable;
this.indexTypes = new Array();
}
}
export class CodeBlockDescriptor {
constructor() {
this.instructions = new Array();
}
}
export class InterfaceDescriptor {
constructor(identifier) {
this.identifier = identifier;
this.protocols = new Array();
}
}
export class ProtocolDescriptor {
constructor(type) {
this.type = type;
this.messages = new Array();
}
}
export class MessageDescriptor {
constructor(identifier) {
this.identifier = identifier;
this.data = new Array();
}
}
export class JumpDescriptor {
constructor(offset) {
this.offset = offset;
}
}
export class SystemCallDescriptor {
constructor(systemCall, ...args) {
this.systemCall = systemCall;
this.arguments = new Array(...args);
}
}
//# sourceMappingURL=descriptor.js.map