Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/flo-bit/shapecraft. flo-bit.dev/shapecraft
Something went wrong. Try again.
1.4 kB · 61 lines
at commit da69385e
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162'use strict';
const types = require('../../tokenizer/types.cjs');
const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)const SOLIDUS = 0x002F; // U+002F SOLIDUS (/)const GREATERTHANSIGN = 0x003E; // U+003E GREATER-THAN SIGN (>)const TILDE = 0x007E; // U+007E TILDE (~)
const name = 'Combinator';const structure = { name: String};
// + | > | ~ | /deep/function parse() { const start = this.tokenStart; let name;
switch (this.tokenType) { case types.WhiteSpace: name = ' '; break;
case types.Delim: switch (this.charCodeAt(this.tokenStart)) { case GREATERTHANSIGN: case PLUSSIGN: case TILDE: this.next(); break;
case SOLIDUS: this.next(); this.eatIdent('deep'); this.eatDelim(SOLIDUS); break;
default: this.error('Combinator is expected'); }
name = this.substrToCursor(start); break; }
return { type: 'Combinator', loc: this.getLocation(start, this.tokenStart), name };}
function generate(node) { this.tokenize(node.name);}
exports.generate = generate;exports.name = name;exports.parse = parse;exports.structure = structure;