Barely Operational Garbage Utility Script
Go to file
2025-04-30 19:18:32 +10:00
.fleet Before splitting code into smaller bits 2025-04-24 17:50:47 +10:00
examples Make a readme, examples directory 2025-04-30 17:40:38 +10:00
src Rebrand 2025-04-30 13:38:33 +10:00
.gitignore and now we have variables 2025-04-23 19:57:16 +10:00
Bobfile Rebrand 2025-04-30 13:38:33 +10:00
bogus Make a readme, examples directory 2025-04-30 17:40:38 +10:00
LICENSE Add license 2025-04-30 19:18:32 +10:00
README.md Correct an oopsie 2025-04-30 17:55:56 +10:00
test.fish Make a readme, examples directory 2025-04-30 17:40:38 +10:00

Bogus - a statically typed, interpreted language

Bogus is a programming language with the intention of having the most readable code possible (without getting into things like block coding or LLM's). The interpreter is written in C++.

Bogus is NOT intended for production use at present. If you build your mission-critical application with Bogus, good luck. Things are going to break very often.

Compiling bogus

If you've got bob installed, make use of the supplied Bobfile by running bob. Otherwise, run:

g++ src/*.cpp -o bogus

Using bogus

Usage: bogus [file]
Options:
    --debug    Enable debug mode
    --help     Show this help message

Debug mode is useful for reporting bugs, which are going to be very frequent (of course). If something doesn't work and you're sure the syntax is right, create an issue in this repo.

Writing bogus

Print things:

println "Hello!";

Print things without a new line using print.

Set a variable:

let str myString "This is a string variable";

Note: Valid types are int (equivalent to C++ int), dec (equivalent to C++ double), str (equivalent to C++ string), and bool (equivalent to C++ bool)

Use a variable:

let int myNum 5;

println myNum;

Change a variable:

let int myNum 7;

myNum = 10;

myNum ++;
myNum --;

myNum += 3;
myNum -= 2;

Do some math:

println 9 + 10;

Get user input from the console:

let str userInput input;

println input;

Use an if statement to compare things:

let int myInt 4;
let int myOtherInt 3;

if myInt == myOtherInt {
    println "The variables are the same!";
}

myOtherInt = 4;

if myInt == myOtherInt {
    println "The variables are now the same after changing it";
}

More features will be added in future.

Planned features

  • Lists: It's a list of stuff. str will become a list of characters (meaning a chr type will be made).
  • while statements: Come on, we gotta have a Turing complete language!
  • File input/output: I feel this is going to be complex.

Far-off features

Note: These features are not guaranteed to come to fruition. I am very good at getting distracted by other things.

  • Functions
  • Network requests
  • Libraries and importing files
  • Webserver