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 simple to use, leak free tokenization replacement for strtok and strsep
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
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.
french tokenizer for postgresql text search / spacy
C89, single header, nostdlib arithmetic lexer
Turing complete programming language and interpreter
POSIX shell script to x86_64 ELF compiler
Libraries and programs written in C