aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md129
1 files changed, 129 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a6c295c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,129 @@
+# @emprespresso/codemirror-lang-tabloid
+
+[Tabloid](https://github.com/thesephist/tabloid) language support for [CodeMirror 6](https://codemirror.net/6/).
+
+## About Tabloid
+
+Tabloid is the clickbait headline programming language created by Linus Lee. It features outrageous keywords like `DISCOVER HOW TO` (function declaration), `EXPERTS CLAIM` (variable assignment), and `PLEASE LIKE AND SUBSCRIBE` (required program terminator).
+
+## Installation
+
+```bash
+npm install @emprespresso/codemirror-lang-tabloid
+```
+
+## Usage
+
+```javascript
+import { EditorView, basicSetup } from 'codemirror'
+import { tabloid } from '@emprespresso/codemirror-lang-tabloid'
+
+const view = new EditorView({
+ extensions: [basicSetup, tabloid()],
+ parent: document.querySelector('#editor')
+})
+```
+
+## Language Features
+
+### Keywords
+
+- `DISCOVER HOW TO ... WITH ...` - Function declaration
+- `EXPERTS CLAIM ... TO BE ...` - Variable assignment
+- `RUMOR HAS IT ... END OF STORY` - Code block
+- `WHAT IF ... LIES! ...` - If/else statement
+- `SHOCKING DEVELOPMENT` - Return statement
+- `YOU WON'T WANT TO MISS` - Print statement
+- `LATEST NEWS ON` - Input statement
+- `PLEASE LIKE AND SUBSCRIBE` - Program terminator (required)
+
+### Operators
+
+**Arithmetic:**
+- `PLUS` - Addition
+- `MINUS` - Subtraction
+- `TIMES` - Multiplication
+- `DIVIDED BY` - Division
+- `MODULO` - Modulo
+
+**Comparison:**
+- `IS ACTUALLY` - Equality
+- `BEATS` - Greater than
+- `SMALLER THAN` - Less than
+
+**Logical:**
+- `AND` - Logical AND
+- `OR` - Logical OR
+
+### Literals
+
+- **Numbers:** `123`, `45.67`
+- **Strings:** `"hello"`, `'world'`
+- **Booleans:** `TOTALLY RIGHT` (true), `COMPLETELY WRONG` (false)
+
+## Example Programs
+
+### Hello World
+
+```tabloid
+YOU WON'T WANT TO MISS 'Hello, World!'
+
+PLEASE LIKE AND SUBSCRIBE
+```
+
+### Factorial
+
+```tabloid
+DISCOVER HOW TO FACTORIAL WITH N
+RUMOR HAS IT
+ WHAT IF N IS ACTUALLY 0
+ SHOCKING DEVELOPMENT 1
+ LIES!
+ SHOCKING DEVELOPMENT
+ N TIMES FACTORIAL OF N MINUS 1
+END OF STORY
+
+EXPERTS CLAIM RESULT TO BE FACTORIAL OF 10
+YOU WON'T WANT TO MISS 'Result is'
+YOU WON'T WANT TO MISS RESULT
+
+PLEASE LIKE AND SUBSCRIBE
+```
+
+### Fibonacci
+
+```tabloid
+DISCOVER HOW TO FIBONACCI WITH A, B, N
+RUMOR HAS IT
+ WHAT IF N SMALLER THAN 1
+ SHOCKING DEVELOPMENT B
+ LIES! RUMOR HAS IT
+ YOU WON'T WANT TO MISS B
+ SHOCKING DEVELOPMENT
+ FIBONACCI OF B, A PLUS B, N MINUS 1
+ END OF STORY
+END OF STORY
+
+EXPERTS CLAIM LIMIT TO BE 10
+YOU WON'T WANT TO MISS 'First 10 Fibonacci numbers'
+EXPERTS CLAIM NOTHING TO BE FIBONACCI OF 0, 1, LIMIT
+
+PLEASE LIKE AND SUBSCRIBE
+```
+
+## Development
+
+```bash
+# Install dependencies
+npm install
+
+# Build the parser
+npm run prepare
+
+# Run tests
+npm test
+```
+
+## License
+
+MIT