UNPKG

jsdoc-type-pratt-parser

Version:

[![Npm Package](https://badgen.net/npm/v/jsdoc-type-pratt-parser)](https://www.npmjs.com/package/jsdoc-type-pratt-parser) [![Test Status](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/actions/workflows/test.yml/badge.svg?branch=main)]

25 lines (23 loc) 734 B
import { composeParslet } from './Parslet.js' import { Precedence } from '../Precedence.js' export const importParslet = composeParslet({ name: 'importParslet', accept: type => type === 'import', parsePrefix: parser => { parser.consume('import') if (!parser.consume('(')) { throw new Error('Missing parenthesis after import keyword') } const path = parser.parseType(Precedence.PREFIX) if (path.type !== 'JsdocTypeStringValue') { throw new Error('Only string values are allowed as paths for imports') } if (!parser.consume(')')) { throw new Error('Missing closing parenthesis after import keyword') } return { type: 'JsdocTypeImport', element: path } } })