How rzazademurad/venn-diagrams works
This is a browser-based propositional-logic compiler and arbitrary-N Venn diagram generator. A user enters a formula; the app analyzes it into a truth table, then sends construction work to a Web Worker. Geometry maps truth-table rows to regions, fills them, and returns a snapshot for interactive display and export. The graph preserves both geometry engines, rendering, sharing, and table exports. Some links are supported by the SOURCE INDEX or README rather than full excerpts; unsampled implementation details are not inferred.
Main entry points: analyze.ts Statement analysis · VennsConstruction.ts Venn construction · VennCanvas.tsx Diagram canvas · App.tsx Application
Components 26
Application interface
- Application
src/App.tsx - Formula input
src/components/FormulaBar.tsx - Diagram canvas
src/components/VennCanvas.tsx - Truth table panel
src/components/TruthTablePanel.tsx
Logic compilation
- Statement analysis
src/app/analyze.ts - Formula scanner
src/logic/Scanner.ts - AST parser
src/logic/Parser.ts - Tokens and operators
src/logic/tokens.ts - Logic errors
src/logic/exceptions.ts - Truth values
src/logic/TruthValue.ts - Truth table evaluator
src/logic/TruthTable.ts
Diagram geometry
- Construction coordinator
src/app/MainInterface.ts - Venn construction
src/geometry/VennsConstruction.ts - Smooth engine
src/geometry/SmoothConstruction.ts - Region mapper
src/geometry/Mapper.ts
Rendering and worker
- Worker controller
src/hooks/useVennWorker.ts - Geometry worker
src/worker/vennWorker.ts - Diagram snapshot
src/app/snapshot.ts - Diagram mirror
src/app/DiagramMirror.ts - Pixel raster
src/renderer/Raster.ts - Region filling
src/renderer/FloodFill.ts - Canvas renderer
src/renderer/CanvasRenderer.ts - Diagram overlays
src/renderer/overlays.ts
Sharing and exports
- Table and image exports
src/exports/exporters.ts - Share and persistence
src/app/share.ts
Other components
- User
Connections 31
- User → Formula input: enters formula
src/components/FormulaBar.tsx - Formula input → Application: updates input
src/App.tsx - Application → Statement analysis: analyzes formula
src/App.tsx - Statement analysis → Formula scanner: tokenizes
src/app/analyze.ts - Statement analysis → AST parser: parses tokens
src/app/analyze.ts - Statement analysis → Truth table evaluator: builds table
src/app/analyze.ts - Formula scanner → Tokens and operators: creates tokens
src/logic/Scanner.ts - AST parser → Tokens and operators: reads tokens
src/logic/Parser.ts - AST parser → Logic errors: raises syntax errors
src/logic/Parser.ts - Statement analysis → Logic errors: handles scan errors
src/app/analyze.ts - Truth table evaluator → Tokens and operators: evaluates operators
src/logic/TruthTable.ts - Truth table evaluator → Truth values: formats values
src/logic/TruthTable.ts - Application → Worker controller: requests construction
src/App.tsx - Worker controller → Geometry worker: dispatches jobs
src/hooks/useVennWorker.ts - Geometry worker → Construction coordinator: runs construction
src/worker/vennWorker.ts - Construction coordinator → Statement analysis: analyzes statement
src/app/MainInterface.ts - Construction coordinator → Venn construction: constructs and fills
src/app/MainInterface.ts - Venn construction → Smooth engine: selects smooth engine
src/geometry/VennsConstruction.ts - Venn construction → Pixel raster: draws into buffer
src/geometry/VennsConstruction.ts - Venn construction → Region filling: fills regions
src/geometry/VennsConstruction.ts - Venn construction → Region mapper: maps region seeds
src/geometry/VennsConstruction.ts - Geometry worker → Diagram snapshot: returns diagram state
src/worker/vennWorker.ts - Worker controller → Diagram mirror: updates completed state
src/hooks/useVennWorker.ts - Diagram mirror → Diagram snapshot: restores snapshot
src/app/DiagramMirror.ts - Diagram canvas → Canvas renderer: renders diagram
src/components/VennCanvas.tsx - Diagram canvas → Diagram overlays: renders overlays
src/components/VennCanvas.tsx - Diagram canvas → Diagram mirror: reads diagram state
src/components/VennCanvas.tsx - Truth table panel → Truth table evaluator: displays table
src/components/TruthTablePanel.tsx - Truth table panel → Table and image exports: exports table
src/components/TruthTablePanel.tsx - Diagram canvas → Table and image exports: exports diagram
src/components/VennCanvas.tsx - Application → Share and persistence: loads and saves state
src/App.tsx