NatA Lang is an educational language and compiler built in C to explore reader, scanner, and parser stages using formal models like REs and BNF.
-
Updated
May 25, 2025 - C
A grammar describes the syntax of a programming language, and might be defined in Backus-Naur form (BNF). A lexer performs lexical analysis, turning text into tokens. A parser takes tokens and builds a data structure like an abstract syntax tree (AST). The parser is concerned with context: does the sequence of tokens fit the grammar? A compiler is a combined lexer and parser, built for a specific grammar.
NatA Lang is an educational language and compiler built in C to explore reader, scanner, and parser stages using formal models like REs and BNF.
🐚 A fully functional mini shell written in C as part of the 42 school curriculum. Implements key shell features like built-in commands, pipelines, redirections (<, >, >>, <<), and environment variable expansion. Designed to mimic basic Bash behavior while exploring process creation, parsing, file descriptors, and terminal signal handling.
A bash-inspired shell interpreter with pipes, redirections, built-ins, logical operators, and signal handling. Built in C for 42 school.
A POSIX regex utilities library for C
A minimalist mimick of bash, rewritten from scratch with UNIX system libraries. Another project at school 42
A programming language made in pure C
Lightweight C syntax highlighter with colorful output for easier code reading.
This is a simple lexical analyzer for the programming language PL/0. The program reads in a source program written in PL/0, identifies tokens, and produces an output that includes the source program, the source program lexeme table, and the token list.
A set of libraries that allow you to manipulate files, linked lists, sorting algorithms and much more.