Programming Language that compiles to 8 Bit Brainfuck https://headache.surge.sh
  • C 54.1%
  • Hare 20%
  • Yacc 7.4%
  • Swift 5.5%
  • Brainfuck 4.2%
  • Other 8.8%
Find a file
2022-11-03 15:59:52 +00:00
.github/workflows test runnable 2020-09-12 10:46:25 +01:00
examples square root bug fix 2021-04-08 17:34:37 +01:00
headers square root bug fix 2021-04-08 17:38:10 +01:00
HomebrewFormula Homebrew tap installation, pt 4 2020-01-14 15:53:35 -03:00
src readfilefast on header 2022-11-03 15:59:52 +00:00
syntax-highlight-vscode Block Comments 2020-10-05 15:16:45 +01:00
test fix test 2020-09-11 22:15:09 +01:00
.gitignore remove .exe and zips 2020-09-11 20:47:31 +01:00
.linguist.yml now it is black 2017-11-29 02:08:56 -02:00
LICENSE Initial commit 2017-06-01 00:17:38 -03:00
Makefile debug and lib configs 2022-10-05 23:15:21 +01:00
problems.txt missing entry that was resting in my computer 2019-02-05 17:27:11 -02:00
README.md Update README.md 2022-09-27 09:08:46 +01:00
valgrindline.txt merge local branch 2019-02-05 17:22:19 -02:00

Headache

Headache is a programming language that compiles to 8-Bit Brainfuck.

Documentation

For documentation, please visit Headache's wiki: https://github.com/LucasMW/Headache/wiki

Support Headache

Help Headache launch on Homebrew. This repository needs 50 stargazers to become a brew package.

Build

You may build the project by running make.

Install

Run make install and the include $HOME/.Headache/ in your PATH variable in order to enable hac and bfi in your shell.

Usage

Compiling headache (.ha) files

In order to compile headache (.ha) files to brainfuck, run:

./hac file.ha

It generates and executes a brainfuck file named a.bf.

Options
Lexical analyzer

To run a lexical analyzer, execute:

./hac -lex
Syntactical Analyzer

To run a syntactical analyzer, execute:

./hac -syntax
AST

To output the current program's AST, execute:

./hac -tree
Warning and errors checking

To check for errors and warnings without compiling, execute:

./hac -check

Tests

Execute make test to run the default tests.

Other test options

For testing only type checks, run:

make testchecks

For testing only the lexical scope, run:

make testlexical

For testing only the syntax scope, run:

make testsyntax

For testing only programs that are compiled and run successfully, run:

make testrunnable

Donation Addresses:

Support Headache with cryptocurrency:

  • BTC: 1NcdcAjkKj9ywiCfinwFi1W3QfsvFSFsAH
  • Doge: D5wEBGcwLeBSQvwnBckco1EvQQcuXCBvRj
  • LTC: Ldj6ax1CzdYFRbSiZjpCvcPoxQ2BvX42Kb
  • ZEC: t1PsMPGuoZfD5YwAgmyd3j2cb8siysxR9fE
  • Dash: Xt7qYtLiLx6mHR1fUeQVYiHgEbX7YNugM2
  • BCH: 1NCYSnFb44ybHtzwG51cUYWLa67PZdsREG
  • XMR: 4CTKuktQ8eQFriMu3xDALEawuu9iWQhFYffgffqgC3RHCWgcLGTG9oyNWgvLiAoDPpYUvsJmRkTAudGSXNqnRFsuT9LNU3Up81F2x3fzkj