Livoa LogoLivoa

Front-End

Lexical Analyzer (Flex)

• Tokens, line/col

• Categories printed

Parser (Bison)

• Grammar, AST nodes

Middle-End

Semantic Analysis

• Hash-based Symbol Table

• Offsets: -8,-16,... (RBP)

IR: Three-Address Code (TAC)

• Temps t0..tn, Labels L0..

• condition lowering (IF/GOTO)

Code Generation

Simple ASM (teaching)

x86-64 AT&T printer

• Prologue/Epilogue

• cmpq, j*, printf

Shared Structures

• Symbol Table: chaining, {name, offset, value}

• AST Nodes: {left,right,token,num}

• Buffers: TAC[], labels, temporaries

Input/Output

Source: input.min

Outputs:

• Tokens, AST

• TAC, Simple ASM, x86 ASM

• Program Output

Interpreter

(exec AST → Program Output)

Tonny compiler

by fahmy

0
0 uses