Custom Language & Interpreter
Designed and implemented a custom programming language called Joshua Lang and its full interpreter pipeline in Python. The pipeline consists of three stages: a regex-based Scanner (lexer) that tokenizes source code and catches syntax errors early; a recursive descent Parser that processes tokens into an Abstract Syntax Tree with 20+ node types representing operations, expressions, and constructs; and a Visitor-pattern Checker (semantic analyzer) that traverses the AST, enforces type rules, resolves scoped symbol tables for nested variable lookup, and detects type errors before execution. The language supports three data types (int, bool, string), local and global variable declarations, conditionals, while loops, arithmetic expressions with full operator precedence, and built-in functions including print, input, strlen, and strcpy. If the Checker finds no errors, it transpiles the AST into valid Python code for execution.