blob: 10f8c137406f5ed1da868f7506f972e0b288cabf [file]
// @ts-check
import { Container } from "./container.js";
import { Operation } from "./operation.js";
import { Constant } from "./constant.js";
export class CallbackInterface extends Container {
/**
* @param {import("../tokeniser").Tokeniser} tokeniser
*/
static parse(tokeniser, callback, { partial = null } = {}) {
const tokens = { callback };
tokens.base = tokeniser.consume("interface");
if (!tokens.base) {
return;
}
return Container.parse(
tokeniser,
new CallbackInterface({ source: tokeniser.source, tokens }),
{
inheritable: !partial,
allowedMembers: [
[Constant.parse],
[Operation.parse, { regular: true }],
],
}
);
}
get type() {
return "callback interface";
}
}