hclang
Version:
Homoiconic C: Programming without a Language
26 lines • 2.12 kB
JavaScript
import { FrameArg, FrameExpr, FrameLazy, FrameName, FrameParam, FrameString, FrameSymbol } from './frames.js';
import { tag } from './maml/tag.js';
const HTML_PREFIX = '<!DOCTYPE html>';
const MakeTag = (name, contents) => {
return new FrameExpr([
new FrameSymbol('tag'),
new FrameString(name),
contents
]);
};
const HeadBlock = new FrameLazy([
new FrameSymbol('tag'),
FrameParam.there(),
FrameArg.here()
]);
const head = MakeTag('head', new FrameExpr([
FrameArg.here(),
new FrameName('&&'),
HeadBlock
]));
const body = MakeTag('body', FrameArg.here());
export const maml = new FrameExpr([
new FrameString(HTML_PREFIX),
MakeTag('html', new FrameExpr([head, body]))
], { tag });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDcEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVuQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQTtBQUVyQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQVksRUFBRSxRQUFlLEVBQUUsRUFBRTtJQUNoRCxPQUFPLElBQUksU0FBUyxDQUFDO1FBQ25CLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztRQUN0QixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDckIsUUFBUTtLQUNULENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO0lBQzlCLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztJQUN0QixVQUFVLENBQUMsS0FBSyxFQUFFO0lBQ2xCLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Q0FDaEIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUNsQixNQUFNLEVBQ04sSUFBSSxTQUFTLENBQUM7SUFDWixRQUFRLENBQUMsSUFBSSxFQUFFO0lBQ2YsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ25CLFNBQVM7Q0FDVixDQUFDLENBQ0gsQ0FBQTtBQUNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDO0lBQ2hDLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQztJQUM1QixPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Q0FDN0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUEifQ==