rhombic
Version:
SQL parsing, lineage extraction and manipulation
67 lines • 1.66 kB
TypeScript
import { ISerializedGast } from "chevrotain";
export declare type Node = FlatNode | RuleNode | AlternationNode | NonTerminalNode | TerminalNode | RepetitionWithSeparatorNode | OptionNode | RepetitionNode | RepetitionMandatoryWithSeparator | {
type: "RepetitionMandatory";
};
interface RuleNode {
type: "Rule";
name: string;
orgText: string;
definition: Node[];
}
interface FlatNode {
type: "Flat";
definition: Node[];
}
interface AlternationNode {
type: "Alternation";
idx: number;
definition: FlatNode[];
}
interface NonTerminalNode {
type: "NonTerminal";
name: string;
idx: number;
}
interface TerminalNode {
type: "Terminal";
name: string;
label: string;
idx: number;
pattern: string;
}
interface RepetitionWithSeparatorNode {
type: "RepetitionWithSeparator";
idx: number;
separator: TerminalNode;
definition: Node[];
}
interface RepetitionMandatoryWithSeparator {
type: "RepetitionMandatoryWithSeparator";
idx: number;
separator: TerminalNode;
definition: NonTerminalNode[];
}
interface OptionNode {
type: "Option";
idx: number;
definition: Node[];
}
interface RepetitionNode {
type: "Repetition";
idx: number;
definition: Node[];
}
/**
* Script to generate context types from the grammar.
*
* Result:
* `src/Context.ts`
*/
export declare function generateContextTypes(grammar: ISerializedGast[]): void;
export declare function generateDefinitionTypes(definition: Node[], options?: {
indent?: number;
optional?: boolean;
keys?: string[];
}): string;
export {};
//# sourceMappingURL=generateContextTypes.d.ts.map