CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
char.cjs104 linesDownload Raw Back to lib
1'use strict';2 3Object.defineProperty(exports, '__esModule', { value: true });4 5var core = require('./core.cjs');6var util = require('./util.cjs');7 8function char(char) {9    return core.token((c) => (c === char) ? c : undefined);10}11function oneOf(chars) {12    return core.token((c) => (chars.includes(c)) ? c : undefined);13}14function noneOf(chars) {15    return core.token((c) => (chars.includes(c)) ? undefined : c);16}17function charTest(regex) {18    return core.token((c) => regex.test(c) ? c : undefined);19}20function str(str) {21    const len = str.length;22    return (data, i) => {23        const tokensNumber = core.remainingTokensNumber(data, i);24        let substr = '';25        let j = 0;26        while (j < tokensNumber && substr.length < len) {27            substr += data.tokens[i + j];28            j++;29        }30        return (substr === str)31            ? {32                matched: true,33                position: i + j,34                value: str35            }36            : { matched: false };37    };38}39function concat(...ps) {40    return core.map(core.flatten(...ps), (vs) => vs.join(''));41}42function parserPosition(data, i, contextTokens = 11) {43    const len = data.tokens.length;44    const lowIndex = util.clamp(0, i - contextTokens, len - contextTokens);45    const highIndex = util.clamp(contextTokens, i + 1 + contextTokens, len);46    const tokensSlice = data.tokens.slice(lowIndex, highIndex);47    if (tokensSlice.some((t) => t.length !== 1)) {48        return core.parserPosition(data, i, (t) => t);49    }50    let line = '';51    let offset = 0;52    let markerLen = 1;53    if (i < 0) {54        line += ' ';55    }56    if (0 < lowIndex) {57        line += '...';58    }59    for (let j = 0; j < tokensSlice.length; j++) {60        const token = util.escapeWhitespace(tokensSlice[j]);61        if (lowIndex + j === i) {62            offset = line.length;63            markerLen = token.length;64        }65        line += token;66    }67    if (highIndex < len) {68        line += '...';69    }70    if (len <= i) {71        offset = line.length;72    }73    return `${''.padEnd(offset)}${i}\n${line}\n${''.padEnd(offset)}${'^'.repeat(markerLen)}`;74}75function parse(parser, str, options) {76    const data = { tokens: [...str], options: options };77    const result = parser(data, 0);78    if (!result.matched) {79        throw new Error('No match');80    }81    if (result.position < data.tokens.length) {82        throw new Error(`Partial match. Parsing stopped at:\n${parserPosition(data, result.position)}`);83    }84    return result.value;85}86function tryParse(parser, str, options) {87    return core.tryParse(parser, [...str], options);88}89function match(matcher, str, options) {90    return core.match(matcher, [...str], options);91}92 93exports.anyOf = oneOf;94exports.char = char;95exports.charTest = charTest;96exports.concat = concat;97exports.match = match;98exports.noneOf = noneOf;99exports.oneOf = oneOf;100exports.parse = parse;101exports.parserPosition = parserPosition;102exports.str = str;103exports.tryParse = tryParse;104 
basant307/AI_Governance_Project · CoolFace