UNPKG

hclang

Version:

Homoiconic C: Programming without a Language

47 lines 3.22 kB
import { Frame } from './frame.js'; import { FrameList } from './frame-list.js'; import { FrameNote } from './frame-note.js'; import { NilContext } from './meta-frame.js'; export class FrameSchema extends FrameList { constructor(data, meta = NilContext) { super(data, meta); } string_open() { return FrameSchema.BEGIN_SCHEMA; } ; string_close() { return FrameSchema.END_SCHEMA; } ; in(contexts = [Frame.nil]) { const array = this.array_eval(contexts); return new FrameSchema(array); } apply(argument, parameter) { if (!argument.is.void) { this.data.push(argument); } return this; } at(index) { if (index >= this.size() || -index > this.size()) { const source = '[0..' + this.size() + '].' + index; return FrameNote.index(source); } if (index >= 0) { return this.data[index]; } const n = this.data.length; return this.data[n + index]; } length() { return this.data.length; } reset() { this.data = []; } } FrameSchema.BEGIN_SCHEMA = '<'; FrameSchema.END_SCHEMA = '>'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZyYW1lcy9mcmFtZS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1QyxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFJeEMsWUFBYSxJQUFrQixFQUFFLElBQUksR0FBRyxVQUFVO1FBQ2hELEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFBO0lBQ2pDLENBQUM7SUFBQSxDQUFDO0lBRUssWUFBWTtRQUNqQixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUE7SUFDL0IsQ0FBQztJQUFBLENBQUM7SUFFSyxFQUFFLENBQUUsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBRSxRQUFlLEVBQUUsU0FBZ0I7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQ3pCO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU0sRUFBRSxDQUFFLEtBQWE7UUFDdEIsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUE7WUFDbEQsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQy9CO1FBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3hCO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUNoQixDQUFDOztBQTdDc0Isd0JBQVksR0FBRyxHQUFHLENBQUE7QUFDbEIsc0JBQVUsR0FBRyxHQUFHLENBQUEifQ==