@bscotch/gml-parser
Version:
A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.
29 lines • 2.35 kB
TypeScript
import type { CstNode, IToken } from 'chevrotain';
import type { AccessorSuffixesCstChildren, AccessorSuffixesCstNode, AssignmentCstChildren, AssignmentCstNode, AssignmentRightHandSideCstChildren, AssignmentRightHandSideCstNode, FunctionArgumentCstNode, FunctionArgumentsCstNode, IdentifierCstChildren, IdentifierCstNode, MultilineDoubleStringLiteralCstChildren, MultilineSingleStringLiteralCstChildren, StringLiteralCstChildren } from '../gml-cst.js';
/** Right-hand side from the CST, normalized via `rhsFrom` */
export type Rhs = AssignmentCstNode[] | AssignmentCstNode | AssignmentRightHandSideCstNode[] | AssignmentRightHandSideCstNode | AssignmentRightHandSideCstChildren | AssignmentCstChildren | undefined;
export declare function rhsFrom(item: Rhs): AssignmentRightHandSideCstChildren | undefined;
export declare function functionFromRhs(rhs: Rhs): import("../gml-cst.js").FunctionExpressionCstChildren | undefined;
export declare function structLiteralFromRhs(rhs: Rhs): import("../gml-cst.js").StructLiteralCstChildren | undefined;
export declare function arrayLiteralFromRhs(rhs: Rhs): import("../gml-cst.js").ArrayLiteralCstChildren | undefined;
export type IdentifierSource = IdentifierCstChildren | IdentifierCstNode | IdentifierCstNode[] | {
identifier: IdentifierCstNode[];
} | {
children: {
identifier: IdentifierCstNode[];
};
};
type AccessorSuffixName = keyof AccessorSuffixesCstChildren;
export type SortedAccessorSuffix<T extends AccessorSuffixName = AccessorSuffixName> = Required<AccessorSuffixesCstChildren>[T][0];
export declare function isEmpty(obj: {}): boolean;
export declare function sortedFunctionCallParts(node: FunctionArgumentsCstNode): (IToken | FunctionArgumentCstNode)[];
export declare function stringLiteralAsString(children: StringLiteralCstChildren | MultilineSingleStringLiteralCstChildren | MultilineDoubleStringLiteralCstChildren): string;
export declare function sortChildren(records: Record<string, (IToken | CstNode)[]>): (IToken | CstNode)[];
export declare function sortedAccessorSuffixes(suffixNodes: AccessorSuffixesCstNode[] | undefined): SortedAccessorSuffix[];
export declare function identifierFrom(nodes: IdentifierSource): {
token: IToken;
type: keyof IdentifierCstChildren;
name: string;
} | undefined;
export {};
//# sourceMappingURL=parser.utility.d.ts.map