meowlang


Namemeowlang JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/jaytirthjoshi/meow
SummaryA feline-friendly esoteric programming language
upload_time2025-07-08 20:32:42
maintainerNone
docs_urlNone
authorJaytirth Joshi
requires_python>=3.7
licenseNone
keywords esolang programming language cat meow inline-comments puffup shrinktail catnap scaredycat hairball pawprint hissfit
VCS
bugtrack_url
requirements pytest black flake8
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # .meow β€” The Feline-Friendly Esoteric Programming Language

[![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

> Because programming should be fun, cats are chaotic, and you deserve to write code that goes meow!

## What is MeowLang?

MeowLang (.meow) is a whimsical esoteric programming language where every line of code sounds like a cat. Inspired by the chaos of esolangs and the elegance of felines, .meow lets you vibe code using cat noises.

## Quick Start

### Installation

```bash
# Clone the repository
git clone https://github.com/jaytirthjoshi/meow.git
cd meow

# Run a .meow program
python meow_interpreter.py examples/hello_world.meow
```

### Your First .meow Program

Create a file called `hello.meow`:

```meow
🐾 Hello World in .meow 🐾
meow
meow
meow
purr
hiss
purr
scratch
purr
```

Run it:
```bash
python meow_interpreter.py hello.meow
```

Output:
```
3
2
0
```

## Commands Reference

| Command | Action | Example |
|---------|--------|---------|
| `meow` | Increment memory value by 1 | `meow` β†’ memory += 1 |
| `hiss` | Decrement memory value by 1 | `hiss` β†’ memory -= 1 |
| `purr` | Print the current memory value | `purr` β†’ prints memory |
| `meowt "text"` | Print custom text output | `meowt "Hello!"` β†’ prints Hello! |
| `nap` | Do nothing (no-op) | `nap` β†’ does nothing |
| `scratch` | Reset memory value to 0 | `scratch` β†’ memory = 0 |
| `lick` | Double the current memory value | `lick` β†’ memory *= 2 |
| `zoomies` | Square the memory value | `zoomies` β†’ memory = memoryΒ² |
| `yowl` | Begin a loop (while memory != 0) | `yowl` β†’ loop start |
| `paw` | End a loop | `paw` β†’ loop end |
| `sleep` | Sleep for memory value milliseconds | `sleep` β†’ pause execution |
| `🐾` | Comment/decoration (ignored) | `🐾 comment 🐾` |
| `mew` | Take user input and set memory to that value | `mew` β†’ memory = user input |
| `pounce <line_number>` | Jump to the specified line number (1-based) | `pounce 5` |
| `knead` | Add current and next cell, store in current | `knead` β†’ memory[pointer] += memory[pointer+1] |
| `scratchout` | Subtract next cell from current, store in current | `scratchout` β†’ memory[pointer] -= memory[pointer+1] |
| `pounceon` | Multiply current and next cell, store in current | `pounceon` β†’ memory[pointer] *= memory[pointer+1] |
| `hairball` | Integer divide current by next cell, store in current | `hairball` β†’ memory[pointer] //= memory[pointer+1] |
| `pawprint` | Modulo current by next cell, store in current | `pawprint` β†’ memory[pointer] %= memory[pointer+1] |
| `catnip` | Raise current to power of next cell, store in current | `catnip` β†’ memory[pointer] **= memory[pointer+1] |
| `snuggle` | Copy value from next cell to current cell | `snuggle` β†’ memory[pointer] = memory[pointer+1] |
| `mewmew` | Take user input and store in next cell | `mewmew` β†’ memory[pointer+1] = user input |

## File Extension

All MeowLang programs are saved as `.meow` files:
- `hello_world.meow`
- `fibonacci.meow`
- `countdown.meow`

## Examples

### Countdown Program

```meow
🐾 Countdown from 5 to 1 🐾
meow
meow
meow
meow
meow
yowl
purr
hiss
paw
```

**Output:**
```
5
4
3
2
1
```

### Mathematical Operations

```meow
🐾 Powers and multiplication demo 🐾
meow
meow
purr
lick
purr
lick
purr
lick
purr
zoomies
purr
```

**Output:**
```
2
4
8
16
256
```

### Fibonacci Sequence

```meow
🐾 First 8 Fibonacci numbers 🐾
meow
purr
purr
meow
meow
purr
meow
meow
meow
purr
🐾 ... (see examples/fibonacci.meow for full program) 🐾
```

**Output:**
```
1
1
2
3
5
8
13
21
```

### Stretch Command

```meow
🐾 Demonstrate the 'stretch' command 🐾
meow
meow
meow
hiss
hiss
hiss
hiss
purr
stretch
purr
🐾 The first purr should print -1, the second should print 1 🐾
```

**Output:**
```
-1
1
```

### Groom Command (Sort Memory)

```meow
🐾 Demonstrate the 'groom' command (sort memory) 🐾
meow
meow
right
meow
meow
meow
right
meow
hiss
hiss
purr 🐾 Should print -1 (third cell)
groom
left
left
purr 🐾 Should print 2 (first cell, after sort)
right
purr 🐾 Should print 3 (second cell, after sort)
right
purr 🐾 Should print -1 (third cell, after sort)
```

**Output:**
```
-1
2
3
-1
```

### Puffup and Shrinktail (Tape Expansion/Contraction)

```meow
🐾 Demonstrate 'puffup' and 'shrinktail' commands 🐾
meow
meow
purr 🐾 Should print 2 (cell 0)
puffup 2
right
meow
purr 🐾 Should print 1 (cell 1)
right
meow
meow
purr 🐾 Should print 2 (cell 2)
shrinktail 1
right
purr 🐾 Should print 0 (cell 2 was removed, pointer now at last cell)
```

**Output:**
```
2
1
2
0
```

### Custom Text Output

```meow
meowt "Hello, world!"
purr
meowt "Done!"
```

**Output:**
```
Hello, world!
0
Done!
```

### Calculator Example

```meow
🐾 Simple calculator: (3 + 4) * 2 🐾
meow
meow
meow      🐾 cell 0 = 3
right
meow
meow
meow
meow      🐾 cell 1 = 4
left
knead     🐾 cell 0 = 3 + 4 = 7
right
meow
meow      🐾 cell 1 = 2
left
pounceon  🐾 cell 0 = 7 * 2 = 14
purr      🐾 prints 14
```

### More Examples

See `examples/calculator.meow` for a full calculator program using the cat-themed calculator commands (`knead`, `scratchout`, `pounceon`, `hairball`, `pawprint`, `catnip`).

## Usage

### Command Line Interface

```
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jaytirthjoshi/meow",
    "name": "meowlang",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "esolang programming language cat meow inline-comments puffup shrinktail catnap scaredycat hairball pawprint hissfit",
    "author": "Jaytirth Joshi",
    "author_email": "jay@joshi1.com",
    "download_url": "https://files.pythonhosted.org/packages/12/aa/ab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca/meowlang-0.1.0.tar.gz",
    "platform": null,
    "description": "# .meow \u2014 The Feline-Friendly Esoteric Programming Language\n\n[![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://python.org)\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n> Because programming should be fun, cats are chaotic, and you deserve to write code that goes meow!\n\n## What is MeowLang?\n\nMeowLang (.meow) is a whimsical esoteric programming language where every line of code sounds like a cat. Inspired by the chaos of esolangs and the elegance of felines, .meow lets you vibe code using cat noises.\n\n## Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/jaytirthjoshi/meow.git\ncd meow\n\n# Run a .meow program\npython meow_interpreter.py examples/hello_world.meow\n```\n\n### Your First .meow Program\n\nCreate a file called `hello.meow`:\n\n```meow\n\ud83d\udc3e Hello World in .meow \ud83d\udc3e\nmeow\nmeow\nmeow\npurr\nhiss\npurr\nscratch\npurr\n```\n\nRun it:\n```bash\npython meow_interpreter.py hello.meow\n```\n\nOutput:\n```\n3\n2\n0\n```\n\n## Commands Reference\n\n| Command | Action | Example |\n|---------|--------|---------|\n| `meow` | Increment memory value by 1 | `meow` \u2192 memory += 1 |\n| `hiss` | Decrement memory value by 1 | `hiss` \u2192 memory -= 1 |\n| `purr` | Print the current memory value | `purr` \u2192 prints memory |\n| `meowt \"text\"` | Print custom text output | `meowt \"Hello!\"` \u2192 prints Hello! |\n| `nap` | Do nothing (no-op) | `nap` \u2192 does nothing |\n| `scratch` | Reset memory value to 0 | `scratch` \u2192 memory = 0 |\n| `lick` | Double the current memory value | `lick` \u2192 memory *= 2 |\n| `zoomies` | Square the memory value | `zoomies` \u2192 memory = memory\u00b2 |\n| `yowl` | Begin a loop (while memory != 0) | `yowl` \u2192 loop start |\n| `paw` | End a loop | `paw` \u2192 loop end |\n| `sleep` | Sleep for memory value milliseconds | `sleep` \u2192 pause execution |\n| `\ud83d\udc3e` | Comment/decoration (ignored) | `\ud83d\udc3e comment \ud83d\udc3e` |\n| `mew` | Take user input and set memory to that value | `mew` \u2192 memory = user input |\n| `pounce <line_number>` | Jump to the specified line number (1-based) | `pounce 5` |\n| `knead` | Add current and next cell, store in current | `knead` \u2192 memory[pointer] += memory[pointer+1] |\n| `scratchout` | Subtract next cell from current, store in current | `scratchout` \u2192 memory[pointer] -= memory[pointer+1] |\n| `pounceon` | Multiply current and next cell, store in current | `pounceon` \u2192 memory[pointer] *= memory[pointer+1] |\n| `hairball` | Integer divide current by next cell, store in current | `hairball` \u2192 memory[pointer] //= memory[pointer+1] |\n| `pawprint` | Modulo current by next cell, store in current | `pawprint` \u2192 memory[pointer] %= memory[pointer+1] |\n| `catnip` | Raise current to power of next cell, store in current | `catnip` \u2192 memory[pointer] **= memory[pointer+1] |\n| `snuggle` | Copy value from next cell to current cell | `snuggle` \u2192 memory[pointer] = memory[pointer+1] |\n| `mewmew` | Take user input and store in next cell | `mewmew` \u2192 memory[pointer+1] = user input |\n\n## File Extension\n\nAll MeowLang programs are saved as `.meow` files:\n- `hello_world.meow`\n- `fibonacci.meow`\n- `countdown.meow`\n\n## Examples\n\n### Countdown Program\n\n```meow\n\ud83d\udc3e Countdown from 5 to 1 \ud83d\udc3e\nmeow\nmeow\nmeow\nmeow\nmeow\nyowl\npurr\nhiss\npaw\n```\n\n**Output:**\n```\n5\n4\n3\n2\n1\n```\n\n### Mathematical Operations\n\n```meow\n\ud83d\udc3e Powers and multiplication demo \ud83d\udc3e\nmeow\nmeow\npurr\nlick\npurr\nlick\npurr\nlick\npurr\nzoomies\npurr\n```\n\n**Output:**\n```\n2\n4\n8\n16\n256\n```\n\n### Fibonacci Sequence\n\n```meow\n\ud83d\udc3e First 8 Fibonacci numbers \ud83d\udc3e\nmeow\npurr\npurr\nmeow\nmeow\npurr\nmeow\nmeow\nmeow\npurr\n\ud83d\udc3e ... (see examples/fibonacci.meow for full program) \ud83d\udc3e\n```\n\n**Output:**\n```\n1\n1\n2\n3\n5\n8\n13\n21\n```\n\n### Stretch Command\n\n```meow\n\ud83d\udc3e Demonstrate the 'stretch' command \ud83d\udc3e\nmeow\nmeow\nmeow\nhiss\nhiss\nhiss\nhiss\npurr\nstretch\npurr\n\ud83d\udc3e The first purr should print -1, the second should print 1 \ud83d\udc3e\n```\n\n**Output:**\n```\n-1\n1\n```\n\n### Groom Command (Sort Memory)\n\n```meow\n\ud83d\udc3e Demonstrate the 'groom' command (sort memory) \ud83d\udc3e\nmeow\nmeow\nright\nmeow\nmeow\nmeow\nright\nmeow\nhiss\nhiss\npurr \ud83d\udc3e Should print -1 (third cell)\ngroom\nleft\nleft\npurr \ud83d\udc3e Should print 2 (first cell, after sort)\nright\npurr \ud83d\udc3e Should print 3 (second cell, after sort)\nright\npurr \ud83d\udc3e Should print -1 (third cell, after sort)\n```\n\n**Output:**\n```\n-1\n2\n3\n-1\n```\n\n### Puffup and Shrinktail (Tape Expansion/Contraction)\n\n```meow\n\ud83d\udc3e Demonstrate 'puffup' and 'shrinktail' commands \ud83d\udc3e\nmeow\nmeow\npurr \ud83d\udc3e Should print 2 (cell 0)\npuffup 2\nright\nmeow\npurr \ud83d\udc3e Should print 1 (cell 1)\nright\nmeow\nmeow\npurr \ud83d\udc3e Should print 2 (cell 2)\nshrinktail 1\nright\npurr \ud83d\udc3e Should print 0 (cell 2 was removed, pointer now at last cell)\n```\n\n**Output:**\n```\n2\n1\n2\n0\n```\n\n### Custom Text Output\n\n```meow\nmeowt \"Hello, world!\"\npurr\nmeowt \"Done!\"\n```\n\n**Output:**\n```\nHello, world!\n0\nDone!\n```\n\n### Calculator Example\n\n```meow\n\ud83d\udc3e Simple calculator: (3 + 4) * 2 \ud83d\udc3e\nmeow\nmeow\nmeow      \ud83d\udc3e cell 0 = 3\nright\nmeow\nmeow\nmeow\nmeow      \ud83d\udc3e cell 1 = 4\nleft\nknead     \ud83d\udc3e cell 0 = 3 + 4 = 7\nright\nmeow\nmeow      \ud83d\udc3e cell 1 = 2\nleft\npounceon  \ud83d\udc3e cell 0 = 7 * 2 = 14\npurr      \ud83d\udc3e prints 14\n```\n\n### More Examples\n\nSee `examples/calculator.meow` for a full calculator program using the cat-themed calculator commands (`knead`, `scratchout`, `pounceon`, `hairball`, `pawprint`, `catnip`).\n\n## Usage\n\n### Command Line Interface\n\n```\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A feline-friendly esoteric programming language",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/jaytirthjoshi/meow/issues",
        "Documentation": "https://github.com/jaytirthjoshi/meow#readme",
        "Homepage": "https://github.com/jaytirthjoshi/meow",
        "Source": "https://github.com/jaytirthjoshi/meow"
    },
    "split_keywords": [
        "esolang",
        "programming",
        "language",
        "cat",
        "meow",
        "inline-comments",
        "puffup",
        "shrinktail",
        "catnap",
        "scaredycat",
        "hairball",
        "pawprint",
        "hissfit"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8627c51842fbcd8c93cade2281af694a6cecc9277cbb97caa6ad00facf42287a",
                "md5": "2914191d90ff54bb6bfaaeb4cfde0827",
                "sha256": "e6f57782fea8c396431e7815e76f3f6c32ca643e260d5155ced3fe3c794c38c2"
            },
            "downloads": -1,
            "filename": "meowlang-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2914191d90ff54bb6bfaaeb4cfde0827",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 4440,
            "upload_time": "2025-07-08T20:32:41",
            "upload_time_iso_8601": "2025-07-08T20:32:41.266518Z",
            "url": "https://files.pythonhosted.org/packages/86/27/c51842fbcd8c93cade2281af694a6cecc9277cbb97caa6ad00facf42287a/meowlang-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "12aaab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca",
                "md5": "69fc15dff39fb6d32a0bdcf18bb8c94f",
                "sha256": "c568d13d5838752f692db169541ba6c3ed79da5d2dea062e1a52289c9c8ac045"
            },
            "downloads": -1,
            "filename": "meowlang-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "69fc15dff39fb6d32a0bdcf18bb8c94f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 4458,
            "upload_time": "2025-07-08T20:32:42",
            "upload_time_iso_8601": "2025-07-08T20:32:42.586899Z",
            "url": "https://files.pythonhosted.org/packages/12/aa/ab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca/meowlang-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 20:32:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jaytirthjoshi",
    "github_project": "meow",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "21.0.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "3.8.0"
                ]
            ]
        }
    ],
    "lcname": "meowlang"
}
        
Elapsed time: 0.43762s