2020-10-01 22:13:11 +05:30
2020-10-01 22:03:09 +05:30
2020-10-01 19:46:39 +05:30
2020-10-01 19:33:47 +05:30
2020-10-01 22:03:09 +05:30
2020-10-01 22:03:09 +05:30
2020-09-30 01:20:58 +05:30
2020-09-30 01:20:58 +05:30
2020-10-01 22:03:09 +05:30
2020-10-01 22:13:11 +05:30

bfc (*.bfe)

An extension of a language that shall not be named

Requires:

  1. cxxopts -> v2.2.1
  2. antlr4

HelloWorld.bfe

-[-7>+<]>-.-[->+5<]>++.+7..+3.[-3>+<]>-5.--[->+4<]>-.-8.+3.-6.-8.

Usage

./bfc -h #Help
./bfc prog.bfe #Execute
./bfc prog.bfe -t #Translate file to bf

Syntax

Basic

,. IO
<> Address manipulation
+- Value manipulation
[] Looping construct

Comments

// - Single Line

/* */ - Multi Line

Repeats

<symbol><number>
(<symbols>)<number>

Eg.

+65. //prints A
>
(+65>)3 //stores AAA
(<.)3   //prints AAA

Setup oddities (dev)

  1. Copy antlr4's cpp libs to ./libs/antlr4. (Please take care that the include folder points straight to the files not to antlr-runtime)
  2. Copy antlr-4.8-complete.jar to ./thirdparty/antlr.
  3. Generate parsers to ./libs/generated or use VSCode with the ANTLR extension.

Todo (Tentative)

  • Grammar
    • Number shorthand
    • Loop statements
    • Shorthand segments
  • Processing
    • Translate to bf
    • Execute results
Description
A Parser and interpreter for BFE, a syntactic superset of bf
Readme 2.6 MiB
Languages
C++ 97.2%
ANTLR 1.5%
CMake 1.3%