view interps/boof/main.cpp @ 11686:10d612def8ee draft

<b_jonas> perl -e for $e ("i","u"){ $f="bin/date$e"; open my$i,"<",$f or die "error open $f r"; local$/; $s=<$i> or die; $s=~s/"\\+%Y/\\${d:+-d "\\$d"} $&/ or die; open $o,">",$f or die "error open $f w: $!"; print $o $s or die; close $o or die; print "OK $f\\n" }
author HackEso <hackeso@esolangs.org>
date Fri, 04 Jan 2019 21:29:08 +0000
parents 859f9b4339e6
children
line wrap: on
line source

/* boolfuck.cpp -- an implementation of the Boolfuck programming
 * language, invented by Sam Hughes (not that I'm the first).  This
 * implementation is by Sam Hughes.  Not designed for hyperefficiency
 * or anything :) -- boof@samuelhughes.com */
 
/* For the rest of this document, I recommend considering the word "fuck" to be
 * non-profane. */

/* See also "smallfuck", which was apparently devised around 2002, and
 * of course, "brainfuck", which has been around for a while. */

#include "boof.h"

#include <iostream>

#include <string>
using std::string;

#include <fstream>


int main(int argc, char ** argv)
{
    if (argc != 2) {
	std::cerr << "Use one argument.  Not wimping out, are you?\n";
	return 1;
    }

    std::ifstream fin(argv[1]);

    if (! fin) {
	std::cerr << "Error opening file.  Did you even make a file?\n";
	return 1;
    }

    boofer runner(fin);
    runner.execute(std::cin, std::cout);

    /* These variable names are actually as descriptive as possible. */

    return 0;
}