Module Name: src Committed By: rillig Date: Fri Oct 29 21:22:06 UTC 2021
Modified Files: src/usr.bin/indent: lexi.c Log Message: indent: add detailed debug logging for the parser state To generate a diff of this commit: cvs rdiff -u -r1.111 -r1.112 src/usr.bin/indent/lexi.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/lexi.c diff -u src/usr.bin/indent/lexi.c:1.111 src/usr.bin/indent/lexi.c:1.112 --- src/usr.bin/indent/lexi.c:1.111 Fri Oct 29 20:27:42 2021 +++ src/usr.bin/indent/lexi.c Fri Oct 29 21:22:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.111 2021/10/29 20:27:42 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.112 2021/10/29 21:22:05 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -43,7 +43,7 @@ static char sccsid[] = "@(#)lexi.c 8.1 ( #include <sys/cdefs.h> #if defined(__NetBSD__) -__RCSID("$NetBSD: lexi.c,v 1.111 2021/10/29 20:27:42 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.112 2021/10/29 21:22:05 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $"); #endif @@ -294,6 +294,15 @@ debug_print_buf(const char *name, const } } +#define debug_ps_bool(name) \ + debug_println("[%c] " #name, ps.name ? 'x' : ' ') +#define debug_ps_int(name) \ + if (ps.name != 0) \ + debug_println("%3d " #name, ps.name) +#define debug_ps_keyword(name) \ + if (ps.name != kw_0) \ + debug_println(" " #name " = %s", kw_name(ps.name)) + static void debug_lexi(lexer_symbol lsym) { @@ -303,12 +312,45 @@ debug_lexi(lexer_symbol lsym) debug_print_buf("code", &code); debug_print_buf("comment", &com); debug_printf("lexi returns '%s'", lsym_name(lsym)); - if (ps.curr_keyword != kw_0) - debug_printf(" keyword '%s'", kw_name(ps.curr_keyword)); - if (ps.prev_keyword != kw_0) - debug_printf(" previous keyword '%s'", kw_name(ps.prev_keyword)); - debug_println(""); - debug_print_buf("token", &token); + debug_vis_range(" \"", token.s, token.e, "\"\n"); + + // prev_token + debug_ps_bool(prev_newline); + debug_ps_bool(prev_col_1); + debug_ps_keyword(prev_keyword); + debug_ps_keyword(curr_keyword); + debug_ps_bool(next_unary); + // procname + debug_ps_bool(want_blank); + debug_ps_int(paren_level); + debug_ps_int(p_l_follow); + // paren_indents + debug_ps_int(cast_mask); + debug_ps_int(not_cast_mask); + + debug_ps_int(comment_delta); + debug_ps_int(n_comment_delta); + debug_ps_int(com_ind); + + debug_ps_bool(block_init); + debug_ps_int(block_init_level); + debug_ps_bool(init_or_struct); + + debug_ps_int(ind_level); + debug_ps_int(ind_level_follow); + + debug_ps_int(decl_nest); + debug_ps_bool(decl_on_line); + debug_ps_bool(in_decl); + debug_ps_int(just_saw_decl); + debug_ps_bool(in_parameter_declaration); + debug_ps_bool(decl_indent_done); + + debug_ps_bool(in_stmt); + debug_ps_bool(ind_stmt); + debug_ps_bool(is_case_label); + + debug_ps_bool(search_stmt); } #endif