UNPKG

@bscotch/gml-parser

Version:

A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.

29 lines 2.35 kB
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