nanoC Compiler

A full compiler for a subset of C, from lexical analysis to assembly generation.

Built a nanoC compiler using Flex, Bison, and C, implementing lexical analysis, parsing, symbol tables, three-address code generation, and core semantic translation. Extended the backend with activation-record handling and assembly generation from quads for functions, control flow, globals, and expressions.