UNPKG

@runtimeverificationinc/tsk

Version:

TypeScript/JavaScript library for K Framework functionality

62 lines (61 loc) 2.27 kB
import { KInner } from "./inner"; import type { KAst } from "./kast"; import { KDefinition, KFlatModule, KProduction } from "./outer"; type SymbolTable = Record<string, (...args: string[]) => string>; export declare class PrettyPrinter { readonly definition: KDefinition; private readonly extraUnparsingModules; private readonly patchSymbolTable?; private readonly unalias; private readonly sortCollections; private cachedSymbolTable?; constructor(options: { definition: KDefinition; extraUnparsingModules?: KFlatModule[]; patchSymbolTable?: (symbolTable: SymbolTable) => void; unalias?: boolean; sortCollections?: boolean; }); get symbolTable(): SymbolTable; print(kast: KAst): string; private printKOuter; private printKInner; /** * Iterative version of printKInner that uses explicit stacks to avoid recursion */ printKInnerIteratively(kast: KInner): string; private printKSort; private printKLabel; private printKVariable; private printKToken; private printKApply; private printKAs; private printKRewrite; private printKSequence; private printKTerminal; private printKRegexTerminal; private printKNonTerminal; private printKProduction; private printKSyntaxSort; private printKSortSynonym; private printKSyntaxLexical; private printKSyntaxAssociativity; private printKSyntaxPriority; private printKBubble; private printKRule; private printKClaim; private printKContext; private printKAtt; private printKImport; private printKFlatModule; private printKRequire; private printKDefinition; private printKastBool; private appliedLabelStr; } export declare function buildSymbolTable(definition: KDefinition, extraModules?: KFlatModule[], opinionated?: boolean): SymbolTable; export declare function unparserForProduction(prod: KProduction): (...args: string[]) => string; export declare function indent(text: string, size?: number): string; export declare function paren(printer: (...args: string[]) => string): (...args: string[]) => string; export declare function assocWithUnit(assocJoin: string, unit: string): (...args: string[]) => string; export {};