UNPKG

hclang

Version:

Homoiconic C: Programming without a Language

47 lines 3.21 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 FrameArray extends FrameList { constructor(data, meta = NilContext) { super(data, meta); } string_open() { return FrameArray.BEGIN_ARRAY; } ; string_close() { return FrameArray.END_ARRAY; } ; in(contexts = [Frame.nil]) { const array = this.array_eval(contexts); return new FrameArray(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 = []; } } FrameArray.BEGIN_ARRAY = '['; FrameArray.END_ARRAY = ']'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUtYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnJhbWVzL2ZyYW1lLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxPQUFPLFVBQVcsU0FBUSxTQUFTO0lBSXZDLFlBQWEsSUFBa0IsRUFBRSxJQUFJLEdBQUcsVUFBVTtRQUNoRCxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ25CLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQTtJQUMvQixDQUFDO0lBQUEsQ0FBQztJQUVLLFlBQVk7UUFDakIsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFBO0lBQzdCLENBQUM7SUFBQSxDQUFDO0lBRUssRUFBRSxDQUFFLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFTSxLQUFLLENBQUUsUUFBZSxFQUFFLFNBQWdCO1FBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVNLEVBQUUsQ0FBRSxLQUFhO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFBO1lBQ2xELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUMvQjtRQUNELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN4QjtRQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3pCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7QUE3Q3NCLHNCQUFXLEdBQUcsR0FBRyxDQUFBO0FBQ2pCLG9CQUFTLEdBQUcsR0FBRyxDQUFBIn0=