Advanced Compiler-Compiler Platform
Current State: C# console application with no user interface
Target State: Full-featured web UI with grammar editing, visualization, and debugging capabilities
Gap: Complete absence of user interface components
Priority: Critical for user adoption and accessibility
| Metric | Old Code | Current | Gap |
|---|---|---|---|
| UI Components | 19 React components | 0 | 100% missing |
| Visualization Tools | 3 advanced viewers | 0 | 100% missing |
| Editor Features | Full-featured editors | 0 | 100% missing |
| Export Capabilities | Multiple formats | 0 | 100% missing |
| Testing Coverage | Comprehensive | 0 | 100% missing |
old_code/src/components/App.tsxold_code/src/components/EditorPanel.tsxold_code/src/components/RailroadDiagramViewer.tsxold_code/src/components/VisualizationPanel.tsx┌─────────────────────────────────────┐
│ Frontend (React) │
├─────────────────────────────────────┤
│ ASP.NET Core API │
├─────────────────────────────────────┤
│ Existing C# Backend │
└─────────────────────────────────────┘
# In src/ directory
dotnet new webapi -n Minotaur.WebUI
cd Minotaur.WebUI
# Add React frontend with Vite
npm create vite@latest ClientApp -- --template react-ts
// Add to Minotaur.WebUI
[ApiController]
[Route("api/[controller]")]
public class GrammarController : ControllerBase
{
[HttpPost("parse")]
public async Task<IActionResult> ParseGrammar([FromBody] string grammarCode)
{
// Integrate with existing Minotaur.Core
return Ok();
}
}
// ClientApp/src/App.tsx
import { useState } from 'react';
function App() {
const [grammarCode, setGrammarCode] = useState('');
const [activeTab, setActiveTab] = useState('editor');
return (
<div className="app-container">
<header className="app-header">
<h1>Minotaur Grammar Tool</h1>
<nav>
{/* Navigation tabs */}
</nav>
</header>
<main>
{/* Tab content */}
</main>
</div>
);
}
| Old Code Location | New Location | Purpose |
|---|---|---|
old_code/src/components/App.tsx |
src/Minotaur.WebUI/ClientApp/src/App.tsx |
Main application |
old_code/src/components/EditorPanel.tsx |
src/Minotaur.WebUI/ClientApp/src/components/EditorPanel.tsx |
Grammar editor |
old_code/src/components/RailroadDiagramViewer.tsx |
src/Minotaur.WebUI/ClientApp/src/components/RailroadDiagramViewer.tsx |
Diagram viewer |
old_code/src/visualization/railroad/ |
src/Minotaur.WebUI/Services/RailroadService.cs |
Backend service |
Minotaur.Core interfacesMinotaur.Demo for usage patternsNext Action: Create src/Minotaur.WebUI project and begin Phase 1 implementation following the detailed roadmap.