# Egaki
Welcome to the home page of Egaki, a programming language with a syntax written completely in emoji. 

## Overview
Egaki is currently under development. When completed, the language will be interpreted to Python at runtime. The language remains in early-stage development. Check out the roadmap below to see what features are available.

## Motivation
The impetus for this project is a desire to strengthen my understanding of Python, particularly its class nomenclature and built-in methods. 
While practicing code on my phone while commuting, I found it annoying to continuously be forced to switch between the standard keyboard, symbols selector, advanced symbols pane, and formatting tools, and wondered if emoji, if formatted correctly in a purpose-built mobile terminal emulator, could provide a mobile-first development experience. While this project will not be building said mobile terminal application, it will attempt to simulate the experience. 

## Follow Along!
While building this project, I'll be writing more in-depth about the experience, the project's design choices, and what this language might actually look like on mobile. A link to this writing will be provided here after the first post is published.

## Roadmap
_Note: This roadmap will evolve as the project grows_

### Must-Haves
- ⬜️ 👩‍💻 Simple shell-style command line
- ⬜ 🪙 Lexer
- ⬜ 🌳 Parser
- ⬜ 🔛 Interpreter
- ⬜ 🔢 Support for numbers
- ⬜ ➗ Support for numeric operations
- ⬜ 🟰 Support for numeric comparison
- ⬜ 🔡 Support for string types
- ⬜ ❌ Support for boolean types
- ⬜ 🆕 Support for primitive-type variable declaration and assignment
- ⬜ ❓ Support for if-else blocks
- ⬜ 🔂 Support for for-loops
- ⬜ 🔁 Support for while-loops
- ⬜ 🖨 Support for output to stdout

### Desired
- ⬜ 👨‍🔬 Advanced datatypes (e.g., a translation of Python's dict)
- ⬜ 👩‍🏫 Class creation
- ⬜️ 📄 Egaki script parsing and execution

