Home | History | Annotate | Download | only in indent

Lines Matching refs:ps

73 struct parser_state ps;
300 ps.ind_level = ps.ind_level_follow = ind / opt.indent_size;
301 ps_psyms_push(psym_stmt, ps.ind_level); /* as a stop symbol */
302 ps.prev_lsym = lsym_semicolon;
303 ps.lbrace_kind = psym_lbrace_block;
309 if (lsym == lsym_if && ps.prev_lsym == lsym_else
311 ps.newline = nl_no;
312 if (ps.newline == nl_unless_lbrace && lsym != lsym_lbrace)
313 ps.newline = nl_yes;
314 if (ps.newline == nl_unless_semicolon && lsym != lsym_semicolon)
315 ps.newline = nl_yes;
316 if (ps.newline == nl_unless_if && lsym != lsym_if)
317 ps.newline = nl_yes;
318 if (ps.newline != nl_yes)
320 if (lsym == lsym_semicolon && ps.prev_lsym == lsym_rbrace)
322 if (ps.prev_lsym == lsym_lbrace || ps.prev_lsym == lsym_semicolon)
332 if (ps.want_blank)
336 ps.want_blank = lsym != lsym_rparen && lsym != lsym_rbracket;
343 ps.lbrace_kind = token.s[0] == 's' ? psym_lbrace_struct :
346 } else if ((lsym == lsym_type && ps.paren.len == 0)
351 ps.lbrace_kind = psym_lbrace_block;
357 if (lsym == lsym_lbrace && ps.lbrace_kind == psym_lbrace_block
358 && ps.psyms.len == 3)
359 ps.badp = badp_seen_lbrace;
360 if (lsym == lsym_rbrace && !ps.in_decl)
361 ps.badp = badp_none;
362 if (lsym == lsym_type && ps.paren.len == 0
363 && (ps.badp == badp_seen_lbrace || ps.badp == badp_yes))
364 ps.badp = badp_decl;
365 if (lsym == lsym_semicolon && ps.badp == badp_decl
366 && ps.decl_level == 0)
367 ps.badp = badp_seen_decl;
373 int base = ps.ind_level * opt.indent_size;
383 if (code.len == orig_code_len && ps.want_blank)
386 ps.want_blank = false;
387 ps.decl_indent_done = true;
393 return ps.in_decl
394 && !ps.in_typedef_decl
395 && !ps.in_init
396 && !ps.decl_indent_done
397 && !ps.line_has_func_def
398 && ps.ind_paren_level == 0;
406 if (ps.psyms.len > 2) /* check for balanced braces */
486 *dst = ps;
488 dst->paren.item = dup_array(ps.paren.item, ps.paren.len);
489 dst->psyms.sym = dup_array(ps.psyms.sym, ps.psyms.len);
490 dst->psyms.ind_level = dup_array(ps.psyms.ind_level, ps.psyms.len);
496 struct paren_level *ps_paren_item = ps.paren.item;
497 size_t ps_paren_cap = ps.paren.cap;
498 parser_symbol *ps_psyms_sym = ps.psyms.sym;
499 int *ps_psyms_ind_level = ps.psyms.ind_level;
500 size_t ps_psyms_cap = ps.psyms.cap;
502 ps = *src;
504 ps.paren.item = ps_paren_item;
505 ps.paren.cap = ps_paren_cap;
506 ps.psyms.sym = ps_psyms_sym;
507 ps.psyms.ind_level = ps_psyms_ind_level;
508 ps.psyms.cap = ps_psyms_cap;
510 copy_array(ps.paren.item, src->paren.item, src->paren.len);
511 copy_array(ps.psyms.sym, src->psyms.sym, src->psyms.len);
512 copy_array(ps.psyms.ind_level, src->psyms.ind_level, src->psyms.len);
567 if (ps.prev_lsym == lsym_comma
568 && ps.paren.len == 0 && !ps.in_init
569 && !opt.break_after_comma && ps.break_after_comma
573 if (ps.psyms.sym[ps.psyms.len - 1] == psym_switch_expr
576 ps.newline = nl_unless_lbrace;
579 if (ps.psyms.sym[ps.psyms.len - 1] == psym_if_expr_stmt_else
581 ps.newline = nl_unless_if;
596 if (ps.prev_lsym == lsym_sizeof)
598 if (ps.prev_lsym == lsym_rparen
599 || ps.prev_lsym == lsym_rbracket
600 || ps.prev_lsym == lsym_postfix_op
601 || ps.prev_lsym == lsym_offsetof
602 || ps.prev_lsym == lsym_word
603 || ps.prev_lsym == lsym_funcname)
613 indent_declarator(ps.decl_ind, ps.tabs_to_var);
614 else if (ps.want_blank && want_blank_before_lparen())
616 ps.want_blank = false;
619 if (opt.extra_expr_indent && ps.spaced_expr_psym != psym_0)
620 ps.extra_expr_indent = eei_maybe;
622 if (ps.in_var_decl && ps.psyms.len <= 3 && !ps.in_init) {
624 ps.in_var_decl = false;
628 if (ps.prev_lsym == lsym_offsetof
629 || ps.prev_lsym == lsym_sizeof
630 || ps.prev_lsym == lsym_for
631 || ps.prev_lsym == lsym_if
632 || ps.prev_lsym == lsym_switch
633 || ps.prev_lsym == lsym_while
634 || ps.line_has_func_def)
637 paren_stack_push(&ps.paren, ind_add(0, code.s, code.len), cast);
643 if (ps.in_func_def_params)
645 if (ps.line_has_decl && !ps.in_init)
647 if (ps.prev_lsym == lsym_unary_op)
649 if (ps.spaced_expr_psym != psym_0 && ps.paren.len == 0)
657 if (ps.paren.len == 0)
660 bool paren_cast = ps.paren.len > 0
661 && psps.paren.len].cast == cast_maybe;
662 ps.prev_paren_was_cast = rparen_is_cast(paren_cast);
663 if (ps.prev_paren_was_cast) {
664 ps.next_unary = true;
665 ps.want_blank = opt.space_after_cast;
667 ps.want_blank = true;
670 ps.ind_paren_level = (int)ps.paren.len;
674 if (ps.spaced_expr_psym != psym_0 && ps.paren.len == 0) {
675 bool is_do_while = ps.spaced_expr_psym == psym_while_expr
676 && ps.psyms.sym[ps.psyms.len - 1] == psym_do_stmt;
677 parse(ps.spaced_expr_psym);
678 ps.spaced_expr_psym = psym_0;
680 ps.newline = is_do_while
682 ps.next_unary = true;
683 ps.in_stmt_or_decl = false;
684 ps.want_blank = true;
686 if (ps.extra_expr_indent == eei_maybe)
687 ps.extra_expr_indent = eei_last;
695 && (ps.prev_lsym == lsym_comma || ps.prev_lsym == lsym_binary_op))
698 ps.want_blank = false;
700 paren_stack_push(&ps.paren, ind_add(0, code.s, code.len), cast_no);
706 if (ps.paren.len == 0)
708 if (ps.paren.len > 0)
709 ps.paren.len--;
712 ps.ind_paren_level = (int)ps.paren.len;
715 ps.want_blank = true;
721 if (ps.prev_lsym == lsym_rparen && ps.prev_paren_was_cast) {
722 ps.in_var_decl = true; // XXX: not really
723 ps.in_init = true;
729 ps.in_stmt_or_decl = false; /* don't indent the {} */
731 if (ps.in_init)
732 ps.init_level++;
734 ps.newline = nl_yes;
736 if (code.len > 0 && !ps.in_init) {
740 else if (ps.in_func_def_params && !ps.in_var_decl) {
741 ps.ind_level_follow = 0;
745 ps.want_blank = true;
749 if (ps.paren.len > 0 && ps.init_level == 0) {
751 ps.paren.len = 0;
752 if (ps.spaced_expr_psym != psym_0) {
753 parse(ps.spaced_expr_psym);
754 ps.spaced_expr_psym = psym_0;
755 ps.ind_level = ps.ind_level_follow;
760 ps.line_is_stmt_cont = false;
761 if (ps.in_decl && ps.in_var_decl) {
762 ps.di_stack[ps.decl_level] = ps.decl_ind;
763 if (++ps.decl_level == (int)array_length(ps.di_stack)) {
765 array_length(ps.di_stack));
766 ps.decl_level--;
769 ps.line_has_decl = false; /* don't do special indentation
771 ps.in_func_def_params = false;
772 ps.in_decl = false;
775 ps.decl_ind = 0;
776 parse(ps.lbrace_kind);
777 if (ps.want_blank)
779 ps.want_blank = false;
781 ps.declaration = decl_no;
787 if (ps.paren.len > 0 && ps.init_level == 0) {
789 ps.paren.len = 0;
790 ps.spaced_expr_psym = psym_0;
793 ps.declaration = decl_no;
794 if (ps.decl_level == 0)
795 ps.blank_line_after_decl = false;
796 if (ps.init_level > 0)
797 ps.init_level--;
799 if (code.len > 0 && !ps.in_init)
803 ps.want_blank = true;
804 ps.in_stmt_or_decl = false; // XXX: Initializers don't end a stmt
805 ps.line_is_stmt_cont = false;
807 if (ps.decl_level > 0) { /* multi-level structure declaration */
808 ps.decl_ind = ps.di_stack[--ps.decl_level];
809 if (ps.decl_level == 0 && !ps.in_func_def_params) {
810 ps.declaration = decl_begin;
811 ps.decl_ind = ps.ind_level == 0
814 ps.in_decl = true;
817 if (ps.psyms.len == 3)
822 if (!ps.in_var_decl
823 && ps.psyms.sym[ps.psyms.len - 1] != psym_do_stmt
824 && ps.psyms.sym[ps.psyms.len - 1] != psym_if_expr_stmt)
825 ps.newline = nl_yes;
834 ps.want_blank = false;
841 int ind = ps.decl_ind - (int)token.len;
842 indent_declarator(ind, ps.tabs_to_var);
845 ps.want_blank = true;
847 if (ps.want_blank)
850 ps.want_blank = false;
857 ps.want_blank = true;
863 ps.want_blank = code.len > 0; /* only put blank after comma if comma
866 if (ps.in_decl && ps.ind_paren_level == 0
867 && !ps.line_has_func_def && !ps.in_init && !ps.decl_indent_done) {
869 indent_declarator(ps.decl_ind - 1, ps.tabs_to_var);
874 if (ps.paren.len == 0) {
875 if (ps.init_level == 0)
876 ps.in_init = false;
878 if (ps.break_after_comma && (opt.break_after_comma ||
881 ps.newline = nl_yes;
892 if (ps.seen_case)
894 ps.in_stmt_or_decl = false;
895 ps.newline = ps.seen_case ? nl_unless_semicolon : nl_no;
896 ps.seen_case = false;
897 ps.want_blank = false;
904 ps.want_blank = ps.decl_level == 0;
912 if (ps.decl_level == 0) {
913 ps.in_var_decl = false;
914 ps.in_typedef_decl = false;
916 ps.seen_case = false; /* only needs to be reset on error */
917 ps.quest_level = 0; /* only needs to be reset on error */
918 if (ps.prev_lsym == lsym_rparen)
919 ps.in_func_def_params = false;
920 ps.in_init = false;
921 ps.init_level = 0;
922 ps.declaration = ps.declaration == decl_begin ? decl_end : decl_no;
924 if (ps.in_decl && code.len == 0 && !ps.in_init &&
925 !ps.decl_indent_done && ps.ind_paren_level == 0) {
927 indent_declarator(ps.decl_ind - 1, ps.tabs_to_var);
930 ps.in_decl = ps.decl_level > 0; /* if we were in a first level
934 if (ps.paren.len > 0 && ps.spaced_expr_psym != psym_for_exprs) {
936 ps.paren.len = 0;
937 if (ps.spaced_expr_psym != psym_0) {
938 parse(ps.spaced_expr_psym);
939 ps.spaced_expr_psym = psym_0;
943 ps.want_blank = true;
944 ps.in_stmt_or_decl = ps.paren.len > 0;
945 ps.decl_ind = 0;
947 if (ps.spaced_expr_psym == psym_0) {
949 ps.newline = nl_yes;
958 if (ps.prev_lsym == lsym_rparen && ps.psyms.len <= 2 && code.len > 0)
961 if (ps.in_func_def_params && opt.indent_parameters &&
962 ps.decl_level == 0) {
963 ps.ind_level = ps.ind_level_follow = 1;
964 ps.line_is_stmt_cont = false;
967 ps.in_var_decl = /* maybe */ true;
968 ps.in_decl = true;
969 ps.line_has_decl = ps.in_decl;
970 if (ps.decl_level == 0)
971 ps.declaration = decl_begin;
973 int ind = ps.ind_level > 0 && ps.decl_level == 0
978 ps.decl_ind = ind_add(ind0, token.s, token.len) + 1;
980 ps.decl_ind = ind;
981 ps.tabs_to_var = opt.use_tabs && ind > 0;
988 && ps.paren.item[ps.paren.len - 1].cast == cast_unknown)
989 ps.paren.item[ps.paren.len - 1].cast = cast_maybe;
991 if (ps.in_decl) {
993 ps.in_decl = false;
997 else if (ps.want_blank)
999 ps.want_blank = false;
1000 } else if (ps.in_typedef_decl && ps.decl_level == 0) {
1002 } else if (!ps.in_init && !ps.decl_indent_done &&
1003 ps.ind_paren_level == 0) {
1006 ps.decl_ind = ind_add(0, code.s, code.len) + 1;
1007 indent_declarator(ps.decl_ind, ps.tabs_to_var);
1010 } else if (ps.spaced_expr_psym != psym_0 && ps.paren.len == 0) {
1011 parse(ps.spaced_expr_psym);
1012 ps.spaced_expr_psym = psym_0;
1013 ps.newline = nl_unless_lbrace;
1014 ps.in_stmt_or_decl = false;
1015 ps.next_unary = true;
1022 ps.in_stmt_or_decl = false;
1023 ps.in_decl = false;
1029 ps.newline = nl_unless_lbrace;
1035 ps.in_stmt_or_decl = false;
1036 ps.in_decl = false;
1043 ps.newline = opt.else_if_in_same_line ? nl_unless_if : nl_yes;
1064 case lsym_question: ps.quest_level++; goto copy_token;
1070 case lsym_typedef: ps.in_typedef_decl = true; goto copy_token;
1072 case lsym_case: ps.seen_case = true; goto copy_token;
1073 case lsym_default: ps.seen_case = true; goto copy_token;
1076 case lsym_for: ps.spaced_expr_psym = psym_for_exprs; goto copy_token;
1077 case lsym_if: ps.spaced_expr_psym = psym_if_expr; goto copy_token;
1078 case lsym_switch: ps.spaced_expr_psym = psym_switch_expr; goto copy_token;
1079 case lsym_while: ps.spaced_expr_psym = psym_while_expr; goto copy_token;
1083 if (ps.paren.len > 0)
1087 if (ps.paren.len == 0) {
1099 if (ps.want_blank)
1103 ps.want_blank = true;
1132 ps.newline = nl_no;
1137 ps.newline = nl_no;
1140 ps.in_stmt_or_decl = true;
1153 ps.prev_lsym = lsym;