diff --git a/test/a.tbc b/test/a.tbc new file mode 100644 index 0000000..c77446a --- /dev/null +++ b/test/a.tbc @@ -0,0 +1,19 @@ +enter function_definition { + puts("ack"); + puts(tbtext); +} + +enter number_literal { + puts("++"); +} + +leave function_definition { + puts("ree"); +} + +%% +// @BAKE g++ $@ $(pkg-config --cflags --libs tree-sitter tree-sitter-c) -ggdb + +signed main() { + tbtraverse("int main() { return 0; }"); +} diff --git a/test/convert.tbsp b/test/convert.tbsp new file mode 100644 index 0000000..1854c84 --- /dev/null +++ b/test/convert.tbsp @@ -0,0 +1,85 @@ +%top { + #include <stdio.h> + + //#define TBDEBUG 1 + #define print puts + + int depth = 0; +} +%language markdown +%% + +enter section { + depth += 1; +} +leave section { + depth -= 1; +} + +enter atx_heading { + printf("<h%d>\n", depth); +} +leave atx_heading { + printf("</h%d>\n", depth); +} + +enter paragraph { + print("<p>"); +} +leave paragraph { + print("</p>\n"); +} + +enter list { + print("<ol>"); +} +leave list { + print("</ol>\n"); +} + +enter list_item { + print("<li>"); +} +leave list_item { + print("</li>\n"); +} + +enter fenced_code_block { + print("<pre>"); +} +leave fenced_code_block { + print("</pre>\n"); +} + +enter inline { + print(tbtext); +} +enter code_fence_content { + print(tbtext); +} + +%% +// @BAKE g++ $@ $(pkg-config --cflags --libs tree-sitter) -ltree-sitter-markdown -ggdb + +signed main(int argc, char * * argv) { + FILE* f = fopen(argv[1], "r"); + + fseek(f, 0, SEEK_END); + int flen = ftell(f); + rewind(f); + char fstr[flen+1]; + fstr[flen] = '\00'; + fread(fstr, flen, sizeof(char), f); + + fclose(f); + + printf("-- meta: %d chars\n", flen); + + print("<html>\n"); + print("<body>\n"); + + tbtraverse(fstr); + + print("</body>\n"); + print("</html>\n"); +} diff --git a/test/input.md b/test/input.md new file mode 100644 index 0000000..acd46bd --- /dev/null +++ b/test/input.md @@ -0,0 +1,12 @@ +# aaaaaaaaaaaaaa + +this is a list ++ asd ++ dasd ++ kasd + +```Python + print("test") +``` + +this **better** work