@qualifyze/airtable-formulator
Version:
Airtable Formula Manipulator
15 lines (14 loc) • 953 B
TypeScript
import { EnclosedGroupNode, Node, TokenNode, Space, GroupType, ArgumentSeparator } from "./primitives";
import { ExpressionNode } from "./expression";
import { NodeReducer } from "./node-reducer";
declare type ArgumentListMember = ExpressionNode | ArgumentSeparator | Space;
export declare type ArgumentListGroup<G extends GroupType> = EnclosedGroupNode<G, ArgumentListMember, TokenNode<"openParenthesis">, TokenNode<"closeParenthesis">>;
export declare function isArgumentListGroup<T extends GroupType>(node: Node, type: T): node is ArgumentListGroup<T>;
export interface ArgumentListNode extends ArgumentListGroup<"argumentList"> {
readonly args: readonly ExpressionNode[];
readonly opener: Readonly<TokenNode<"openParenthesis">>;
readonly closer: Readonly<TokenNode<"closeParenthesis">>;
}
export declare function isArgumentListNode(node: Node): node is ArgumentListNode;
export declare const reduceArgumentLists: NodeReducer;
export {};