UNPKG

angular-estree-parser

Version:

A parser that converts Angular source code into an ESTree-compatible form

88 lines (87 loc) 2.53 kB
import type * as babel from '@babel/types'; export interface LocationInformation { start: number; end: number; range: [number, number]; extra?: any; } export interface NGBaseNode extends LocationInformation { type: string; } export type NGNode = babel.Node | NGMicrosyntaxNode | NGEmptyExpression | NGPipeExpression | NGQuotedExpression | NGChainedExpression; export type CommentLine = babel.CommentLine & LocationInformation; export interface NGEmptyExpression extends NGBaseNode { type: 'NGEmptyExpression'; } export interface NGPipeExpression extends NGBaseNode { type: 'NGPipeExpression'; left: babel.Expression; right: babel.Identifier; arguments: babel.Expression[]; } export interface NGQuotedExpression extends NGBaseNode { type: 'NGQuotedExpression'; prefix: string; value: string; } export interface NGChainedExpression extends NGBaseNode { type: 'NGChainedExpression'; expressions: NGNode[]; } export interface RawNGSpan { start: number; end: number; } /** * Microsyntax :: * ( ( Exp | Let ) ( Sep? ( Let | As | KeyExp ) )* Sep? Key? )? * * Sep :: * ';' * ',' * * Key :: * StringLiteral * Identifier ( '-' Identifier )* * * Exp :: * NGNode ( 'as' Key )? * * KeyExp :: * Key ':'? Exp * * As :: * Key 'as' Key * * Let :: * 'let' Key ( '=' Key )? */ export interface NGMicrosyntax extends NGBaseNode { type: 'NGMicrosyntax'; body: (NGMicrosyntaxAs | NGMicrosyntaxExpression | NGMicrosyntaxKey | NGMicrosyntaxKeyedExpression | NGMicrosyntaxLet)[]; } export type NGMicrosyntaxNode = NGMicrosyntax | NGMicrosyntaxAs | NGMicrosyntaxExpression | NGMicrosyntaxKey | NGMicrosyntaxKeyedExpression | NGMicrosyntaxLet; export interface NGMicrosyntaxKey extends NGBaseNode { type: 'NGMicrosyntaxKey'; name: string; } export interface NGMicrosyntaxKeyedExpression extends NGBaseNode { type: 'NGMicrosyntaxKeyedExpression'; key: NGMicrosyntaxKey; expression: NGMicrosyntaxExpression; } export interface NGMicrosyntaxExpression extends NGBaseNode { type: 'NGMicrosyntaxExpression'; expression: NGNode; alias: NGMicrosyntaxKey | null; } export interface NGMicrosyntaxAs extends NGBaseNode { type: 'NGMicrosyntaxAs'; key: NGMicrosyntaxKey; alias: NGMicrosyntaxKey; } export interface NGMicrosyntaxLet extends NGBaseNode { type: 'NGMicrosyntaxLet'; key: NGMicrosyntaxKey; value: NGMicrosyntaxKey | null; }