angular-estree-parser
Version:
A parser that converts Angular source code into an ESTree-compatible form
58 lines (57 loc) • 1.71 kB
TypeScript
import { NGBaseNode, NGNode } from "../ast-transform/node-types.js";
//#region src/microsyntax/microsyntax-node-types.d.ts
/**
* 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 )?
*/
interface NGMicrosyntax extends NGBaseNode {
type: 'NGMicrosyntax';
body: (NGMicrosyntaxAs | NGMicrosyntaxExpression | NGMicrosyntaxKey | NGMicrosyntaxKeyedExpression | NGMicrosyntaxLet)[];
}
type NGMicrosyntaxNode = NGMicrosyntax | NGMicrosyntaxAs | NGMicrosyntaxExpression | NGMicrosyntaxKey | NGMicrosyntaxKeyedExpression | NGMicrosyntaxLet;
interface NGMicrosyntaxKey extends NGBaseNode {
type: 'NGMicrosyntaxKey';
name: string;
}
interface NGMicrosyntaxKeyedExpression extends NGBaseNode {
type: 'NGMicrosyntaxKeyedExpression';
key: NGMicrosyntaxKey;
expression: NGMicrosyntaxExpression;
}
interface NGMicrosyntaxExpression extends NGBaseNode {
type: 'NGMicrosyntaxExpression';
expression: NGNode;
alias: NGMicrosyntaxKey | null;
}
interface NGMicrosyntaxAs extends NGBaseNode {
type: 'NGMicrosyntaxAs';
key: NGMicrosyntaxKey;
alias: NGMicrosyntaxKey;
}
interface NGMicrosyntaxLet extends NGBaseNode {
type: 'NGMicrosyntaxLet';
key: NGMicrosyntaxKey;
value: NGMicrosyntaxKey | null;
}
//#endregion
export { NGMicrosyntax, NGMicrosyntaxAs, NGMicrosyntaxExpression, NGMicrosyntaxKey, NGMicrosyntaxKeyedExpression, NGMicrosyntaxLet, NGMicrosyntaxNode };