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)]

21 lines (18 loc) 614 B
import type { TokenType } from '../lexer/Token.js' import { composeParslet, type ParsletFunction } from './Parslet.js' export function createNameParslet ({ allowedAdditionalTokens }: { allowedAdditionalTokens: TokenType[] }): ParsletFunction { return composeParslet({ name: 'nameParslet', accept: type => type === 'Identifier' || type === 'this' || type === 'new' || allowedAdditionalTokens.includes(type), parsePrefix: parser => { const { type, text } = parser.lexer.current parser.consume(type) return { type: 'JsdocTypeName', value: text } } }) }