UNPKG

mermaid

Version:

Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.

122 lines (121 loc) 4.2 kB
import type { CstNode, IToken } from 'chevrotain'; import type { ArrowType, GraphStatement, RelationshipType, Span, UseCaseShape } from '../usecaseTypes.js'; import { type DraftBoundary, type DraftLabel, type DraftLocation, type DraftMetadata, type DraftMetadataProperty } from './usecaseModelBuilder.js'; type Ctx = Record<string, (CstNode | IToken)[]>; interface ParsedStereotype { value: string; span: Span; } interface ParsedClassSuffix { classes: string[]; spans: Span[]; } interface ParsedActorItem { id: string; label: DraftLabel; location: DraftLocation; generated: boolean; metadata?: DraftMetadata; stereotype?: ParsedStereotype; classes: string[]; classSpans: Span[]; } interface ParsedEntity extends ParsedActorItem { shape?: UseCaseShape; explicitDeclaration: boolean; } interface ParsedArrow { type: RelationshipType; arrowType: ArrowType; label?: DraftLabel; minlen: number; } interface ParsedRelationTail { explicitId?: string; explicitIdLocation?: DraftLocation; arrow: ParsedArrow; target: ParsedEntity; } declare const BaseVisitor: new (...args: any[]) => import("chevrotain").ICstVisitor<any, any>; declare class UsecaseVisitor extends BaseVisitor { private readonly builder; private source; private parentBoundary; private anonymousEdge; private anonymousNote; constructor(); build(cst: CstNode, source: string): void; start(ctx: Ctx): void; line(ctx: Ctx): GraphStatement; statement(ctx: Ctx): GraphStatement; lineEnd(_ctx: Ctx): undefined; blankLine(ctx: Ctx): GraphStatement; commentLine(ctx: Ctx): GraphStatement; accTitleStatement(ctx: Ctx): GraphStatement; accDescrStatement(ctx: Ctx): GraphStatement; actorStatement(ctx: Ctx): GraphStatement; actorItem(ctx: Ctx): ParsedActorItem; actorName(ctx: Ctx): ParsedActorItem; actorDeclarationOnly(ctx: Ctx): GraphStatement; entityStatement(ctx: Ctx): GraphStatement; entityName(ctx: Ctx): ParsedEntity; nodeLabel(ctx: Ctx): DraftLabel; useCaseMetadata(ctx: Ctx): DraftMetadata; relationTail(ctx: Ctx): ParsedRelationTail; arrow(ctx: Ctx): ParsedArrow; edgeLabel(ctx: Ctx): DraftLabel; semanticRelation(ctx: Ctx): ParsedArrow; metadata(ctx: Ctx): DraftMetadata; metadataProperty(ctx: Ctx): DraftMetadataProperty; metadataSeparator(_ctx: Ctx): undefined; systemBoundaryStatement(ctx: Ctx): GraphStatement; systemBoundaryName(ctx: Ctx): DraftBoundary; systemBoundaryContent(ctx: Ctx): GraphStatement[]; boundaryElement(ctx: Ctx): GraphStatement; metadataAssignmentStatement(ctx: Ctx): GraphStatement; metadataAssignmentTarget(ctx: Ctx): { id: string; location: DraftLocation; }; noteStatement(ctx: Ctx): GraphStatement; stereotype(ctx: Ctx): ParsedStereotype; classSuffix(ctx: Ctx): ParsedClassSuffix; jsonStatement(ctx: Ctx): GraphStatement; directionStatement(ctx: Ctx): GraphStatement; classDefStatement(ctx: Ctx): GraphStatement; classStatement(ctx: Ctx): GraphStatement; styleStatement(ctx: Ctx): GraphStatement; styles(ctx: Ctx): string[]; styleValue(ctx: Ctx): string; styleComponent(ctx: Ctx): string; forwardSolidOperator(ctx: Ctx): ParsedArrow; backwardSolidOperator(ctx: Ctx): ParsedArrow; markerlessSolidOperator(ctx: Ctx): ParsedArrow; forwardCircleOperator(_ctx: Ctx): ParsedArrow; backwardCircleOperator(ctx: Ctx): ParsedArrow; forwardCrossOperator(_ctx: Ctx): ParsedArrow; backwardCrossOperator(ctx: Ctx): ParsedArrow; private actorDraft; private entityDraft; private endpoint; private relationshipDraft; private actorOccurrence; private entityOccurrence; private wrap; private tokenLabel; private decodePlain; private contentSpan; private generateId; private solidMinlen; private nodeLocation; private ctxLocation; private tokenLocation; private nodeSpan; private tokenSpan; private nodes; private tokens; private firstNode; private allTokens; } export declare const usecaseVisitor: UsecaseVisitor; export {};