🐱 HQ9C is a very serioues compiler for HQ9+, it meta-compiles with Rust.

Overview

HQ9+ Compiler

HQ9c (Or HQ9+ Compiler) is a blockchain-based NFT minting AI machine-learning cloud infraestructure for the compiling of the great programming language HQ9+ written in Rust using a C# FFI written in ASM.

Unlike other tools I made, this actually works! And it produces an executable through the Rust compiler to LLVM, then to C, then to Python, finally to Java 🤮 bytecode and to an executable.

How does it work, master Shifu?

The highly complicated HQ9+ programming language isn't easy to understand, but I'll do my best to explain it in a way your mortal mind can understand.

The HQ9+ programming language has 4 characters, and all other characters (included their lowercase versions) are treated as characters.

  • H
  • Q
  • 9 (My favourite)
  • +

H

The "H" character is powerful, one could say almost as powerful as the divine letter H. It houses the unlimited power of the 12 character phrase "Hello world!".

We all learned programming with the mythical "hi mom im learning scratch" and this reminds us of those times, long time before all these block chain based JS/TS blazingly fast AI machine learning API frameworks. ugh

Yes. "H" prints "Hello world!" to the standard output.

Q

Even tho not as powerful as H, Q (for queen ) also can have great powers, even curing alzheimer's, reminding you of your highly complicated and complex HQ9+ source code. This can be used as to flex to your friends that you made that whole code yourself, without showing your IDE is Eclipse 🤮 . If you're having problems with this, understand that this is an epidemic, and you can enter Eclipse's rehab here.

Your thoughts are, indeed, correct. "Q" prints the source code to the standard output.

9

The nineth number (actually, eighth) is the most complex command for the compiler, and the most complex command for you. This is one of the new additions of the HQ9+22 spec.

9 prints the whole. cannonical lyrics to 99 Bottles of Beer on the Wall. That song where you violently destroy your wall by hitting it with rock-hard beer bottles. Just like a pirate.

Attention! You'll need it to understand the following paragraph.

There's a secret compiler option, that can only be found in the secret help menu. I'll not tell you where this menu lies, because that's your problem. ¯\(ツ)

With that option, you can change the numbe r of +bottles................

sorry my cat shat on the keyboard while I was typing.

So, with that option you could change the number of bottles, that, indeed, are thrown to the wall in order to destroy it like a caveman.

Then you can go climb a couply of trees just to reinforce your new caveman state.

+

The + operator... It brings me so much joy of my infantile years, when I wasn't old and decrepit, almost dead.

This is the first thing we learn in school (I think), and it's so important in our daily lives, like... To be honest I just let the machine do its job.

Some of you are greatly utterly incorrect about the use of the accumulator, I can even cite this Stack Overflow response.

It's a joke.

No Jörg W Mittag from Stack Overflow. It's not a joke, the accumulator is a code optimization nexus in which code lie between life and dead.

No, the accumulator can't be printed, but that doesn't make it a less valuable thing, take into account that this "joke" is a 25% of our features.

Even more than that. I could intercept the very specific RAM address of the accumulator and read its value while the program takes place. Then what?! EH? Jörg W Mittag from Stack Overflow?!

Installation

I hope you read all of the above information, because it's a highly valuable read, that I left just for you.

The way to install is to:

  1. Clone the repo:
git clone https://github.com/blyxyas/hq9c.git
  1. Build the project with Cargo.

I know, this can be a little be challenging, I'll take your hand for this process...

Execute the following command:

sh ./makemakefile

This sh ./makemakefile will make the Makefile file to make the project, finally we can execute the makefile with make.

make

This will create the executable into .target/release/hq9c Now you could move the executable to /usr/bin, or maybe you just want to use it a local project and not on a global scale (Thought it's highly recommended).

Usage

To get the help message use the following command:

hq9c --help

To compile a file use:

hq9c -o <OUTPUTFILE> <INPUTFILE>
hq9c -o nasa_artemis_source nasa_artemis_source.hq9p

You can also change some parameters, and it will vastly improve the experience.

hq9c -o nasa_artemis_source -b 419 nasa_artemis_source.hq9p

(Will change the number of bottles thrown at the wall)

You can use any extension you want, but for the HQ9+22 spec. The recommended extension is hq9p or hq9

Inspiration

I want to thank my family for this genious idea that I had. I also want to thank my giant fat cat Keepy and my mini skinny cat Mina, and, how'd I forget, I really want to thank the creator of this marvelous language Cliff L. Biffle. and this another implementation (this time it's an interpreter.) by Lucas Larson for giving me the idea for creating a compiler.

This is all a joke, don't take it too serious. Tested with Arch Linux.

You might also like...
Tools - The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.
Tools - The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.

Rome is currently being rewritten in Rust. Read more about it in our latest blog post. The documentation below is out of date and available for poster

Minimal Pandoc compiler - HTML

Minimal Pandoc compiler - HTML

Compiler for an "extended" version of the Mindustry logic language

Minblur Compiler Minblur is a compiler for a superset of "logic" programming language in the game Mindustry. It helps reduce code-duplication, making

An awesome language and its compiler.

Calocom Project Build Build with cargo-make Just run cargo make in the root directory of the project. Or, if you want to build it in release mode, run

Open-source compiler for the Papyrus scripting language of Bethesda games.

Open Papyrus Compiler This project is still WORK IN PROGRESS. If you have any feature requests, head over to the Issues tab and describe your needs. Y

Rust-advent - Learning Rust by solving advent of code challenges (Streaming live on Twitch every Monday)
Rust-advent - Learning Rust by solving advent of code challenges (Streaming live on Twitch every Monday)

Rust advent 🦀 🐚 Learning Rust by implementing solutions for Advent of Code problems. 🎥 HEY, we are live-streaming our attempts to solve the exercis

Rust-clippy - A bunch of lints to catch common mistakes and improve your Rust code

Clippy A collection of lints to catch common mistakes and improve your Rust code. There are over 450 lints included in this crate! Lints are divided i

Rust-battery - Rust crate providing cross-platform information about the notebook batteries.

battery Rust crate providing cross-platform information about the notebook batteries. Table of contents Overview Supported platforms Install Examples

A Rust-based shell script to create a folder structure to use for a single class every semester. Mostly an excuse to use Rust.

A Rust Course Folder Shell Script PROJECT IN PROGRESS (Spring 2022) When completed, script will create a folder structure of the following schema: [ro

Owner
Alex
✌️ Hi! (she/her) FYI I have two cats, they're both cute, I would send a picture if I knew how this "interweb" thing worked.
Alex
a universal meta-transliterator that can decipher arbitrary encoding schemas, built in pure Rust

transliterati a universal meta-transliterator that can decipher arbitrary encoding schemas, built in pure Rust what does it do? You give it this: Барл

Catherine Koshka 5 Sep 29, 2022
A very fast implementation of tldr in Rust

A very fast implementation of tldr in Rust: Simplified, example based and community-driven man pages.

Danilo Bargen 2.5k Sep 22, 2022
A cli based pastebin in Rust, but very insecure

pasta A cli based pastebin in Rust, but very insecure Use nightly toolchain to build rustup override set nightly When this program is running, you can

Snehit Sah 3 Mar 25, 2022
Learning Rust through Advent of Code 2021 - probably not very clean!

AoC 2021 ======== I'm using AoC2021 as an excuse to learn Rust (and maybe some other languages). Please do *not* use this repository as a good source

Andrew Zhu 0 Dec 8, 2021
A very simple third-party cargo subcommand to execute a custom command

cargo-x A very simple third-party cargo subcommand to execute a custom command Usage install cargo-x cargo install cargo-x or upgrade cargo install -

刘冲 8 May 5, 2022
A very opinionated, zero-configuration shell prompt

A very opinionated, zero-configuration shell prompt

amy null 8 Nov 4, 2021
Fls - Ferris-LS, a very bad LS replacement. Besides that, proves that I suck at clean & good code.

FLS A handy ls remake, purely for learning. Why FLS? There's no reason, at all, don't use it. I just want to learn Rust :D Usage Flags: -i = Use icons

florida 6 Jan 24, 2022
dlfile is a very simple, straightforward CLI to download a file

dlfile dlfile is a very simple, straightforward CLI to download a file, except it... Only downloads over HTTPS Requires TLS 1.2 or higher Executes in

Colin 2 Feb 7, 2022
Vyper-Compiler Version Manager in Rust

Vyper Compiler Version Manager in Rust Install $ cargo install --git https://github.com/storming0x/vvm-rs --locked vvm-rs Install from source $ git c

Storming0x 24 Aug 22, 2022
Discord-to-Cohost compiler written in Rust using Tera

Cohoard - Post formatted chatlogs to Cohost! Cohoard is a tool for turning chatlogs into formatted posts on Cohost. You can use Cohoard to easily form

Aaron Kofsky 8 Aug 7, 2022