The verb form of "accreditation" is "accredit"
[unix-history] / usr / src / usr.bin / indent / indent_globs.h
index 34f1c5a..2730839 100644 (file)
@@ -1,6 +1,12 @@
-/*     indent_globs.h  4.2     83/08/11        */
-
 /*
 /*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ *
+ *     @(#)indent_globs.h      5.4 (Berkeley) %G%
+ */
+
+/*-
 
                          Copyright (C) 1976
                                by the
 
                          Copyright (C) 1976
                                by the
@@ -23,64 +29,45 @@ GLOBALS:
 
 FUNCTIONS:
        None
 
 FUNCTIONS:
        None
-*/\f
-#define bufsize 600/* size of internal buffers */
-#define inp_bufs 512
-                  /* size of input buffer */
-#define sc_size 5000
-                  /* size of save_com buffer */
-#define label_offset 2
-                  /* number of levels a label is placed to left of code 
-                  */
+*/
 
 
-#define d_ljust 0  /* default for ljust_decl */
-#define d_max_col 75
-                  /* default for max_col */
-#define d_com_ind 33
-                  /* default com_ind */
-#define d_ind_size 4
-                  /* default ind_size */
-#define d_verbose 0/* default verbose */
-#define d_unindent 1
-                  /* default value for unindent_displace */
-#define d_leave_comma 0
-                  /* default value for leave_comma */
-#define d_btype_2 1/* default value for btype_2 */
+#include <stdio.h>
+
+#define BACKSLASH '\\'
+#define bufsize 600       /* size of internal buffers */
+#define inp_bufs 600      /* size of input buffer */
+#define sc_size 5000      /* size of save_com buffer */
+#define label_offset 2    /* number of levels a label is placed to left of code 
+                  */
 
 #define tabsize 8  /* the size of a tab */
 
 #define tabsize 8  /* the size of a tab */
-#define tabmask 0177770
-                  /* mask used when figuring length of lines with tabs */
+#define tabmask 0177770           /* mask used when figuring length of lines with tabs */
 
 
 #define false 0
 #define true  1
 
 
 
 
 #define false 0
 #define true  1
 
 
-int     input;     /* the fid for the input file */
-int     output;    /* the fid for the output file */
+FILE   *input;     /* the fid for the input file */
+FILE   *output;    /* the output file */
 
 
-char    labbuf[bufsize];
-                  /* buffer for label */
+char    labbuf[bufsize];       /* buffer for label */
 char   *s_lab;     /* start ... */
 char   *e_lab;     /* .. and end of stored label */
 
 char   *s_lab;     /* start ... */
 char   *e_lab;     /* .. and end of stored label */
 
-char    codebuf[bufsize];
-                  /* buffer for code section */
+char    codebuf[bufsize];      /* buffer for code section */
 char   *s_code;    /* start ... */
 char   *e_code;    /* .. and end of stored code */
 
 char   *s_code;    /* start ... */
 char   *e_code;    /* .. and end of stored code */
 
-char    combuf[bufsize];
-                  /* buffer for comments */
+char    combuf[bufsize];       /* buffer for comments */
 char   *s_com;     /* start ... */
 char   *e_com;     /* ... and end of stored comments */
 
 char   *s_com;     /* start ... */
 char   *e_com;     /* ... and end of stored comments */
 
-char    in_buffer[inp_bufs];
-                  /* input buffer */
+char    in_buffer[inp_bufs];   /* input buffer */
 char   *buf_ptr;   /* ptr to next character to be taken from in_buffer */
 char   *buf_end;   /* ptr to first after last char in in_buffer */
 
 char   *buf_ptr;   /* ptr to next character to be taken from in_buffer */
 char   *buf_end;   /* ptr to first after last char in in_buffer */
 
-char    save_com[sc_size];
-                  /* input text is saved here when looking for the brace
+char    save_com[sc_size];     /* input text is saved here when looking for the brace
                      after an if, while, etc */
 char   *sc_end;    /* pointer into save_com buffer */
 
                      after an if, while, etc */
 char   *sc_end;    /* pointer into save_com buffer */
 
@@ -88,69 +75,154 @@ char   *bp_save;   /* saved value of buf_ptr when taking input from
                      save_com */
 char   *be_save;   /* similarly saved value of buf_end */
 
                      save_com */
 char   *be_save;   /* similarly saved value of buf_end */
 
-char    token[bufsize];
-                  /* the last token scanned */
-
+char    token[bufsize];        /* the last token scanned */
 
 
 
 
 
 
-int     bl_line;   /* set to 1 by dump_line if the line is blank */
-int     break_comma;
-                  /* when true and not in parens, break after a comma */
+int    blanklines_after_declarations;
+int    blanklines_before_blockcomments;
+int    blanklines_after_procs;
+int    swallow_optional_blanklines;
+int    n_real_blanklines;
+int    prefix_blankline_requested;
+int    postfix_blankline_requested;
+int     break_comma;   /* when true and not in parens, break after a comma */
 int     btype_2;   /* when true, brace should be on same line as if,
                      while, etc */
 int     btype_2;   /* when true, brace should be on same line as if,
                      while, etc */
-int     case_ind;  /* indentation level to be used for a "case n:" */
+float   case_ind;  /* indentation level to be used for a "case n:" */
 int     code_lines;/* count of lines with code */
 int     code_lines;/* count of lines with code */
-int     col_1;     /* set to true if the last token started in column 1 */
-int     com_col;   /* this is the column in which the current coment
-                     should start */
-int     com_ind;   /* the column in which comments to the right of code
-                     should start */
-int     com_lines; /* the number of lines with comments, set by dump_line 
-                  */
-int     dec_nest;  /* current nesting level for structure or init */
-int     decl_com_ind;
-                  /* the column in which comments after declarations
-                     should be put */
-int     decl_on_line;
-                  /* set to true if this line of code has part of a
-                     declaration on it */
 int     had_eof;   /* set to true when input is exhausted */
 int     had_eof;   /* set to true when input is exhausted */
-int     i_l_follow;/* the level to which ind_level should be set after the
-                     current line is printed */
-int     in_decl;   /* set to true when we are in a declaration stmt.  The
-                     processing of braces is then slightly different */
-int     in_stmt;   /* set to 1 while in a stmt */
-int     ind_level; /* the current indentation level */
-int     ind_size;  /* the size of one indentation level */
-int     ind_stmt;  /* set to 1 if next line should have an extra
-                     indentation level because we are in the middle of a
-                     stmt */
-int     last_u_d;  /* set to true after scanning a token which forces a
-                     following operator to be unary */
-int     leave_comma;
-                  /* if true, never break declarations after commas */
 int     line_no;   /* the current line number. */
 int     line_no;   /* the current line number. */
-int     ljust_decl;/* true if declarations should be left justified */
 int     max_col;   /* the maximum allowable line length */
 int     max_col;   /* the maximum allowable line length */
-int     out_coms;  /* the number of comments processed, set by pr_comment 
-                  */
-int     out_lines; /* the number of lines written, set by dump_line */
-int     p_l_follow;/* used to remember how to indent following statement 
-                  */
-int     paren_level;
-                  /* parenthesization level. used to indent within stmts 
-                  */
-int     pcase;     /* set to 1 if the current line label is a case.  It is
-                     printed differently from  a regular label */
-int     search_brace;
-                  /* set to true by parse when it is necessary to buffer
-                     up all info up to the start of a stmt after an if,
-                     while, etc */
-int     unindent_displace;
-                  /* comments not to the right of code will be placed
-                     this many indentation levels to the left of code */
-int     use_ff;    /* set to one if the current line should be terminated
-                     with a form feed */
+int     pointer_as_binop;      /* when true, "->" is treated as a binary
+                                  operator (giving, e.g., "p -> f") */
 int     verbose;   /* when true, non-essential error messages are printed 
                   */
 int     verbose;   /* when true, non-essential error messages are printed 
                   */
+int    cuddle_else;            /* true if else should cuddle up to '}' */
+int    star_comment_cont;      /* true iff comment continuation lines should
+                                  have stars at the beginning of each line.
+                                  */
+int     comment_delimiter_on_blankline;
+int     troff;                 /* true iff were generating troff input */
+int    procnames_start_line;   /* if true, the names of procedures being
+                                  defined get placed in column 1 (ie. a
+                                  newline is placed between the type of the
+                                  procedure and its name) */
+int    proc_calls_space;       /* If true, procedure calls look like:
+                                  foo(bar) rather than foo (bar) */
+int    format_col1_comments;   /* If comments which start in column 1 are to
+                                  be magically reformatted (just like comments that
+                                  begin in later columns) */
+int    inhibit_formatting;     /* true if INDENT OFF is in effect */
+int    suppress_blanklines;    /* set iff following blanklines should be
+                                  suppressed */
+int    continuation_indent;    /* set to the indentation between the edge of
+                                  code and continuation lines */
+int    lineup_to_parens;       /* if true, continued code within parens will
+                                  be lined up to the open paren */
+int    block_comment_max_col;
+
+
+struct parser_state {
+    int         last_token;
+    int         p_stack[50];   /* this is the parsers stack */
+    int         il[50];                /* this stack stores indentation levels */
+    float       cstk[50];      /* used to store case stmt indentation
+                                * levels */
+    int         box_com;       /* set to true when we are in a "boxed"
+                                * comment. In that case, the first
+                                * non-blank char should be lined up with
+                                * the / in /* */
+    int         comment_delta,
+                n_comment_delta;
+    int         cast_mask;     /* indicates which close parens close off
+                                * casts */
+    int                sizeof_mask;    /* indicates which close parens close off
+                                  sizeof''s */
+    int         block_init;    /* true iff inside a block initialization */
+    int         last_nl;       /* this is true if the last thing scanned
+                                * was a newline */
+    int         in_or_st;      /* Will be true iff there has been a
+                                * declarator (e.g. int or char) and no
+                                * left paren since the last semicolon.
+                                * When true, a '{' is starting a
+                                * structure definition or an
+                                * initialization list */
+    int         bl_line;       /* set to 1 by dump_line if the line is
+                                * blank */
+    int         col_1;         /* set to true if the last token started
+                                * in column 1 */
+    int         com_col;       /* this is the column in which the current
+                                * coment should start */
+    int         com_ind;       /* the column in which comments to the
+                                * right of code should start */
+    int         com_lines;     /* the number of lines with comments, set
+                                * by dump_line */
+    int         dec_nest;      /* current nesting level for structure or
+                                * init */
+    int         decl_com_ind;  /* the column in which comments after
+                                * declarations should be put */
+    int         decl_on_line;  /* set to true if this line of code has
+                                * part of a declaration on it */
+    int         i_l_follow;    /* the level to which ind_level should be
+                                * set after the current line is printed */
+    int         in_decl;       /* set to true when we are in a
+                                * declaration stmt.  The processing of
+                                * braces is then slightly different */
+    int         in_stmt;       /* set to 1 while in a stmt */
+    int         ind_level;     /* the current indentation level */
+    int         ind_size;      /* the size of one indentation level */
+    int         ind_stmt;      /* set to 1 if next line should have an
+                                * extra indentation level because we are
+                                * in the middle of a stmt */
+    int         last_u_d;      /* set to true after scanning a token
+                                * which forces a following operator to be
+                                * unary */
+    int         leave_comma;   /* if true, never break declarations after
+                                * commas */
+    int         ljust_decl;    /* true if declarations should be left
+                                * justified */
+    int         out_coms;      /* the number of comments processed, set
+                                * by pr_comment */
+    int         out_lines;     /* the number of lines written, set by
+                                * dump_line */
+    int         p_l_follow;    /* used to remember how to indent
+                                * following statement */
+    int         paren_level;   /* parenthesization level. used to indent
+                                * within stmts */
+    short       paren_indents[20];     /* column positions of each paren */
+    int         pcase;         /* set to 1 if the current line label is a
+                                * case.  It is printed differently from 
+                                * a regular label */
+    int         search_brace;  /* set to true by parse when it is
+                                * necessary to buffer up all info up to
+                                * the start of a stmt after an if, while,
+                                * etc */
+    int         unindent_displace;     /* comments not to the right of
+                                        * code will be placed this many
+                                        * indentation levels to the left
+                                        * of code */
+    int         use_ff;                /* set to one if the current line should
+                                * be terminated with a form feed */
+    int         want_blank;    /* set to true when the following token
+                                * should be prefixed by a blank. (Said
+                                * prefixing is ignored in some cases.) */
+    int         else_if;       /* True iff else if pairs should be
+                                * handled specially */
+    int         decl_indent;   /* column to indent declared identifiers
+                                * to */
+    int         its_a_keyword;
+    int                sizeof_keyword;
+    int         dumped_decl_indent;
+    float       case_indent;   /* The distance to indent case labels from
+                                * the switch statement */
+    int         in_parameter_declaration;
+    int         indent_parameters;
+    int         tos;           /* pointer to top of stack */
+    char        procname[100]; /* The name of the current procedure */
+    int                just_saw_decl;
+}           ps;
+
+int ifdef_level;
+struct parser_state state_stack[5];
+struct parser_state match_state[5];