[Mesa-dev] [PATCH 10/23] glsl/glcpp: Add a -d/--debug option to the standalone glcpp program

Carl Worth cworth at cworth.org
Thu Jun 26 15:19:10 PDT 2014


The verbose debug output from the parser is quite useful when debugging, and
having this available as a command-line option is much more convenient than
manually forcing this into the code when needed, (which is what I had been
doing for too long previously).
---
 src/glsl/glcpp/glcpp-parse.y | 2 ++
 src/glsl/glcpp/glcpp.c       | 6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
index 643c472..25c97e1 100644
--- a/src/glsl/glcpp/glcpp-parse.y
+++ b/src/glsl/glcpp/glcpp-parse.y
@@ -184,6 +184,8 @@ add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
 %left '*' '/' '%'
 %right UNARY
 
+%debug
+
 %%
 
 input:
diff --git a/src/glsl/glcpp/glcpp.c b/src/glsl/glcpp/glcpp.c
index 07b1500..ca18801 100644
--- a/src/glsl/glcpp/glcpp.c
+++ b/src/glsl/glcpp/glcpp.c
@@ -124,6 +124,7 @@ enum {
 const static struct option
 long_options[] = {
 	{"disable-line-continuations", no_argument, 0, DISABLE_LINE_CONTINUATIONS_OPT },
+        {"debug",                      no_argument, 0, 'd'},
 	{0,                            0,           0, 0 }
 };
 
@@ -140,11 +141,14 @@ main (int argc, char *argv[])
 
 	init_fake_gl_context (&gl_ctx);
 
-	while ((c = getopt_long(argc, argv, "", long_options, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "d", long_options, NULL)) != -1) {
 		switch (c) {
 		case DISABLE_LINE_CONTINUATIONS_OPT:
 			gl_ctx.Const.DisableGLSLLineContinuations = true;
 			break;
+                case 'd':
+			glcpp_parser_debug = 1;
+			break;
 		default:
 			usage ();
 			exit (1);
-- 
2.0.0



More information about the mesa-dev mailing list