UNPKG

@informalsystems/quint

Version:

Core tool for the Quint specification language

132 lines (131 loc) 4.85 kB
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; import { ReadOnlyContext } from "./EffectParser"; import { UpdateOnlyContext } from "./EffectParser"; import { TemporalOnlyContext } from "./EffectParser"; import { ReadAndUpdateContext } from "./EffectParser"; import { ReadAndTemporalContext } from "./EffectParser"; import { PureContext } from "./EffectParser"; import { ConcreteEffectContext } from "./EffectParser"; import { ArrowEffectContext } from "./EffectParser"; import { VariableEffectContext } from "./EffectParser"; import { EffectContext } from "./EffectParser"; import { ReadContext } from "./EffectParser"; import { UpdateContext } from "./EffectParser"; import { TemporalContext } from "./EffectParser"; import { ConcreteContext } from "./EffectParser"; import { EntityContext } from "./EffectParser"; import { StateVarRefContext } from "./EffectParser"; /** * This interface defines a complete generic visitor for a parse tree produced * by `EffectParser`. * * @param <Result> The return type of the visit operation. Use `void` for * operations with no return type. */ export interface EffectVisitor<Result> extends ParseTreeVisitor<Result> { /** * Visit a parse tree produced by the `readOnly` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitReadOnly?: (ctx: ReadOnlyContext) => Result; /** * Visit a parse tree produced by the `updateOnly` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitUpdateOnly?: (ctx: UpdateOnlyContext) => Result; /** * Visit a parse tree produced by the `temporalOnly` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitTemporalOnly?: (ctx: TemporalOnlyContext) => Result; /** * Visit a parse tree produced by the `readAndUpdate` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitReadAndUpdate?: (ctx: ReadAndUpdateContext) => Result; /** * Visit a parse tree produced by the `readAndTemporal` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitReadAndTemporal?: (ctx: ReadAndTemporalContext) => Result; /** * Visit a parse tree produced by the `pure` * labeled alternative in `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitPure?: (ctx: PureContext) => Result; /** * Visit a parse tree produced by the `concreteEffect` * labeled alternative in `EffectParser.effect`. * @param ctx the parse tree * @return the visitor result */ visitConcreteEffect?: (ctx: ConcreteEffectContext) => Result; /** * Visit a parse tree produced by the `arrowEffect` * labeled alternative in `EffectParser.effect`. * @param ctx the parse tree * @return the visitor result */ visitArrowEffect?: (ctx: ArrowEffectContext) => Result; /** * Visit a parse tree produced by the `variableEffect` * labeled alternative in `EffectParser.effect`. * @param ctx the parse tree * @return the visitor result */ visitVariableEffect?: (ctx: VariableEffectContext) => Result; /** * Visit a parse tree produced by `EffectParser.effect`. * @param ctx the parse tree * @return the visitor result */ visitEffect?: (ctx: EffectContext) => Result; /** * Visit a parse tree produced by `EffectParser.read`. * @param ctx the parse tree * @return the visitor result */ visitRead?: (ctx: ReadContext) => Result; /** * Visit a parse tree produced by `EffectParser.update`. * @param ctx the parse tree * @return the visitor result */ visitUpdate?: (ctx: UpdateContext) => Result; /** * Visit a parse tree produced by `EffectParser.temporal`. * @param ctx the parse tree * @return the visitor result */ visitTemporal?: (ctx: TemporalContext) => Result; /** * Visit a parse tree produced by `EffectParser.concrete`. * @param ctx the parse tree * @return the visitor result */ visitConcrete?: (ctx: ConcreteContext) => Result; /** * Visit a parse tree produced by `EffectParser.entity`. * @param ctx the parse tree * @return the visitor result */ visitEntity?: (ctx: EntityContext) => Result; /** * Visit a parse tree produced by `EffectParser.stateVarRef`. * @param ctx the parse tree * @return the visitor result */ visitStateVarRef?: (ctx: StateVarRefContext) => Result; }