Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/flo-bit/shapecraft. flo-bit.dev/shapecraft
Something went wrong. Try again.
974 B · 41 lines
JavaScript
at commit da69385e
123456789101112131415161718192021222324252627282930313233343536373839404142import { Function as FunctionToken, RightParenthesis} from '../../tokenizer/index.js';
export const name = 'Function';export const walkContext = 'function';export const structure = { name: String, children: [[]]};
// <function-token> <sequence> )export function parse(readSequence, recognizer) { const start = this.tokenStart; const name = this.consumeFunctionName(); const nameLowerCase = name.toLowerCase(); let children;
children = recognizer.hasOwnProperty(nameLowerCase) ? recognizer[nameLowerCase].call(this, recognizer) : readSequence.call(this, recognizer);
if (!this.eof) { this.eat(RightParenthesis); }
return { type: 'Function', loc: this.getLocation(start, this.tokenStart), name, children };}
export function generate(node) { this.token(FunctionToken, node.name + '('); this.children(node); this.token(RightParenthesis, ')');}