UNPKG

hclang

Version:

Homoiconic C: Programming without a Language

24 lines 1.76 kB
import { Frame, FrameString } from '../frames.js'; import { getSyntax } from './syntax.js'; export class Lexer extends Frame { constructor(out) { const syntax = getSyntax(); syntax[Lexer.kOUT] = out; super(syntax); } lex_string(input) { const source = new FrameString(input); return this.lex(source); } lex(source) { return source.reduce(this); } fold(argument) { const out = this.get(Frame.kOUT); this.set(Frame.kOUT, out.call(argument)); } finish(_options) { return Frame.nil; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhlY3V0ZS9sZXhlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBSXZDLE1BQU0sT0FBTyxLQUFNLFNBQVEsS0FBSztJQUM5QixZQUFhLEdBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUE7UUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUE7UUFDeEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2YsQ0FBQztJQUVNLFVBQVUsQ0FBRSxLQUFhO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRU0sR0FBRyxDQUFFLE1BQW1CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRU0sSUFBSSxDQUFFLFFBQWU7UUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRU0sTUFBTSxDQUFFLFFBQW9CO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQTtJQUNsQixDQUFDO0NBQ0YifQ==