UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

51 lines 1.75 kB
import { next } from '../comment'; import { Thrower } from '../thrower'; import { ch, check, cut, cutStr } from '../utils'; import { isNumber, isText } from '../validators'; export function ParseReservedItem(tokens) { var _a = check({ tokens: tokens, rules: [ch(isNumber, { result: true }), ch('to'), ch(['max', isNumber], { result: true })], }), results = _a.results, len = _a.len, errors = _a.errors; if (errors.length === 0) { cut(tokens, len); var from = Number(results[0]); var to = results[1] === 'max' ? 0x1fffffff : Number(results[1]); return { from: from, to: to }; } else { var inner = check({ tokens: tokens, rules: [ch([isNumber, isText], { result: true })], }); if (inner.errors.length === 0) { cut(tokens, inner.len); var res = inner.results[0]; return isNumber(res) ? Number(res) : cutStr(res); } else { throw new Thrower('reserved', errors.concat(inner.errors)); } } } export function ParseReserved(tokens) { var reserved = []; while (tokens.length > 0) { switch (next(tokens)) { case 'reserved': case ',': cut(tokens, 1); reserved.push(ParseReservedItem(tokens)); break; case ';': cut(tokens, 1); return reserved; case undefined: continue; default: throw new Thrower('reserved', [["Unexpected token \"".concat(tokens[0], "\""), 0]]); } } throw new Thrower('reserved', [['no close tag ";"', 0]]); } //# sourceMappingURL=reserved.js.map