Annotation of 43BSD/ucb/indent/indent_globs.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  *
        !             6:  *     @(#)indent_globs.h      5.4 (Berkeley) 9/10/85
        !             7:  */
        !             8: 
        !             9: /*-
        !            10: 
        !            11:                          Copyright (C) 1976
        !            12:                                by the
        !            13:                          Board of Trustees
        !            14:                                of the
        !            15:                        University of Illinois
        !            16: 
        !            17:                         All rights reserved
        !            18: 
        !            19: FILE NAME:
        !            20:        indent_globs.h
        !            21: 
        !            22: PURPOSE:
        !            23:        This include file contains the declarations for all global variables
        !            24:        used in indent.
        !            25: 
        !            26: GLOBALS:
        !            27:        The names of all of the variables will not be repeated here.  The 
        !            28:        declarations start on the next page.
        !            29: 
        !            30: FUNCTIONS:
        !            31:        None
        !            32: */
        !            33: 
        !            34: #include <stdio.h>
        !            35: 
        !            36: #define BACKSLASH '\\'
        !            37: #define bufsize 600       /* size of internal buffers */
        !            38: #define inp_bufs 600      /* size of input buffer */
        !            39: #define sc_size 5000      /* size of save_com buffer */
        !            40: #define label_offset 2    /* number of levels a label is placed to left of code 
        !            41:                   */
        !            42: 
        !            43: #define tabsize 8  /* the size of a tab */
        !            44: #define tabmask 0177770           /* mask used when figuring length of lines with tabs */
        !            45: 
        !            46: 
        !            47: #define false 0
        !            48: #define true  1
        !            49: 
        !            50: 
        !            51: FILE   *input;     /* the fid for the input file */
        !            52: FILE   *output;    /* the output file */
        !            53: 
        !            54: char    labbuf[bufsize];       /* buffer for label */
        !            55: char   *s_lab;     /* start ... */
        !            56: char   *e_lab;     /* .. and end of stored label */
        !            57: 
        !            58: char    codebuf[bufsize];      /* buffer for code section */
        !            59: char   *s_code;    /* start ... */
        !            60: char   *e_code;    /* .. and end of stored code */
        !            61: 
        !            62: char    combuf[bufsize];       /* buffer for comments */
        !            63: char   *s_com;     /* start ... */
        !            64: char   *e_com;     /* ... and end of stored comments */
        !            65: 
        !            66: char    in_buffer[inp_bufs];   /* input buffer */
        !            67: char   *buf_ptr;   /* ptr to next character to be taken from in_buffer */
        !            68: char   *buf_end;   /* ptr to first after last char in in_buffer */
        !            69: 
        !            70: char    save_com[sc_size];     /* input text is saved here when looking for the brace
        !            71:                      after an if, while, etc */
        !            72: char   *sc_end;    /* pointer into save_com buffer */
        !            73: 
        !            74: char   *bp_save;   /* saved value of buf_ptr when taking input from
        !            75:                      save_com */
        !            76: char   *be_save;   /* similarly saved value of buf_end */
        !            77: 
        !            78: char    token[bufsize];        /* the last token scanned */
        !            79: 
        !            80: 
        !            81: 
        !            82: int    blanklines_after_declarations;
        !            83: int    blanklines_before_blockcomments;
        !            84: int    blanklines_after_procs;
        !            85: int    swallow_optional_blanklines;
        !            86: int    n_real_blanklines;
        !            87: int    prefix_blankline_requested;
        !            88: int    postfix_blankline_requested;
        !            89: int     break_comma;   /* when true and not in parens, break after a comma */
        !            90: int     btype_2;   /* when true, brace should be on same line as if,
        !            91:                      while, etc */
        !            92: float   case_ind;  /* indentation level to be used for a "case n:" */
        !            93: int     code_lines;/* count of lines with code */
        !            94: int     had_eof;   /* set to true when input is exhausted */
        !            95: int     line_no;   /* the current line number. */
        !            96: int     max_col;   /* the maximum allowable line length */
        !            97: int     pointer_as_binop;      /* when true, "->" is treated as a binary
        !            98:                                   operator (giving, e.g., "p -> f") */
        !            99: int     verbose;   /* when true, non-essential error messages are printed 
        !           100:                   */
        !           101: int    cuddle_else;            /* true if else should cuddle up to '}' */
        !           102: int    star_comment_cont;      /* true iff comment continuation lines should
        !           103:                                   have stars at the beginning of each line.
        !           104:                                   */
        !           105: int     comment_delimiter_on_blankline;
        !           106: int     troff;                 /* true iff were generating troff input */
        !           107: int    procnames_start_line;   /* if true, the names of procedures being
        !           108:                                   defined get placed in column 1 (ie. a
        !           109:                                   newline is placed between the type of the
        !           110:                                   procedure and its name) */
        !           111: int    proc_calls_space;       /* If true, procedure calls look like:
        !           112:                                   foo(bar) rather than foo (bar) */
        !           113: int    format_col1_comments;   /* If comments which start in column 1 are to
        !           114:                                   be magically reformatted (just like comments that
        !           115:                                   begin in later columns) */
        !           116: int    inhibit_formatting;     /* true if INDENT OFF is in effect */
        !           117: int    suppress_blanklines;    /* set iff following blanklines should be
        !           118:                                   suppressed */
        !           119: int    continuation_indent;    /* set to the indentation between the edge of
        !           120:                                   code and continuation lines */
        !           121: int    lineup_to_parens;       /* if true, continued code within parens will
        !           122:                                   be lined up to the open paren */
        !           123: int    block_comment_max_col;
        !           124: 
        !           125: 
        !           126: struct parser_state {
        !           127:     int         last_token;
        !           128:     int         p_stack[50];   /* this is the parsers stack */
        !           129:     int         il[50];                /* this stack stores indentation levels */
        !           130:     float       cstk[50];      /* used to store case stmt indentation
        !           131:                                 * levels */
        !           132:     int         box_com;       /* set to true when we are in a "boxed"
        !           133:                                 * comment. In that case, the first
        !           134:                                 * non-blank char should be lined up with
        !           135:                                 * the / in /* */
        !           136:     int         comment_delta,
        !           137:                 n_comment_delta;
        !           138:     int         cast_mask;     /* indicates which close parens close off
        !           139:                                 * casts */
        !           140:     int                sizeof_mask;    /* indicates which close parens close off
        !           141:                                   sizeof''s */
        !           142:     int         block_init;    /* true iff inside a block initialization */
        !           143:     int         last_nl;       /* this is true if the last thing scanned
        !           144:                                 * was a newline */
        !           145:     int         in_or_st;      /* Will be true iff there has been a
        !           146:                                 * declarator (e.g. int or char) and no
        !           147:                                 * left paren since the last semicolon.
        !           148:                                 * When true, a '{' is starting a
        !           149:                                 * structure definition or an
        !           150:                                 * initialization list */
        !           151:     int         bl_line;       /* set to 1 by dump_line if the line is
        !           152:                                 * blank */
        !           153:     int         col_1;         /* set to true if the last token started
        !           154:                                 * in column 1 */
        !           155:     int         com_col;       /* this is the column in which the current
        !           156:                                 * coment should start */
        !           157:     int         com_ind;       /* the column in which comments to the
        !           158:                                 * right of code should start */
        !           159:     int         com_lines;     /* the number of lines with comments, set
        !           160:                                 * by dump_line */
        !           161:     int         dec_nest;      /* current nesting level for structure or
        !           162:                                 * init */
        !           163:     int         decl_com_ind;  /* the column in which comments after
        !           164:                                 * declarations should be put */
        !           165:     int         decl_on_line;  /* set to true if this line of code has
        !           166:                                 * part of a declaration on it */
        !           167:     int         i_l_follow;    /* the level to which ind_level should be
        !           168:                                 * set after the current line is printed */
        !           169:     int         in_decl;       /* set to true when we are in a
        !           170:                                 * declaration stmt.  The processing of
        !           171:                                 * braces is then slightly different */
        !           172:     int         in_stmt;       /* set to 1 while in a stmt */
        !           173:     int         ind_level;     /* the current indentation level */
        !           174:     int         ind_size;      /* the size of one indentation level */
        !           175:     int         ind_stmt;      /* set to 1 if next line should have an
        !           176:                                 * extra indentation level because we are
        !           177:                                 * in the middle of a stmt */
        !           178:     int         last_u_d;      /* set to true after scanning a token
        !           179:                                 * which forces a following operator to be
        !           180:                                 * unary */
        !           181:     int         leave_comma;   /* if true, never break declarations after
        !           182:                                 * commas */
        !           183:     int         ljust_decl;    /* true if declarations should be left
        !           184:                                 * justified */
        !           185:     int         out_coms;      /* the number of comments processed, set
        !           186:                                 * by pr_comment */
        !           187:     int         out_lines;     /* the number of lines written, set by
        !           188:                                 * dump_line */
        !           189:     int         p_l_follow;    /* used to remember how to indent
        !           190:                                 * following statement */
        !           191:     int         paren_level;   /* parenthesization level. used to indent
        !           192:                                 * within stmts */
        !           193:     short       paren_indents[20];     /* column positions of each paren */
        !           194:     int         pcase;         /* set to 1 if the current line label is a
        !           195:                                 * case.  It is printed differently from 
        !           196:                                 * a regular label */
        !           197:     int         search_brace;  /* set to true by parse when it is
        !           198:                                 * necessary to buffer up all info up to
        !           199:                                 * the start of a stmt after an if, while,
        !           200:                                 * etc */
        !           201:     int         unindent_displace;     /* comments not to the right of
        !           202:                                         * code will be placed this many
        !           203:                                         * indentation levels to the left
        !           204:                                         * of code */
        !           205:     int         use_ff;                /* set to one if the current line should
        !           206:                                 * be terminated with a form feed */
        !           207:     int         want_blank;    /* set to true when the following token
        !           208:                                 * should be prefixed by a blank. (Said
        !           209:                                 * prefixing is ignored in some cases.) */
        !           210:     int         else_if;       /* True iff else if pairs should be
        !           211:                                 * handled specially */
        !           212:     int         decl_indent;   /* column to indent declared identifiers
        !           213:                                 * to */
        !           214:     int         its_a_keyword;
        !           215:     int                sizeof_keyword;
        !           216:     int         dumped_decl_indent;
        !           217:     float       case_indent;   /* The distance to indent case labels from
        !           218:                                 * the switch statement */
        !           219:     int         in_parameter_declaration;
        !           220:     int         indent_parameters;
        !           221:     int         tos;           /* pointer to top of stack */
        !           222:     char        procname[100]; /* The name of the current procedure */
        !           223:     int                just_saw_decl;
        !           224: }           ps;
        !           225: 
        !           226: int ifdef_level;
        !           227: struct parser_state state_stack[5];
        !           228: struct parser_state match_state[5];

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.