Skip to content

Commit cd55469

Browse files
Improve readability
1 parent f7c90c4 commit cd55469

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
# MiniJava Compiler
22

33
## Table of Contents
4-
- [Introduction](#introduction)
4+
- [Overview](#overview)
5+
- [Compiler Components](#compiler-components)
56
- [Project Structure](#project-structure)
67
- [Usage](#usage)
78

8-
## Introduction
9+
## Overview
910
The MiniJava Compiler is a lightweight toolchain, comprised distinct modules-lexer, parser, semantic analyzer, and code generator, designed to compile a subset of MiniJava code into assembly code.
1011

11-
### Key Features
12-
#### Lexer: Tokenizing MiniJava Code
12+
## Compiler Components
13+
### Lexer: Tokenizing MiniJava Code
1314
The lexer converts the input MiniJava source code into a stream of tokens, each representing a fundamental syntactic unit such as keywords, identifiers, literals, and operators.
1415

15-
#### Grammar: Parsing with LL(1) Approach
16+
### Grammar: Parsing with LL(1) Approach
1617
The parser processes the token stream, constructing an Abstract Syntax Tree (AST) that represents the program's structure.
1718

18-
#### Semantic Analyzer: Enforcing Language Rules
19+
### Semantic Analyzer: Enforcing Language Rules
1920
The semantic analyzer traverses the AST to ensure the program adheres to semantic rules such as type compatibility, scoping, and declaration usage.
2021

21-
#### Code Generator: Efficient Assembly Translation
22+
### Code Generator: Efficient Assembly Translation
2223
The code generator translates the Abstract Syntax Tree (AST) into assembly instructions for execution, handling register allocation, control flow transition, optimized output, and runtime integration.
2324

2425
## Project Structure

0 commit comments

Comments
 (0)