@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
35 lines (34 loc) • 1.7 kB
TypeScript
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
import Joi from 'joi';
import { executeHappensBefore } from './happens-before-query-executor';
import type { SlicingCriterion } from '../../../slicing/criterion/parse';
import type { Ternary } from '../../../util/logic';
export interface HappensBeforeQuery extends BaseQueryFormat {
readonly type: 'happens-before';
readonly a: SlicingCriterion;
readonly b: SlicingCriterion;
}
export interface HappensBeforeQueryResult extends BaseQueryResult {
readonly results: Record<string, Ternary>;
}
/**
* How an answer of the {@link HappensBeforeQuery} is keyed: the two criteria it was asked about, so that both
* the executor writing an answer and anyone reading one spell the key the same way.
*/
export declare const HappensBeforeKey: {
readonly name: "HappensBeforeKey";
/** The key the answer for `a` and `b` is stored under. */
readonly of: (this: void, a: SlicingCriterion, b: SlicingCriterion) => string;
/** The two criteria a key was built from. */
readonly criteria: (this: void, key: string) => {
a: string;
b: string;
};
};
export declare const HappensBeforeQueryDefinition: {
readonly title: "Happens-Before Query";
readonly executor: typeof executeHappensBefore;
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
readonly schema: Joi.ObjectSchema<any>;
readonly flattenInvolvedNodes: () => never[];
};