tree-sitter/spec/compiler/compile_examples.cpp
2014-03-09 22:05:05 -07:00

28 lines
771 B
C++

#include "compiler_spec_helper.h"
#include "grammars/json.hpp"
#include "grammars/arithmetic.hpp"
#include <fstream>
static string src_dir() {
const char * dir = getenv("TREESITTER_DIR");
if (!dir) dir = getenv("PWD");
return dir;
}
START_TEST
describe("compiling the example grammars", []() {
string example_parser_dir = src_dir() + "/examples/parsers/";
it("compiles the arithmetic grammar", [&]() {
Grammar grammar = test_grammars::arithmetic();
ofstream(example_parser_dir + "arithmetic.c") << compile(grammar, "arithmetic");
});
it("compiles the json grammar", [&]() {
Grammar grammar = test_grammars::json();
ofstream(example_parser_dir + "json.c") << compile(grammar, "json");
});
});
END_TEST