hypnotic 0.1.2
A programming language that doesn't scream at you. Phonetic shortcuts, forgiving syntax, zero indentation fascism.
License: MIT
Requires Python: >=3.8
Keywords: programming-language, interpreter, esoteric, fun

# hypnotIC

[![CI](https://github.com/zachseven/hypnotic/actions/workflows/ci.yml/badge.svg)](https://github.com/zachseven/hypnotic/actions/workflows/ci.yml)
[![PyPI version](https://badge.fury.io/py/hypnotic.svg)](https://badge.fury.io/py/hypnotic)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**I see what you meant.**

A programming language that doesn't scream at you. It understands.

```
* "Hello, world!"
```

## Why hypnotIC?

Because code should understand *you*, not the other way around.

- **No indentation fascism** - Use `IC` to close blocks, not whitespace
- **Phonetic shortcuts** - Type how you think (`4` = for, `wyl` = while, `?` = if)
- **Forgiving syntax** - Warnings, not errors when possible
- **Fun** - Programming should be `fun`, not frustrating

## Installation

```bash
pip install hypnotic
```

Or just grab `hypnotic.py` and run it directly:

```bash
python hypnotic.py
```

## Quick Start

### Hello World
```
* "Hello, world!"
```

### Variables
```
name = "Zach"
age = 25
active = t
```

### Conditionals
```
? age > 21
    * "welcome"
file age > 18
    * "almost"
Ls
    * "nope"
IC
```

### Loops
```
4 i n 10
    * i
IC
```

### Functions
```
fun greet name
    * "Hello, " + name
IC

greet "world"
```

### FizzBuzz (because you were wondering)
```
4 i n 100
    ? i mold 15 iz 0
        * "FizzBuzz"
    file i mold 3 iz 0
        * "Fizz"
    file i mold 5 iz 0
        * "Buzz"
    Ls
        * i
    IC
IC
```

## The Dictionary

| Normal | hypnotIC | Notes |
|--------|----------|-------|
| print | `*` | splat it out |
| input | `PV` | 5th grade humor |
| if | `?` | questioning |
| else | `Ls` | sounds like "else" |
| elif | `file` | elif backwards |
| for | `4` | sounds like "for" |
| in | `n` | sounds like "in" |
| while | `wyl` | |
| function | `fun` | it should be |
| return | `re:` | like email reply |
| true | `t` | |
| false | `f` | |
| and | `&` | |
| or | `or` / `RHO` | normal / nerdy |
| not | `-` | negation |
| == | `iz` | sounds like "is" |
| != | `aint` | ain't |
| break | `x` | cross it out |
| continue | `-->` | keep going |
| null | `N^0` | nothing to the zero |
| comment | `fuck` | ignore this |
| end block | `IC` | "I see" |
| array | `rayz` | sounds like "arrays" |
| append | `up` | push up |
| pop | `!!!` | explosive |
| length | `"` | inches |
| lambda | `\` | quick function |
| try | `hard` | try hard |
| catch | `C` | catch |
| import | `->` | pull it in |
| self | `ego` | the object's ego |

## Running hypnotIC

```bash
# Interactive REPL
hypnotic

# Run a file
hypnotic myprogram.ic

# One-liner
hypnotic -c "* \"Hello!\""

# Debug mode (see tokens and AST)
hypnotic -d myprogram.ic
```

## File Extension

`.ic` - because IC what you did there.

## Examples

See the `examples/` directory for more programs:
- `showcase.ic` - Tour of language features
- `hello.ic` - The classic

## Philosophy

1. **IC sees your intent** - The parser tries to understand what you meant
2. **No indentation fascism** - Use `IC` to close blocks
3. **Phonetic shortcuts** - Type how you think
4. **Forgiving** - Warnings, not errors when possible
5. **Fun** - Programming should be `fun`, not frustrating

## Contributing

Found a bug? Want to add a feature? PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.

## License

MIT - Do whatever you want.

---

*"Find what you love and let it kill you."*
— hypnotIC