aboutsummaryrefslogtreecommitdiff

@emprespresso/codemirror-lang-tabloid

Tabloid language support for CodeMirror 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

npm install @emprespresso/codemirror-lang-tabloid

Usage

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

YOU WON'T WANT TO MISS 'Hello, World!'

PLEASE LIKE AND SUBSCRIBE

Factorial

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

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

# Install dependencies
npm install

# Build the parser
npm run prepare

# Run tests
npm test

License

MIT