View on GitHub

hyperbole

Compiler build using C++

hyperbole

Hyperbole is a tiny IDE, compiler, and interpreter for its own toy language (.hyp files), written in C++. It runs entirely in the terminal: open or create a source file, edit it in your $EDITOR, see how Hyperbole parses it, and run it — all from one menu-driven shell.

hyperbole hyperbole hyperbole hyperbole hyperbole hyperbole

Quick start

You need a C++ compiler (g++ or clang++). From the project root:

g++ hyperbole.cpp -o hyperbole   # build
./hyperbole                      # run

Or run it in the browser via Docker (serves the CLI over a web terminal on port 8080):

docker compose up --build

Using the IDE

The welcome screen offers three choices:

Key Action
O open or create a .hyp file
H help — browse language keywords
E exit

Opening files

After pressing O you get an interactive list of the programs in source/. Navigate it with the keyboard:

Key Action
/ (or k / j) move the selection
Enter open the highlighted file
+ new file… last entry — create a new file
Q / Esc go back to the main menu

The selected file opens in your $EDITOR (falling back to vim/vi/nano, then GUI editors). When you save and quit the editor, Hyperbole shows how it parsed your code, where:

Key Action
R refresh from disk
C compile & run
Q close the file

The .hyp language

A program lives between BEGIN: and END;. Statements end with ;. Core keywords:

Keyword Meaning
declare declare one or more variables
display print a variable or string literal
fetch read input from the keyboard into a variable
nextln move the cursor to the next line
loop … loopit repeat a block while a condition holds
check … checkit / otherwise … leaveit conditional branches

Example (source/first_n.hyp) — print 1..n:

BEGIN:
	declare i,n;
	i=1;
	display "Enter a number ";
	fetch n;
	loop i<=n:
		display i,nextln;
		i=i+1;
	loopit;
END;

More samples live in source/ (check_prime.hyp, pattern1.hyp, pattern2.hyp, sum_first_n.hyp).

Architecture

The IDE is a set of header-only modules wired together by hyperbole.cppide.h:

File Role
ide.h the menu shell / main loop
source.h file picker, editor launch, parsing into tokens, display
help.h loads keyword.txt and shows keyword help
execute.h interprets the parsed program
algo.h language logic & string/number helpers
variable.h the variable (memory) store
ui.h terminal presentation helpers (colors, boxes, rules)

A deeper walkthrough is in docs/:

  1. IDE Shell
  2. Source Code Handler
  3. Help System
  4. Execution Engine
  5. Language Logic Unit (ALGO)
  6. Variable Store

Contributing

Please read CONTRIBUTING.md for our code of conduct and the process for submitting pull requests.

Authors

License

Licensed under the MIT License — see LICENSE for details.