Module Name:    src
Committed By:   rillig
Date:           Tue May 23 12:12:29 UTC 2023

Modified Files:
        src/usr.bin/indent: debug.c indent.c indent.h io.c lexi.c parse.c

Log Message:
indent: split debug output into paragraphs

The paragraphs separate the different processing steps: getting a token
from the lexer, processing the token, updating the parser state, sending
a finished line to the output.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/indent/debug.c
cvs rdiff -u -r1.307 -r1.308 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.158 -r1.159 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.185 -r1.186 src/usr.bin/indent/io.c
cvs rdiff -u -r1.204 -r1.205 src/usr.bin/indent/lexi.c
cvs rdiff -u -r1.61 -r1.62 src/usr.bin/indent/parse.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/indent/debug.c
diff -u src/usr.bin/indent/debug.c:1.21 src/usr.bin/indent/debug.c:1.22
--- src/usr.bin/indent/debug.c:1.21	Tue May 23 06:35:01 2023
+++ src/usr.bin/indent/debug.c	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: debug.c,v 1.21 2023/05/23 06:35:01 rillig Exp $	*/
+/*	$NetBSD: debug.c,v 1.22 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: debug.c,v 1.21 2023/05/23 06:35:01 rillig Exp $");
+__RCSID("$NetBSD: debug.c,v 1.22 2023/05/23 12:12:29 rillig Exp $");
 
 #include <stdarg.h>
 
@@ -134,6 +134,8 @@ static const char *const decl_ptr_name[]
 	"other",
 };
 
+static unsigned wrote_newlines;
+
 void
 debug_printf(const char *fmt, ...)
 {
@@ -143,6 +145,7 @@ debug_printf(const char *fmt, ...)
 	va_start(ap, fmt);
 	vfprintf(f, fmt, ap);
 	va_end(ap);
+	wrote_newlines = 0;
 }
 
 void
@@ -155,6 +158,14 @@ debug_println(const char *fmt, ...)
 	vfprintf(f, fmt, ap);
 	va_end(ap);
 	fprintf(f, "\n");
+	wrote_newlines = fmt[0] == '\0' ? wrote_newlines + 1 : 1;
+}
+
+void
+debug_blank_line(void)
+{
+	while (wrote_newlines < 2)
+		debug_println("");
 }
 
 void
@@ -182,26 +193,19 @@ static void
 debug_print_buf(const char *name, const struct buffer *buf)
 {
 	if (buf->len > 0) {
-		debug_printf("%s ", name);
-		debug_vis_range("\"", buf->st, buf->len, "\"\n");
+		debug_printf(" %s ", name);
+		debug_vis_range("\"", buf->st, buf->len, "\"");
 	}
 }
 
 void
 debug_buffers(void)
 {
-	if (lab.len > 0) {
-		debug_printf(" label ");
-		debug_vis_range("\"", lab.st, lab.len, "\"");
-	}
-	if (code.len > 0) {
-		debug_printf(" code ");
-		debug_vis_range("\"", code.st, code.len, "\"");
-	}
-	if (com.len > 0) {
-		debug_printf(" comment ");
-		debug_vis_range("\"", com.st, com.len, "\"");
-	}
+	debug_print_buf("token", &token);
+	debug_print_buf("label", &lab);
+	debug_print_buf("code", &code);
+	debug_print_buf("comment", &com);
+	debug_println("");
 }
 
 #define debug_ps_bool(name) \
@@ -280,18 +284,11 @@ debug_ps_di_stack(const struct parser_st
 }
 
 void
-debug_parser_state(lexer_symbol lsym)
+debug_parser_state(void)
 {
 	static struct parser_state prev_ps;
 
-	debug_println("");
-	debug_printf("line %d: %s", line_no, lsym_name[lsym]);
-	debug_vis_range(" \"", token.st, token.len, "\"\n");
-
-	debug_print_buf("label", &lab);
-	debug_print_buf("code", &code);
-	debug_print_buf("comment", &com);
-
+	debug_blank_line();
 	debug_println("           ps.prev_token = %s",
 	    lsym_name[ps.prev_token]);
 	debug_ps_bool(curr_col_1);
@@ -337,6 +334,7 @@ debug_parser_state(lexer_symbol lsym)
 
 	debug_ps_enum(spaced_expr_psym, psym_name);
 	debug_ps_int(quest_level);
+	debug_blank_line();
 
 	prev_ps = ps;
 }

Index: src/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.307 src/usr.bin/indent/indent.c:1.308
--- src/usr.bin/indent/indent.c:1.307	Tue May 23 11:37:23 2023
+++ src/usr.bin/indent/indent.c	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.307 2023/05/23 11:37:23 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.308 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: indent.c,v 1.307 2023/05/23 11:37:23 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.308 2023/05/23 12:12:29 rillig Exp $");
 
 #include <sys/param.h>
 #include <err.h>
@@ -1146,9 +1146,16 @@ process_lsym(lexer_symbol lsym)
 static int
 indent(void)
 {
+	debug_parser_state();
+
 	for (;;) {		/* loop until we reach eof */
 		lexer_symbol lsym = lexi();
 
+		debug_blank_line();
+		debug_printf("line %d: %s", line_no, lsym_name[lsym]);
+		debug_buffers();
+		debug_blank_line();
+
 		if (lsym == lsym_eof)
 			return process_eof();
 
@@ -1173,6 +1180,8 @@ indent(void)
 
 		process_lsym(lsym);
 
+		debug_parser_state();
+
 		if (lsym != lsym_comment && lsym != lsym_newline &&
 		    lsym != lsym_preprocessing)
 			ps.prev_token = lsym;

Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.158 src/usr.bin/indent/indent.h:1.159
--- src/usr.bin/indent/indent.h:1.158	Tue May 23 06:35:01 2023
+++ src/usr.bin/indent/indent.h	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.h,v 1.158 2023/05/23 06:35:01 rillig Exp $	*/
+/*	$NetBSD: indent.h,v 1.159 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -440,8 +440,9 @@ extern struct output_state {
 #ifdef debug
 void debug_printf(const char *, ...) __printflike(1, 2);
 void debug_println(const char *, ...) __printflike(1, 2);
+void debug_blank_line(void);
 void debug_vis_range(const char *, const char *, size_t, const char *);
-void debug_parser_state(lexer_symbol);
+void debug_parser_state(void);
 void debug_parse_stack(const char *);
 void debug_buffers(void);
 extern const char *const lsym_name[];
@@ -452,8 +453,9 @@ extern const char *const line_kind_name[
 #define debug_noop() do { } while (false)
 #define	debug_printf(fmt, ...) debug_noop()
 #define	debug_println(fmt, ...) debug_noop()
+#define debug_blank_line() debug_noop()
 #define	debug_vis_range(prefix, s, e, suffix) debug_noop()
-#define	debug_parser_state(lsym) debug_noop()
+#define	debug_parser_state() debug_noop()
 #define	debug_parse_stack(situation) debug_noop()
 #define	debug_buffers() debug_noop()
 #endif

Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.185 src/usr.bin/indent/io.c:1.186
--- src/usr.bin/indent/io.c:1.185	Mon May 22 10:28:59 2023
+++ src/usr.bin/indent/io.c	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: io.c,v 1.185 2023/05/22 10:28:59 rillig Exp $	*/
+/*	$NetBSD: io.c,v 1.186 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: io.c,v 1.185 2023/05/22 10:28:59 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.186 2023/05/23 12:12:29 rillig Exp $");
 
 #include <stdio.h>
 
@@ -255,9 +255,9 @@ output_line_comment(int ind)
 void
 output_line(void)
 {
+	debug_blank_line();
 	debug_printf("%s", __func__);
 	debug_buffers();
-	debug_println("");
 
 	ps.is_function_definition = false;
 

Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.204 src/usr.bin/indent/lexi.c:1.205
--- src/usr.bin/indent/lexi.c:1.204	Tue May 23 06:35:01 2023
+++ src/usr.bin/indent/lexi.c	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: lexi.c,v 1.204 2023/05/23 06:35:01 rillig Exp $	*/
+/*	$NetBSD: lexi.c,v 1.205 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: lexi.c,v 1.204 2023/05/23 06:35:01 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.205 2023/05/23 12:12:29 rillig Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -547,10 +547,8 @@ lexi(void)
 	}
 
 	lexer_symbol alnum_lsym = lexi_alnum();
-	if (alnum_lsym != lsym_eof) {
-		debug_parser_state(alnum_lsym);
+	if (alnum_lsym != lsym_eof)
 		return alnum_lsym;
-	}
 
 	/* Scan a non-alphanumeric token */
 
@@ -682,7 +680,6 @@ lexi(void)
 
 	ps.next_unary = next_unary;
 
-	debug_parser_state(lsym);
 	return lsym;
 }
 

Index: src/usr.bin/indent/parse.c
diff -u src/usr.bin/indent/parse.c:1.61 src/usr.bin/indent/parse.c:1.62
--- src/usr.bin/indent/parse.c:1.61	Thu May 18 05:33:27 2023
+++ src/usr.bin/indent/parse.c	Tue May 23 12:12:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.61 2023/05/18 05:33:27 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.62 2023/05/23 12:12:29 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: parse.c,v 1.61 2023/05/18 05:33:27 rillig Exp $");
+__RCSID("$NetBSD: parse.c,v 1.62 2023/05/23 12:12:29 rillig Exp $");
 
 #include <err.h>
 
@@ -63,6 +63,7 @@ decl_level(void)
 void
 parse(parser_symbol psym)
 {
+	debug_blank_line();
 	debug_println("parse token: %s", psym_name[psym]);
 
 	if (psym != psym_else) {

Reply via email to