An interactive web-based visualization tool for exploring and understanding Fortran Abstract Syntax Trees (AST) and Abstract Semantic Representation (ASR). This project brings modern web technologies to Fortran development, making it easier to understand and debug Fortran code structure.
This uses LFortran for generating the AST and ASR Json from fortran code.
- 🎨 Interactive Visualization: Dynamic, zoomable tree visualization of AST/ASR structures
- 🔄 Real-time Updates: Instantly see changes as you modify JSON input
- 🌐 WebAssembly Integration: Powered by LFortran's WASM compilation
- 🎯 User-friendly Interface: Clean, modern UI with dark mode support
- 📱 Responsive Design: Works seamlessly on desktop and mobile devices
Try it now: https://ubaidsk.github.io/fortran_ast_asr_json_visualizer/
This setups up node
on your local system. Follow this if you don't have node
already installed.
-
Install NVM (Node Version Manager)
# For macOS and Linux curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Add to your ~/.zshrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
-
Install Node.js
nvm install 16 nvm use 16
-
Verify Installation
node --version npm --version
-
Clone the repository
git clone https://github.com/ubaidsk/fortran_ast_asr_json_visualizer.git cd fortran_ast_asr_json_visualizer
-
Install dependencies
npm install
-
Start development server
npm start
-
Build for production
npm run build npm run deploy
- React 18: Modern UI development with hooks and functional components
- WebAssembly: LFortran compilation for AST/ASR processing
- TailwindCSS: Utility-first CSS framework
- DaisyUI: Tailwind CSS component library
- React Flow: Interactive node-based visualization
- Dagre: Graph layout and positioning algorithm
- Remix Icons: Modern icon library
- PostCSS: CSS processing and optimization
- Create React App: React application bootstrapping
- GitHub Pages: Deployment and hosting
We welcome all contributions, big or small!
For reporting bugs or suggestions, please open an issue in the GitHub repository.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the Fortran Community