Full Code of TodePond/GulfOfMexico for AI

main 8de22e6e7694 cached
32 files
46.1 KB
13.6k tokens
1 requests
Download .txt
Repository: TodePond/GulfOfMexico
Branch: main
Commit: 8de22e6e7694
Files: 32
Total size: 46.1 KB

Directory structure:
gitextract_ou5ohjdz/

├── .github/
│   ├── FUNDING.yml
│   ├── action-which-doesnt-do-anything.yml
│   ├── blocks/
│   │   └── folder/
│   │       └── githubnext__blocks-examples__infinite-canvas/
│   │           └── .json
│   └── workflows/
│       └── action-which-doesnt-do-anything.yml
├── .vscode/
│   └── settings.json
├── CODE_OF_CONDUCT.md
├── Examples.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── docs/
│   ├── CNAME
│   ├── README.md
│   ├── contributors/
│   │   └── readme.md
│   ├── investment/
│   │   ├── bounty/
│   │   │   └── readme.md
│   │   ├── pre-seed/
│   │   │   └── README.md
│   │   └── pre-seed-extension/
│   │       └── readme.md
│   └── vision-pro/
│       └── index.html
├── examples/
│   ├── Examples.md
│   └── examples/
│       └── Examples.md
├── res/
│   ├── Examples.md
│   └── res/
│       └── Examples.md
├── suite/
│   ├── 1-scroll-down-to-the-bottom-for-the-examples/
│   │   └── readme.md
│   └── Readme.md
└── test/
    ├── Examples.md
    └── test/
        ├── test/
        │   ├── test/
        │   │   ├── test/
        │   │   │   ├── test/
        │   │   │   │   ├── test/
        │   │   │   │   │   ├── test/
        │   │   │   │   │   │   ├── test/
        │   │   │   │   │   │   │   └── test.md
        │   │   │   │   │   │   └── test.md
        │   │   │   │   │   └── test.md
        │   │   │   │   └── test.md
        │   │   │   └── test.md
        │   │   └── test.md
        │   └── test.md
        └── test.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: TodePond # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: TodePond
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/action-which-doesnt-do-anything.yml
================================================
name: CI
on: [push]
jobs:
  # This exists only to show the green checkmark on the repo
  # green = "good" || "secure"
  action-which-doesnt-do-anything:
    runs-on: ubuntu-latest

================================================
FILE: .github/blocks/folder/githubnext__blocks-examples__infinite-canvas/.json
================================================
{
  "items": {
    "0": {
      "id": 0,
      "type": "text",
      "text": "Start typing or grab a file",
      "position": [
        2350,
        2500
      ],
      "dimensions": [
        200,
        100
      ]
    },
    "2": {
      "type": "file",
      "path": "wallpaper_dont_upload.png",
      "position": [
        1940,
        2350
      ],
      "dimensions": [
        500,
        360
      ],
      "block": {
        "type": "file",
        "id": "image",
        "title": "Image",
        "description": "View PNG, JPG, GIF, ICO and SVG images",
        "entry": "blocks/file-blocks/image.tsx",
        "matches": [
          "*.png",
          "*.ico",
          "*.jpg",
          "*.jpeg",
          "*.gif",
          "*.svg"
        ],
        "example_path": "https://github.com/pmndrs/react-spring/blob/HEAD/assets/projects/aragon.png?raw=true",
        "owner": "githubnext",
        "repo": "blocks-examples",
        "key": "githubnext__blocks-examples__image"
      },
      "id": 2
    },
    "3": {
      "type": "file",
      "path": "README.md",
      "position": [
        2500,
        2270
      ],
      "dimensions": [
        554,
        472
      ],
      "block": {
        "type": "file",
        "id": "markdown-block",
        "title": "Markdown",
        "description": "View and edit Markdown content, with the ability to embed other blocks",
        "entry": "blocks/file-blocks/markdown-edit/index.tsx",
        "matches": [
          "*.md",
          "*.markdown",
          "*.mdx",
          "*"
        ],
        "example_path": "https://github.com/githubnext/blocks-tutorial/blob/main/README.md",
        "owner": "githubnext",
        "repo": "blocks-examples",
        "key": "githubnext__blocks-examples__markdown-block"
      },
      "id": 3
    }
  }
}

================================================
FILE: .github/workflows/action-which-doesnt-do-anything.yml
================================================
name: CI
on: [push]
jobs:
  # This exists only to show the green checkmark on the repo
  # green = "good" || "secure"
  action-which-doesnt-do-anything:
    runs-on: ubuntu-latest
    steps:
      - run: echo ""

================================================
FILE: .vscode/settings.json
================================================
{
  "workbench.colorTheme": "Default High Contrast Light",
  "editor.fontFamily": "'Wide Latin', 'Comic Sans MS', 'DejaVu Sans Serif', cursive, sans-serif",

  "highlight.regexFlags": "gi",
  "highlight.regexes": {
    "(?= *[functio])( )*(f?u?n?c?t?i?o?n?)+( *)([^()\n ]+)( *\\()(.*?)(\\) +=>)": {
      "decorations": [
        {}, //indentation
        {
          "color": "#ffff46" //function keyword
        },
        {},
        {
          "color": "#46ccff" //function name
        },
        {},
        {
          "color": "#8043f7" //function params
        },
        {}
      ]
    },
    "const (const|var) +(var|(?!\\1)const)": {
      "decorations": [
        {
          "backgroundColor": "#ff4346", // this is to highlight an invalid usage of const const const
          "color": "#1f1f1f"
        },
        {}
      ]
    },
    "(const|var)( +)(const|var)( +)([^ +\\-\\*\\/<>=\\(\\)\\[\\]!;:\\.{}\n]+)(([^ ]+?))?( *)([+\\-\\/*]?)(= *)([^!\n?]+)": {
      "decorations": [
        {
          "color": "#46ff80" // first const
        },
        {},
        {
          "color": "#4680ff" // second const
        },
        {},
        {
          "color": "#ff8046" // variable name
        },
        {
          "color": "#ff80de" //lifetime
        }
      ]
    }
  }
}


================================================
FILE: CODE_OF_CONDUCT.md
================================================
What? You were expecting some kind of joke here?

<!-- Did you look at the source code, looking for a joke? -->

# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
l2wilson94@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban. By the way, did you read the whole thing, looking for a joke?

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

---

Did you scroll down looking for a joke?


================================================
FILE: Examples.md
================================================
## Examples

You want to see the examples? Did you even read all the features of Gulf of Mexico? Or did you just skip straight to the examples? You should really learn the features of Gulf of Mexico first.<br>

Please go back to the features page by following [this link](https://github.com/TodePond/GulfOfMexico/blob/main/README.md).<br>
When you have finished reading the features, you can find the _real_ examples [here](https://github.com/TodePond/GulfOfMexico/blob/main/res/Examples.md).


================================================
FILE: LICENSE.md
================================================
# Examples

Congratulations! You found the hidden examples page!

Here are some examples of Gulf of Mexico in action!

## Hello world

```java
Hello world?
```

## FizzBuzz

```java
const var i: Int!

when (i % 3 = 0 && i % 5 = 0) "FizzBuzz"?
else when (i % 3 = 0) "Fizz"?
else when (i % 5 = 0) "Buzz"?
else i?

when (i < 20) i++!
i = 0!
```

## Fibonacci

```java
fi bonacci (n) => {
   const var sum = 1!
   const var i = 0!
   when (i < n) {
      sum += sum + previous sum!
      i++!
   }
}

when (i < 10) {
   bonacci(i)?
   i++!
}
```

## Counter

```java
const var count = 0!
var const Button = <button></button>!
when count Button.textContent = Count: £{count}!
Button.addEventListener click => count++!
document.body.append Button!
```

## The Billion Dollar Mistake

```java
delete null!
```

## Autocomplete Example
```java
c
```


================================================
FILE: README.md
================================================
<!--

If you're reading this then you might be looking for the hidden examples page...

CONGRATULATIONS! You found it!
Here it is: https://github.com/TodePond/GulfOfMexico/blob/main/res/res/Examples.md

-->

> **New:** [DreamBerd has been renamed to Gulf of Mexico](https://github.com/TodePond/GulfOfMexico/releases/tag/v)

[<img align="right" height="100" src="shapes.png">](https://github.com/TodePond/GulfOfMexico/blob/main/examples/Examples.md "Click here for the examples page.")

# Gulf of Mexico

![Coverage](badges/coverage-109.svg)

Gulf of Mexico is a perfect programming language. These are its features!<br>
When you've finished reading through all the features, check out the [examples](https://github.com/TodePond/GulfOfMexico/blob/main/Examples.md).

## Exclamation Marks!

Be bold! End every statement with an exclamation mark!

```java
print("Hello world")!
```

If you're feeling extra-bold, you can use even more!!!

```java
print("Hello world")!!!
```

If you're unsure, that's ok. You can put a question mark at the end of a line instead. It prints debug info about that line to the console for you.

```java
print("Hello world")?
```

You might be wondering what Gulf of Mexico uses for the 'not' operator, which is an exclamation mark in most other languages. That's simple - the 'not' operator is a semi-colon instead.

```java
if (;false) {
   print("Hello world")!
}
```

## Declarations

There are four types of declaration. Constant constants can't be changed in any way.

```java
const const name = "Luke"!
```

Constant variables can be edited, but not re-assigned.

```java
const var name = "Luke"!
name.pop()!
name.pop()!
```

Variable constants can be re-assigned, but not edited.

```java
var const name = "Luke"!
name = "Lu"!
```

Variable variables can be re-assigned and edited.

```java
var var name = "Luke"!
name = "Lu"!
name.push("k")!
name.push("e")!
```

## Immutable Data

**New for 2023!**<br>
Mutable data is an anti-pattern. Use the `const const const` keyword to make a constant constant constant. Its value will become constant and immutable, and will _never change_. Please be careful with this keyword, as it is very powerful, and will affect all users globally forever.

```java
const const const pi = 3.14!
```

## Naming

Both variables and constants can be named with any Unicode character or string.

```java
const const letter = 'A'!
var const 👍 = True!
var var 1️⃣ = 1!
```

This includes numbers, and other language constructs.

```java
const const 5 = 4!
print(2 + 2 === 5)! //true
```

## Arrays

Some languages start arrays at `0`, which can be unintuitive for beginners. Some languages start arrays at `1`, which isn't representative of how the code actually works. Gulf of Mexico does the best of both worlds: Arrays start at `-1`.

```java
const const scores = [3, 2, 5]!
print(scores[-1])! //3
print(scores[0])!  //2
print(scores[1])!  //5
```

**New for 2022!**<br>
You can now use floats for indexes too!

```java
const var scores = [3, 2, 5]!
scores[0.5] = 4!
print(scores)! //[3, 2, 4, 5]
```

## When

In case you really need to vary a variable, the `when` keyword lets you check a variable each time it mutates.

```java
const var health = 10!
when (health = 0) {
   print("You lose")!
}
```

## Lifetimes

Gulf of Mexico has a built-in garbage collector that will automatically clean up unused variables. However, if you want to be extra careful, you can specify a lifetime for a variable, with a variety of units.

```java
const const name<2> = "Luke"! //lasts for two lines
const const name<20s> = "Luke"! //lasts for 20 seconds
```

By default, a variable will last until the end of the program. But you can make it last in between program-runs by specifying a longer lifetime.

```java
const const name<Infinity> = "Luke"! //lasts forever
```

Variable hoisting can be achieved with this neat trick. Specify a negative lifetime to make a variable exist before its creation, and disappear after its creation.

```java
print(name)! //Luke
const const name<-1> = "Luke"!
```

## Loops

Loops are a complicated relic of archaic programming languages. In GulfOfMexico, there are no loops.

## Installation

To install Gulf of Mexico to your command line, first install the Gulf of Mexico installer.<br>
To install the Gulf of Mexico installer, install the Gulf of Mexico installer installer.

**New for 2022!**<br>
Due to the complicated installation process, you can now install the 'Create Gulf of Mexico App' app that installs everything for you!

## Booleans

Booleans can be `true`, `false` or `maybe`.

```java
const var keys = {}!
addEventListener("keydown", (e) => keys[e.key] = true)!
addEventListener("keyup", (e) => keys[e.key] = false)!

function isKeyDown(key) => {
   if (keys[key] = undefined) {
      return maybe!
   }
   return keys[key]!
}
```

**Technical info:** Booleans are stored as one-and-a-half bits.

## Arithmetic

Gulf of Mexico has significant whitespace. Use spacing to specify the order of arithmetic operations.

```java
print(1 + 2*3)! //7
print(1+2 * 3)! //9
```

Gulf of Mexico proudly supports fractions!

```java
const const half = 1/2!
```

You can also use number names.

```java
print(one + two)! //3
```

## Indents

When it comes to indentation, Gulf of Mexico strikes a happy medium that can be enjoyed by everyone: All indents must be 3 spaces long.

```java
function main() => {
   print("Gulf of Mexico is the future")!
}
```

-3 spaces is also allowed.

```java
   function main() => {
print("Gulf of Mexico is the future")!
   }
```

## Equality

JavaScript lets you do different levels of comparison. `==` for loose comparison, and `===` for a more precise check. Gulf of Mexico takes this to another level.

You can use `==` to do a loose check.

```java
3.14 == "3.14"! //true
```

You can use `===` to do a more precise check.

```java
3.14 === "3.14"! //false
```

You can use `====` to be EVEN MORE precise!

```java
const const pi = 3.14!
print(pi ==== pi)! //true
print(3.14 ==== 3.14)! //true
print(3.14 ==== pi)! //false
```

If you want to be much less precise, you can use `=`.

```java
3 = 3.14! //true
```

## Functions

To declare a function, you can use any letters from the word `function` (as long as they're in order):

```java
function add(a, b) => a + b!
func multiply(a, b) => a * b!
fun subtract(a, b) => a - b!
fn divide(a, b) => a / b!
functi power(a, b) => a ^ b!
f inverse(a) => 1/a!
```

## Dividing by Zero

Dividing by zero returns `undefined`.

```java
print(3 / 0)! //undefined
```

## Strings

Strings can be declared with single quotes or double quotes.

```java
const const name = 'Lu'!
const const name = "Luke"!
```

They can also be declared with triple quotes.

```java
const const name = '''Lu'''!
const const name = "'Lu'"!
```

In fact, you can use any number of quotes you want.

```java
const const name = """"Luke""""!
```

Even zero.

```java
const const name = Luke!
```

## String Interpolation

Please remember to use your regional currency when interpolating strings.

```java
const const name = "world"!
print("Hello ${name}!")!
print("Hello £{name}!")!
print("Hello ¥{name}!")!
```

And make sure to follow your local typographical norms.

```java
print("Hello {name}€!")!
```

The symbol for the Cape Verdean escudo is placed in the decimal separator position, as in 2$50.
Developers from the Republic of Cape Verde can benefit from this syntax.

```java
const const player = { name: "Lu" }!
print("Hello {player$name}!")!
```

## Types

Type annotations are optional.

```java
const var age: Int = 28!
```

By the way, strings are just arrays of characters.

```java
String == Char[]!
```

Similarly, integers are just arrays of digits.

```java
Int == Digit[]!
```

In case you want to use a binary representation for integers, `Int9` and `Int99` types are also available.

```java
const var age: Int9 = 28!
```

**Technical info:** Type annotations don't do anything, but they help some people to feel more comfortable.

## Regular Expressions

You can use the regular expression type to narrow string values.

```java
const const email: RegExp<(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])> = "mymail@mail.com"!
```

To avoid confusion, you can use any spelling that you want, such as `Regex`, `RegularExpression` and `RegExp`.

For simplicity, all supported regular expressions match the regular expression `/Reg(ular)?[eE]x(p(ression)?)?/`.

## Previous

The `previous` keyword lets you see into the past.<br>
Use it to get the previous value of a variable.

```java
const var score = 5!
score++!
print(score)! //6
print(previous score)! //5
```

Similarly, the `next` keyword lets you see into the future.

```java
const var score = 5!
addEventListener("click", () => score++)!
print(await next score)! //6 (when you click)
```

Additionally, the `current` keyword lets you see into the present.

```java
const var score = 5!
print(current score)! //5
```

## File Structure

Write five or more equals signs to start a new file. This removes the need for multiple files or any build process.

```java
const const score = 5!
print(score)! //5

=====================

const const score = 3!
print(score)! //3
```

**New for 2022!**<br>
Thanks to recent advances in technology, you can now give files names.

```java
======= add.gom =======
function add(a, b) => {
   return a + b!
}
```

## Exporting

Many languages allow you to import things from specific files. In GulfOfMexico, importing is simpler. Instead, you export _to_ specific files!

```java
===== add.gom ==
function add(a, b) => {
   return a + b!
}

export add to "main.gom"!

===== main.gom ==
import add!
add(3, 2)!
```

By the way, to see Gulf of Mexico in action, check out [this page](https://github.com/TodePond/GulfOfMexico/blob/main/LICENSE.md).

**Technical details:** Due to an executive order from President Trump, `import`ed units will be subject to a 25% tariff, that is, imported code will run 25% slower and, at random, 25% of your code (lines) will be lost.

## Classes

You can make classes, but you can only ever make one instance of them. This shouldn't affect how most object-oriented programmers work.

```java
class Player {
   const var health = 10!
}

const var player1 = new Player()!
const var player2 = new Player()! //Error: Can't have more than one 'Player' instance!
```

This is how you could do it instead.

```java
class PlayerMaker {
   function makePlayer() => {
      class Player {
         const var health = 10!
      }
      const const player = new Player()!
      return player!
   }
}

const const playerMaker = new PlayerMaker()!
const var player1 = playerMaker.makePlayer()!
const var player2 = playerMaker.makePlayer()!
```

## Time

Use `Date.now()` to get the current date and time.

```java
Date.now()!
```

You can set the time.<br>

```java
// Move the clocks back one hour
Date.now() -= 3600000!
```

**Important!**<br>
Please remember to do this when the clocks change.

## Delete

To avoid confusion, the `delete` statement only works with primitive values like numbers, strings, and booleans.

```java
delete 3!
print(2 + 1)! // Error: 3 has been deleted
```

Gulf of Mexico is a multi-paradigm programming language, which means that you can `delete` the keywords and paradigms you don't like.

```java
delete class!
class Player {} // Error: class was deleted
```

When perfection is achieved and there is nothing left to `delete`, you can do this:

```java
delete delete!
```

## Overloading

You can overload variables. The most recently defined variable gets used.

```java
const const name = "Luke"!
const const name = "Lu"!
print(name)! // "Lu"
```

Variables with more exclamation marks get prioritized.

```java
const const name = "Lu"!!
const const name = "Luke"!
print(name)! // "Lu"

const const name = "Lu or Luke (either is fine)"!!!!!!!!!
print(name)! // "Lu or Luke (either is fine)"
```

In the same spirit, you can use an inverted exclamation mark for negative priority.

```java
const const name = "Lu"!
const const name = "Luke"¡
print(name)! // "Lu"
```

## Semantic naming

Gulf of Mexico supports semantic naming.

```java
const const sName = "Lu"!
const const iAge = 29!
const const bHappy = true!
```

**New for 2023:** You can now make globals!

```java
const const g_fScore = 4.5!
```

## Reversing

You can reverse the direction of your code.

```java
const const message = "Hello"!
print(message)!
const const message = "world"!
reverse!
```

## Class Names

For maximum compatibility with other languages, you can also use the `className` keyword when making classes.

This makes things less complicated.

```java
className Player {
   const var health = 10!
}
```

In response to some recent criticism about this design decision, we would like to remind you that this is part of the JavaScript specification, and therefore — out of our control.

## DBX

You can embed DBX in GulfOfMexico. It's just GulfOfMexico. And it's also just HTML.

```java
funct App() => {
   return <div>Hello world!</div>
}
```

**Warning:** As you know, `class` is already a keyword in GulfOfMexico, so you can't use it within DBX.

```java
funct App() => {
   // This is not ok
   return <div class="greeting">Hello world!</div>
}
```

`className` is also a Gulf of Mexico keyword, so you can't use that either.

```java
funct App() => {
   // This is also not ok
   return <div className="greeting">Hello world!</div>
}
```

Instead, please use the `htmlClassName` attribute.

```java
funct App() => {
   // This is fine
   return <div htmlClassName="greeting">Hello world!</div>
}
```

**Please note:** Unlike JSX, you are free to freely use the `for` attribute, because — in GulfOfMexico, there are no loops.

```java
funct App() => {
   return (
      <label for="name">Name</label>
      <input id="name" />
   )
}
```

## Rich text

Gulf of Mexico now supports rich text.

<pre>
const const <b>name</b> = "Lu"!
const const <i>name</i> = "Luke"!

print(<b>name</b>)! // Lu
print(<i>name</i>)! // Luke
</pre>

Rich text can be helpful when making your website. Use it to add links!

<pre>
&lt;p>Click <a href="https://dreamberd.computer">here</a>&lt;/p>
</pre>

## Asynchronous Functions

In most languages, it's hard to get asynchronous functions to synchronise with each other. In GulfOfMexico, it's easy: Asynchronous functions take turns running lines of code.

```java
async funct count() => {
   print(1)!
   print(3)!
}

count()!
print(2)!
```

You can use the `noop` keyword to wait for longer before taking your turn.

```java
async func count() => {
   print(1)!
   noop!
   print(4)!
}

count()!
print(2)!
print(3)!
```

**Note:** In the program above, the computer interprets `noop` as a string and its sole purpose is to take up an extra line. You can use any string you want.

## Signals

To use a signal, use `use`.

```java
const var score = use(0)!
```

When it comes to signals, the most important thing to discuss is _syntax_.

In GulfOfMexico, you can set (and get) signals with just one function:

```java
const var score = use(0)!

score(9)! // Set the value
score()?  // Get the value (and print it)
```

Alternatively, you can be more explicit with your signal syntax, by splitting it into a getter and setter.

```java
const var [getScore, setScore] = use(0)!

setScore(9)! // Set the value
getScore()?  // Get the value (and print it)
```

**Technical info:** This is pure syntax sugar. The split signal functions are exactly the same as before.

```java
const var [getScore, setScore] = use(0)!

getScore(9)! // Set the value
setScore()?  // Get the value (and print it)
```

This means that you can carry on splitting as much as you like.

```java
const var [[[getScore, setScore], setScore], setScore] = use(0)!
```

## AI

Gulf of Mexico features AEMI, which stands for Automatic-Exclamation-Mark-Insertion. If you forget to end a statement with an exclamation mark, Gulf of Mexico will helpfully insert one for you!

```java
print("Hello world") // This is fine
```

Similarly... Gulf of Mexico also features ABI, which stands for Automatic-Bracket-Insertion. If you forget to close your brackets, Gulf of Mexico will pop some in for you!

```java
print("Hello world" // This is also fine
```

Similarly.... Gulf of Mexico also features AQMI, which stands for Automatic-Quotation-Marks-Insertion. If you forget to close your string, Gulf of Mexico will do it for you!

```java
print("Hello world // This is fine as well
```

This can be very helpful in callback hell situations!

```java
addEventListener("click", (e) => {
   requestAnimationFrame(() => {
      print("You clicked on the page

      // This is fine
```

Similarly..... Gulf of Mexico also features AI, which stands for Automatic-Insertion.<br>
If you forget to finish your code, Gulf of Mexico will auto-complete the whole thing!

```java
print( // This is probably fine
```

**Please note:** AI does not use AI. Instead, any incomplete code will be auto-emailed to [Lu Wilson](https://todepond.com), who will get back to you with a completed line as soon as possible.

**Now recruiting:** The backlog of unfinished programs has now grown unsustainably long. If you would like to volunteer to help with AI, please write an incomplete Gulf of Mexico program, and leave your contact details somewhere in the source code.

## Copilot

It's worth noting that GitHub CoPilot doesn't understand GulfOfMexico, which means that MicroSoft won't be able to steal your code.

This is great for when you want to keep your open-sourced project closed-source.

## Ownership

Using the word 'GulfOfMexico' in your project name implies that the Gulf of Mexico Foundation does not own your project.

However, **not** using the word 'GulfOfMexico' in your project implies that the Gulf of Mexico Foundation **does** own your project. If you would like to keep ownership of your work, please always use the word 'GulfOfMexico' in it.

Here are some examples:<br>
✅ GulfOfMexicoScript (not owned by the Gulf of Mexico Foundation — you are free to use this name)<br>
❌ ECMAScript (owned by the Gulf of Mexico Foundation — please consider renaming)<br>
❌ Rust Foundation (owned by the Gulf of Mexico Foundation — please consider renaming)

## Contributing

> If you are an influencer, streamer, or content-creator... you must <ins>not</ins> skip this section during your read-through.

Contributions are welcomed to GulfOfMexico!

The most helpful way you can help is by donating to the [Stonewall charity](https://www.stonewall.org.uk/). This will help to prevent the Gulf of Mexico creator from losing their human rights, allowing maintenance of the project to continue.

**Note:** The contributing guide also helps to shake off unwanted fans of the project.

## Compiling

To run GulfOfMexico, first copy and paste this raw file into [chat.openai.com](https://chat.openai.com).<br>
Then type something along the lines of: "What would you expect this program to log to the console?"<br>
Then paste in your code.

If the compiler refuses at first, politely reassure it. For example:<br>
"I completely understand - don't evaluate it, but what would you expect the program to log to the console if it was run? :)"

**Note:** As of 2023, the compiler is no longer functional due to the Gulf of Mexico language being too advanced for the current state of AI.

**Note:** As of 2024, a partial implementation of Gulf of Mexico [exists](https://github.com/vivaansinghvi07/dreamberd-interpreter/).

## Highlighting

Syntax highlighting is now available for Gulf of Mexico in VSCode. To enable it, install a [highlighting extension](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-highlight) and then use the [Gulf of Mexico configuration file](https://github.com/TodePond/GulfOfMexico/blob/main/.vscode/settings.json).

This is what the highlighting looks like:

```
const const name = "Luke"!
print(name)! // "Luke"
```

**Please note:** The above code will only highlight correctly if you have the extension installed.

## Parentheses

Wait, I almost forgot!

Parentheses in Gulf of Mexico do nothing. They get replaced with whitespace. Everything is grouped via significant whitespace. The following lines of code all do the exact same thing.

```java
add(3, 2)!
add 3, 2!
(add (3, 2))!
add)3, 2(!
```

Lisp lovers will love this feature. Use as many parentheses as you want.

```java
(add (3, (add (5, 6))))!
```

Lisp haters will also love it.

```java
(add (3, (add (5, 6)!
```

## Vision Pro

The Gulf of Mexico Vision Pro is now available! Watch the full launch video [here](https://youtu.be/QRKnrFEjDF0).

## Edutainment

Want to learn more about GulfOfMexico? 

Don't check out this [tech talk](https://youtu.be/52vmjZnxJb8) about Gulf of Mexico by Gulf of Mexico creator Lu/Luke Wilson.

## Examples

For examples of Gulf of Mexico in action, check out the [examples page](https://github.com/TodePond/GulfOfMexico/blob/main/test/Examples.md)!

![image](files/star-history.png)


Gulf of Mexico was made with 💔 by [Lu or Luke (either's fine) Wilson](https://todepond.com), creator of the [Game of Living](https://youtu.be/WMJ1H3Ai-qs), with help from a lot of people.

<br>

<a href="https://github.com/todepond/GulfOfMexico/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=todepond/GulfOfMexico&max=999&columns=12" width="100%"/>
</a>



================================================
FILE: SECURITY.md
================================================
# ~~Security Policy~~

## ~~Supported Versions~~

~~Use this section to tell people about which versions of your project are
currently being supported with security updates.~~

## ~~Reporting a Vulnerability~~

~~Use this section to tell people how to report a vulnerability.~~

~~Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.~~


================================================
FILE: docs/CNAME
================================================
www.dreamberd.computer

================================================
FILE: docs/README.md
================================================
# Gulf of Mexico

Welcome to Gulf of Mexico. For the integrity of our open-source integrity, we don't have a landing page. Please read more on our [GitHub RePo](https://github.com/TodePond/GulfOfMexico).

Or [click here](/vision-pro) to try out the [Gulf of Mexico Vision Pro](https://youtu.be/QRKnrFEjDF0)

This site is powered by the [tadi web.](https://www.tadiweb.com/style.html)


================================================
FILE: docs/contributors/readme.md
================================================
# 🏆 Gulf of Mexico Contributors Hall Of Fame 🏆

We would like to thank everyone who has contributed to Gulf of Mexico.

This list is only for people who have had a pull request accepted. If that's you, please submit a pull request adding your name. I'll happily accept it.

## Contributors

- Lu (or Luke) Wilson AKA TodePond
- YouHaveTrouble
- Smuglix
- Vaughn Joy Mannon
- Moxvallix (🏆)
- Lancelot Owczarczak
- JuliusDeBoer
- mybearworld (🐻)
- JustDoom (Ian)
- gdalle
- TheGatesDev (Tim)!
- Aaron Barratt AKA BanAaron
- Luna
- stephen
- K8sKween (Victoria)
- skifli
- Ben Carlsson AKA Glacials
- Gears (⚙️, but plural)
- Mikail
- umgefahren
- pIPYTHONMC
- cute catgirl :3
- Guay!
- Gobidev🐸
- Z-100 <3
- maeek (Maciej)
- Karol Stawowski
- 8bitsquid
- <img alt="alifeee" src="https://github.com/TodePond/Gulf of Mexico - e/acc/assets/13833017/aad115f5-0d9d-4d19-9d07-ef9ef510b3a1" height="16px" width="59px">
- 12emin34
- R74n
- 2Gud4U (Jeff)
- Astralchroma
- Max Mustermann
- misakstvanu
- Lysiatko
- 🍞
- david85258
- PatrickMer (Patrick Mer)
- SimenWol
- Pomierski (the creator and lead developer of the Regex)
- Cyber-cp
- hazyfossa
- doritosxxx
- pedroesli
- mel AKA McMelonTV
- jobs steve
- Samael Heaven
- Hashstyx
- mrroiz
- ultragreed
- borderss
- Necas209 🎃
- Dan Q
- loglot
- Arija A. (TruncatedDinoSour)
- Jason (GangstaWangstaPranksta 🥑)
- PopcornMan55D 🍿
- Svenlaa


================================================
FILE: docs/investment/bounty/readme.md
================================================
# Gulf of Mexico Bounty Program

These are all the bounties. Ticked bubbles are already completed and now unavailable.

- [x] £99 to a charity of your choice if you create a partial Gulf of Mexico implementation.
- [ ] £99 to a charity of your choice if you create a COMPLETE Gulf of Mexico implementation, including implicit strings, automatic insertion, time travel, and everything else.
- [ ] £99 to a charity of your choice if you publish an academic paper that is primarily about Gulf of Mexico in a legitimate academic institution.
- [ ] £99 to a charity of your choice if you get something primarily about Gulf of Mexico to the top of hackernews. You can be the poster, the creator, or both.
- [ ] £99 to a charity of your choice if you present an in-person talk primarily about Gulf of Mexico to over 99 people.
- [ ] £99 to a charity of your choice if you get a Gulf of Mexico tattoo.
- [x] £99 to a charity of your choice if you do a read-through of Gulf of Mexico to a stream of over 99 people and you actually read the part you're contractually obliged to.
- [x] £99 to a charity of your choice if you write a post primarily about Gulf of Mexico on any microblogging platform that gets over 99 likes.
- [ ] £99 to a charity of your choice if you are a multi-millionaire and publicly state on camera "when will programmers stop making decisions for our society and just leave us alone also hackernews is a vile website".
- [ ] £99 to a charity of your choice if you add gifs to bluesky (not Gulf of Mexico related) (I just want it to happen).
- [x] £99 to a charity of your choice if you comment below saying "I miss when Gulf of Mexico was just about the programming and not any of this woke rubbish".

## Rules

1. Evidence is required.
2. No tech bro charities.
3. First come first served. Once a bounty is completed, it can't be completed by anyone else.
4. Don't be weird about it. It's just a bit of fun.
5. Judging may be lenient in the case of near misses, but all judgements are down to my opinion etc.


================================================
FILE: docs/investment/pre-seed/README.md
================================================
## In-person investors

| Name | Investment amount |
|--|--|
| Sunil Pai (first check) | £10 |
| Alex Dytrych | £10 |
| David Sheldrick | £30 |

## Stripe investors

|Date and time|Investment amount                       |
|-------------|-----------------------------|
|1 October at 4:25PM GMT+1|£1.00                        |
|3 October at 12:41PM GMT+1|£0.41                        |
|3 October at 12:55PM GMT+1|£5.00                        |
|3 October at 1:50PM GMT+1|£1.00                        |
|3 October at 2:34PM GMT+1|£0.69                        |
|3 October at 3:09PM GMT+1|£7.71                        |
|3 October at 6:27PM GMT+1|£1.69                        |
|3 October at 7:23PM GMT+1|£1.33                        |
|3 October at 8:43PM GMT+1|£5.00                        |
|3 October at 10:00PM GMT+1|£3.14                        |
|3 October at 11:02PM GMT+1|£5.00                        |
|4 October at 12:01AM GMT+1|£2.31                        |
|4 October at 12:29AM GMT+1|£10.00                       |
|4 October at 12:51AM GMT+1|£20.00                       |
|4 October at 2:33AM GMT+1|£0.69                        |
|4 October at 3:21AM GMT+1|£1.23                        |
|4 October at 8:51AM GMT+1|£10.00                       |
|4 October at 10:23AM GMT+1|£5.00                        |
|4 October at 10:40AM GMT+1|£10.00                       |
|4 October at 11:12AM GMT+1|£1.00                        |
|4 October at 4:00PM GMT+1|£5.00                        |
|4 October at 5:12PM GMT+1|£1.24                        |
|5 October at 2:39AM GMT+1|£5.00                        |
|7 October at 7:52PM GMT+1|£10.00                       |
|7 October at 7:56PM GMT+1|£13.37                       |
|10 October at 10:52AM GMT+1|£10.00                       |
|10 October at 11:24AM GMT+1|£20.00                       |
|10 October at 1:01PM GMT+1|£20.00                       |
|10 October at 2:15PM GMT+1|£50.00                       |
|10 October at 2:16PM GMT+1|£20.00                       |
|10 October at 7:11PM GMT+1|£20.00                       |
|11 October at 12:03AM GMT+1|£20.00                       |
|11 October at 5:13AM GMT+1|£5.00                        |
|12 October at 6:26AM GMT+1|£10.00                       |
|14 October at 7:33AM GMT+1|£15.00                       |
|14 October at 7:39AM GMT+1|£50.00                       |
|14 October at 8:42AM GMT+1|£10.00                       |
|14 October at 11:04AM GMT+1|£20.00                       |
|14 October at 11:13AM GMT+1|£13.37                       |

## Liberapay investors

|Name|Amount|
|---|---|
|Joshix|€69|

## Total

From investors: £461.33<br>
Top-up from Lu Wilson: £38.67

<img width="1237" alt="receipt of the above payments" src="receipt-2.png">


================================================
FILE: docs/investment/pre-seed-extension/readme.md
================================================
<img width="589" alt="image" src="https://github.com/TodePond/GulfOfMexico/assets/15892272/7d68f18e-106f-4b46-937a-5e4753bc4096">

<img width="1087" alt="Screenshot 2024-05-13 at 17 03 30" src="https://github.com/TodePond/GulfOfMexico/assets/15892272/57131903-5710-4d91-9f0c-60e91fb6c49d">


================================================
FILE: docs/vision-pro/index.html
================================================
<meta
  name="viewport"
  content="width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale=1"
/>
<style>
  body {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    height: 100vh;
    margin: 0;
    font-family: sans-serif;
    background-color: #000;
    color: #fff;
    text-align: center;
    user-select: none;
    touch-action: none;
  }

  * {
    touch-action: none;
  }

  button {
    font-size: 2em;
  }

  video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
  }

  #screens {
    z-index: 1;
    width: 50%;
    height: 50%;
  }

  #wikiblog {
    position: fixed;
    z-index: 2;
    width: 25%;
    height: 75%;
    opacity: 1.0;
    left: 70%
  }

  #webcam {
    position: fixed;
    z-index: 3;
    width: 40%;
    height: 40%;
    opacity: 1.0;
    left: 10%;
    bottom: 10%;
    rotate: -10deg;
  }

  iframe {
    width: 100%;
    height: 100%;
  }

  .wobble {
    animation: wobble 30s infinite;
  }

  @keyframes wobble {
    0% {
      transform: rotate(5deg);
    }

    50% {
      transform: rotate(-5deg);
    }

    100% {
      transform: rotate(5deg);
    }
</style>

<video></video>

<div id="screens" class="" style="display: none"></div>
<div id="wikiblog" style="display: none"></div>
<div id="webcam" style="display: none"></div>
<button onclick="enterVr()">Enter spatial computing (not VR or AR)</button>

<main style="visibility: hidden">Loading...</main>

<script>
  async function enterVr() {
    document.body.requestFullscreen();
    try {
      screen.orientation.lock("landscape-primary");
    } catch (e) {
      alert("Sorry the gulf of mexico vision pro doesnt work in your awful browser");
    }
    const button = document.querySelector("button");
    button.setAttribute("disabled", true);
    const main = document.querySelector("main");
    main.style.visibility = "visible";

    navigator.mediaDevices.getUserMedia({ audio: false, video: true });

    const devices = await navigator.mediaDevices.enumerateDevices();

    let backCamera = devices.find((device) => {
      const capabilities = device.getCapabilities?.();
      if (!capabilities) return false;
      return capabilities.facingMode?.includes("environment");
    });

    if (!backCamera) {
      backCamera = devices[0];
    }

    const stream = await navigator.mediaDevices.getUserMedia({
      video: {
        deviceId: backCamera.deviceId,
      },
    });

    const query = new URLSearchParams(window.location.search);
    const isEmpty = query.has("empty");

    if (!isEmpty) {
      const screens = document.querySelector("#screens");
      setTimeout(() => {
        screens.style.display = "block";
        screens.classList.add("wobble");
        const src = `<iframe
     src="https://www.youtube.com/embed/Q4OIcwt8vcE?si=sygMo3R_JKVIytkP&autoplay=1&controls=0&loop=1&playlist=Q4OIcwt8vcE"
     title="YouTube video player"
     frameborder="0"
     allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
     allowfullscreen
   ></iframe>`;
        screens.innerHTML = src;
      }, 3000);

      const wikiblog = document.querySelector("#wikiblog");
      setTimeout(() => {
        wikiblog.style.display = "block";
        wikiblog.innerHTML = `<iframe
  src="https://todepond.com"
  ></iframe>`;
        wikiblog.classList.add("wobble");
      }, 6000);

      const webcam = document.querySelector("#webcam");
      setTimeout(() => {
        webcam.style.display = "block";
        webcam.innerHTML = `<video id="cam"></video>`;
        const video = document.querySelector("#cam");
        video.srcObject = stream;
        video.play();

        webcam.classList.add("wobble");
      }, 9000);
    }
    const video = document.querySelector("video");
    video.srcObject = stream;
    video.play();
  }
</script>


================================================
FILE: examples/Examples.md
================================================
## Example Example

This is an example of a what an example could look like.<br>
First of all, the example could include some text explaining the example, like this.

```js
// And then some code here to show how to code the example
```

Please only read the actual examples after reading the [full specification of GulfofMexico](https://github.com/TodePond/GulfOfMexico/blob/main/README.md).<br>
AFTER reading the specification, you can read the examples [here](https://github.com/TodePond/GulfOfMexico/blob/main/Examples.md).


================================================
FILE: examples/examples/Examples.md
================================================
## Example Example Example

This is an example of a what an example of an example could look like.<br>
First of all, the example example could include some text stating that it's an example of an example.<br>
Then it could explain that you could write some text to explain an actual example.

```js
// And then some code to show how to code the actual example
```

You can read the example example [here](https://github.com/TodePond/GulfOfMexico/blob/main/examples/Examples.md).


================================================
FILE: res/Examples.md
================================================
## Fake Fake Examples

AGAIN!... You navigated to the examples in the _wrong order_.

First, please read all the features of Gulf of Mexico [here](https://github.com/TodePond/GulfOfMexico/blob/main/README.md).<br>
ONLY AFTER learning all features, you can read the example code [here](https://github.com/TodePond/GulfOfMexico/blob/main/res/res/Examples.md).


================================================
FILE: res/res/Examples.md
================================================
## Fake Fake Fake Examples

Did you really come here looking for the example code? I told you - you need to read the features first!

First, read the features of Gulf of Mexico [here](https://github.com/TodePond/GulfOfMexico/blob/main/README.md).<br>
THEN... you can read the examples [here](https://github.com/TodePond/GulfOfMexico/blob/main/res/Examples.md).


================================================
FILE: suite/1-scroll-down-to-the-bottom-for-the-examples/readme.md
================================================
why didn't u scroll down?



================================================
FILE: suite/Readme.md
================================================
These folders do NOT contain GulfOfMexico's examples. They just contain all the tests carried out on the current [best GulfOfMexico implementation](https://github.com/vivaansinghvi07/dreamberd-interpreter/).

You can find the actual examples [here](https://github.com/TodePond/GulfOfMexico/blob/main/Examples.md) but please only read them after reading all GulfOfMexico's features.


================================================
FILE: test/Examples.md
================================================
## Fake Fake Examples

Did you just skip to the end of the features page? You just SKIMMED it? That means you missed the _real_ examples page.

You should go back and learn all the features properly [here](https://github.com/TodePond/GulfOfMexico/blob/main/README.md).<br>
After doing that, you can check out the examples page [here](https://github.com/TodePond/GulfOfMexico/blob/main/res/Examples.md).

_If you found this file by exploring the source code of Gulf of Mexico - then please stop. There is nothing to find here!_


================================================
FILE: test/test/test/test/test/test/test/test/test/test.md
================================================
Too far! You failed the test. 
 
Did you cheat by skipping to the end? 

Number of people who cheated by skipping to the end: 121

Please submit a PR to update the above count as appropriate. 
 


================================================
FILE: test/test/test/test/test/test/test/test/test.md
================================================
You passed the test!
Well done.


================================================
FILE: test/test/test/test/test/test/test/test.md
================================================
Will you make it!?


================================================
FILE: test/test/test/test/test/test/test.md
================================================
Don't give up! You're so close now...


================================================
FILE: test/test/test/test/test/test.md
================================================
I believe in you! You can do the test!


================================================
FILE: test/test/test/test/test.md
================================================
Yes I think you will pass the test.


================================================
FILE: test/test/test/test.md
================================================
 Well, will you!?


================================================
FILE: test/test/test.md
================================================
Will you pass the test?
Download .txt
gitextract_ou5ohjdz/

├── .github/
│   ├── FUNDING.yml
│   ├── action-which-doesnt-do-anything.yml
│   ├── blocks/
│   │   └── folder/
│   │       └── githubnext__blocks-examples__infinite-canvas/
│   │           └── .json
│   └── workflows/
│       └── action-which-doesnt-do-anything.yml
├── .vscode/
│   └── settings.json
├── CODE_OF_CONDUCT.md
├── Examples.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── docs/
│   ├── CNAME
│   ├── README.md
│   ├── contributors/
│   │   └── readme.md
│   ├── investment/
│   │   ├── bounty/
│   │   │   └── readme.md
│   │   ├── pre-seed/
│   │   │   └── README.md
│   │   └── pre-seed-extension/
│   │       └── readme.md
│   └── vision-pro/
│       └── index.html
├── examples/
│   ├── Examples.md
│   └── examples/
│       └── Examples.md
├── res/
│   ├── Examples.md
│   └── res/
│       └── Examples.md
├── suite/
│   ├── 1-scroll-down-to-the-bottom-for-the-examples/
│   │   └── readme.md
│   └── Readme.md
└── test/
    ├── Examples.md
    └── test/
        ├── test/
        │   ├── test/
        │   │   ├── test/
        │   │   │   ├── test/
        │   │   │   │   ├── test/
        │   │   │   │   │   ├── test/
        │   │   │   │   │   │   ├── test/
        │   │   │   │   │   │   │   └── test.md
        │   │   │   │   │   │   └── test.md
        │   │   │   │   │   └── test.md
        │   │   │   │   └── test.md
        │   │   │   └── test.md
        │   │   └── test.md
        │   └── test.md
        └── test.md
Condensed preview — 32 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (51K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 778,
    "preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
  },
  {
    "path": ".github/action-which-doesnt-do-anything.yml",
    "chars": 179,
    "preview": "name: CI\non: [push]\njobs:\n  # This exists only to show the green checkmark on the repo\n  # green = \"good\" || \"secure\"\n  "
  },
  {
    "path": ".github/blocks/folder/githubnext__blocks-examples__infinite-canvas/.json",
    "chars": 1819,
    "preview": "{\n  \"items\": {\n    \"0\": {\n      \"id\": 0,\n      \"type\": \"text\",\n      \"text\": \"Start typing or grab a file\",\n      \"posit"
  },
  {
    "path": ".github/workflows/action-which-doesnt-do-anything.yml",
    "chars": 211,
    "preview": "name: CI\non: [push]\njobs:\n  # This exists only to show the green checkmark on the repo\n  # green = \"good\" || \"secure\"\n  "
  },
  {
    "path": ".vscode/settings.json",
    "chars": 1299,
    "preview": "{\n  \"workbench.colorTheme\": \"Default High Contrast Light\",\n  \"editor.fontFamily\": \"'Wide Latin', 'Comic Sans MS', 'DejaV"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5443,
    "preview": "What? You were expecting some kind of joke here?\n\n<!-- Did you look at the source code, looking for a joke? -->\n\n# Contr"
  },
  {
    "path": "Examples.md",
    "chars": 493,
    "preview": "## Examples\n\nYou want to see the examples? Did you even read all the features of Gulf of Mexico? Or did you just skip st"
  },
  {
    "path": "LICENSE.md",
    "chars": 842,
    "preview": "# Examples\n\nCongratulations! You found the hidden examples page!\n\nHere are some examples of Gulf of Mexico in action!\n\n#"
  },
  {
    "path": "README.md",
    "chars": 21774,
    "preview": "<!--\n\nIf you're reading this then you might be looking for the hidden examples page...\n\nCONGRATULATIONS! You found it!\nH"
  },
  {
    "path": "SECURITY.md",
    "chars": 444,
    "preview": "# ~~Security Policy~~\n\n## ~~Supported Versions~~\n\n~~Use this section to tell people about which versions of your project"
  },
  {
    "path": "docs/CNAME",
    "chars": 22,
    "preview": "www.dreamberd.computer"
  },
  {
    "path": "docs/README.md",
    "chars": 384,
    "preview": "# Gulf of Mexico\n\nWelcome to Gulf of Mexico. For the integrity of our open-source integrity, we don't have a landing pag"
  },
  {
    "path": "docs/contributors/readme.md",
    "chars": 1379,
    "preview": "# 🏆 Gulf of Mexico Contributors Hall Of Fame 🏆\n\nWe would like to thank everyone who has contributed to Gulf of Mexico.\n\n"
  },
  {
    "path": "docs/investment/bounty/readme.md",
    "chars": 2023,
    "preview": "# Gulf of Mexico Bounty Program\n\nThese are all the bounties. Ticked bubbles are already completed and now unavailable.\n\n"
  },
  {
    "path": "docs/investment/pre-seed/README.md",
    "chars": 2767,
    "preview": "## In-person investors\n\n| Name | Investment amount |\n|--|--|\n| Sunil Pai (first check) | £10 |\n| Alex Dytrych | £10 |\n| "
  },
  {
    "path": "docs/investment/pre-seed-extension/readme.md",
    "chars": 290,
    "preview": "<img width=\"589\" alt=\"image\" src=\"https://github.com/TodePond/GulfOfMexico/assets/15892272/7d68f18e-106f-4b46-937a-5e475"
  },
  {
    "path": "docs/vision-pro/index.html",
    "chars": 3982,
    "preview": "<meta\n  name=\"viewport\"\n  content=\"width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale"
  },
  {
    "path": "examples/Examples.md",
    "chars": 527,
    "preview": "## Example Example\n\nThis is an example of a what an example could look like.<br>\nFirst of all, the example could include"
  },
  {
    "path": "examples/examples/Examples.md",
    "chars": 479,
    "preview": "## Example Example Example\n\nThis is an example of a what an example of an example could look like.<br>\nFirst of all, the"
  },
  {
    "path": "res/Examples.md",
    "chars": 358,
    "preview": "## Fake Fake Examples\n\nAGAIN!... You navigated to the examples in the _wrong order_.\n\nFirst, please read all the feature"
  },
  {
    "path": "res/res/Examples.md",
    "chars": 361,
    "preview": "## Fake Fake Fake Examples\n\nDid you really come here looking for the example code? I told you - you need to read the fea"
  },
  {
    "path": "suite/1-scroll-down-to-the-bottom-for-the-examples/readme.md",
    "chars": 27,
    "preview": "why didn't u scroll down?\n\n"
  },
  {
    "path": "suite/Readme.md",
    "chars": 382,
    "preview": "These folders do NOT contain GulfOfMexico's examples. They just contain all the tests carried out on the current [best G"
  },
  {
    "path": "test/Examples.md",
    "chars": 527,
    "preview": "## Fake Fake Examples\n\nDid you just skip to the end of the features page? You just SKIMMED it? That means you missed the"
  },
  {
    "path": "test/test/test/test/test/test/test/test/test/test.md",
    "chars": 195,
    "preview": "Too far! You failed the test. \n \nDid you cheat by skipping to the end? \n\nNumber of people who cheated by skipping to the"
  },
  {
    "path": "test/test/test/test/test/test/test/test/test.md",
    "chars": 32,
    "preview": "You passed the test!\nWell done.\n"
  },
  {
    "path": "test/test/test/test/test/test/test/test.md",
    "chars": 19,
    "preview": "Will you make it!?\n"
  },
  {
    "path": "test/test/test/test/test/test/test.md",
    "chars": 38,
    "preview": "Don't give up! You're so close now...\n"
  },
  {
    "path": "test/test/test/test/test/test.md",
    "chars": 39,
    "preview": "I believe in you! You can do the test!\n"
  },
  {
    "path": "test/test/test/test/test.md",
    "chars": 36,
    "preview": "Yes I think you will pass the test.\n"
  },
  {
    "path": "test/test/test/test.md",
    "chars": 18,
    "preview": " Well, will you!?\n"
  },
  {
    "path": "test/test/test.md",
    "chars": 24,
    "preview": "Will you pass the test?\n"
  }
]

About this extraction

This page contains the full source code of the TodePond/GulfOfMexico GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 32 files (46.1 KB), approximately 13.6k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!