// C++ style: // no pointers except cell* // use long as the default integer type; it's always large enough to hold pointers #define unused __attribute__((unused)) #include #include #include #include #include #include #include using std::vector; #include using std::list; #include using std::stack; #include using std::pair; #include using std::tr1::unordered_map; #include using std::tr1::unordered_set; #include #include using std::string; const size_t NOT_FOUND = string::npos; #include using std::istream; using std::ostream; using std::iostream; using std::cin; using std::cout; using std::cerr; #include using std::stringstream; using std::istringstream; using std::ostringstream; #include using std::ifstream; using std::ofstream; // interpreter decls #include "type_list" #include "function_list" // interpreter impl #include "file_list" // interpreter tests #include "test_file_list"