@rightcapital/phpdoc-parser
Version:
TypeScript version of PHPDoc parser with support for intersection types and generics
42 lines (41 loc) • 1.66 kB
TypeScript
import type { BaseNode } from '../ast/base-node';
import { GenericTypeNode } from '../ast/type/generic-type-node';
import { IdentifierTypeNode } from '../ast/type/identifier-type-node';
import type { TypeNode } from '../ast/type/type-node';
import type { ConstExprParser } from './const-expr-parser';
import type { TokenIterator } from './token-iterator';
export declare class TypeParser {
private constExprParser;
private quoteAwareConstExprString;
private useLinesAttributes;
private useIndexAttributes;
constructor(constExprParser?: ConstExprParser | null, quoteAwareConstExprString?: boolean, usedAttributes?: {
lines?: boolean;
indexes?: boolean;
});
parse(tokens: TokenIterator): TypeNode;
enrichWithAttributes<T extends BaseNode>(tokens: TokenIterator, type: T, startLine: number, startIndex: number): T;
private subParse;
private parseAtomic;
private parseUnion;
private subParseUnion;
private parseIntersection;
private subParseIntersection;
private parseConditional;
private parseConditionalForParameter;
private parseNullable;
isHtml(tokens: TokenIterator): boolean;
parseGeneric(tokens: TokenIterator, baseType: IdentifierTypeNode): GenericTypeNode;
private parseGenericTypeArgument;
private parseCallable;
private parseCallableParameter;
private parseCallableReturnType;
private tryParseCallable;
private tryParseArrayOrOffsetAccess;
private parseArrayShape;
private parseArrayShapeItem;
private parseArrayShapeKey;
private parseObjectShape;
private parseObjectShapeItem;
private parseObjectShapeKey;
}