{"id":23885080,"url":"https://github.com/dracuxan/compiler","last_synced_at":"2026-04-19T06:41:14.848Z","repository":{"id":267663321,"uuid":"864381446","full_name":"dracuxan/Compiler","owner":"dracuxan","description":"Used Python, JS, Go to show a compiler implementation. I mean why not?","archived":false,"fork":false,"pushed_at":"2024-11-08T12:01:29.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-04T04:37:23.897Z","etag":null,"topics":["compile","compiler-design","cpp","go","golang","hacktoberfest","python","python3"],"latest_commit_sha":null,"homepage":"https://compiler.bynisarg.in/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dracuxan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-28T04:35:19.000Z","updated_at":"2024-12-11T17:27:21.000Z","dependencies_parsed_at":"2024-12-11T17:43:36.103Z","dependency_job_id":null,"html_url":"https://github.com/dracuxan/Compiler","commit_stats":null,"previous_names":["dracuxan/compiler"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracuxan%2FCompiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracuxan%2FCompiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracuxan%2FCompiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracuxan%2FCompiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dracuxan","download_url":"https://codeload.github.com/dracuxan/Compiler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240260407,"owners_count":19773328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compile","compiler-design","cpp","go","golang","hacktoberfest","python","python3"],"created_at":"2025-01-04T04:37:42.250Z","updated_at":"2026-04-19T06:41:14.805Z","avatar_url":"https://github.com/dracuxan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Language Compiler Project\nThis repository contains a compiler project implemented using multiple programming languages, primarily Go and Python. The project demonstrates various stages of compilation, including lexical analysis, semantic analysis, and intermediate code generation.\n\n## Key Components:\n- Lexical Analyzer (Go):\n    - Located in runner/src/go_lexer/main.go\n    - Tokenizes input code from sample.txt\n    - Generates a tokens.txt file with identified tokens\n\n- Semantic Analyzer (Python):\n  - Found in runner/src/python_parser/semantic_analyzer.py\n  - Performs semantic analysis on the tokens generated by the lexer\n  - Checks for variable declarations and basic type checking\n\n- Three-Address Code (3AC) Generator (Python):\n  - Implemented in runner/src/3ac/3ac.py\n  - Converts input expressions to Three-Address Code\n  - Generates quadruples, triples, and indirect triples\n\n- Backend API (Go):\n  - Main file: runner/main.go\n  - Provides RESTful endpoints to trigger lexical analysis, semantic analysis, and 3AC generation\n  - Handles file uploads for input code\n\n- Frontend (HTML/CSS/JavaScript)\n  - Located in the website directory\n  - Offers a user-friendly interface to interact with the compiler\n  - Allows file uploads and displays compiler outputs\n- Docker Integration:\n  - Includes Dockerfiles for both backend and frontend\n  - Docker Compose file for easy deployment and containerization\n\n## Features:\n- Multi-stage compilation process\n- Web-based interface for easy interaction\n- File upload capability for custom input code\n- Dockerized setup for consistent deployment across environments\n- Modular design allowing for easy extensions and modifications\n\n## Technology Stack:\n- Go (Lexer and Backend API)\n- Python (Semantic Analyzer and 3AC Generator)\n- HTML/CSS/JavaScript (Frontend)\n- Docker (Containerization)\n- Fiber (Go web framework)\n\n### This project serves as an excellent educational tool for understanding compiler design and implementation across different programming languages. It demonstrates the integration of various compiler components and provides a practical example of full-stack development in the context of compiler construction.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracuxan%2Fcompiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdracuxan%2Fcompiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracuxan%2Fcompiler/lists"}