glsl_parser_test.c 704 B

123456789101112131415161718192021222324252627282930313233
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "glsl_parser.h"
  4. #include "glsl_ast.h"
  5. void error_cb(const char *str, int lineno, int first_col, int last_col)
  6. {
  7. fprintf(stderr, "GLSL parse error line %d(%d-%d): %s\n", lineno, first_col, last_col, str);
  8. }
  9. int main()
  10. {
  11. struct glsl_parse_context context;
  12. glsl_parse_context_init(&context);
  13. glsl_parse_set_error_cb(&context, error_cb);
  14. bool error = glsl_parse_file(&context, stdin);
  15. if (!error && context.root) {
  16. printf("\nAST tree:\n\n");
  17. glsl_ast_print(context.root, 0);
  18. printf("\nRegenerated GLSL:\n\n");
  19. char *out = glsl_ast_generate_glsl(context.root);
  20. printf("%s", out);
  21. free(out);
  22. }
  23. glsl_parse_context_destroy(&context);
  24. }