process_line_rest(Env,Res) --> identifier(ID),!,
        {(is_indent_relevant_keyword(ID,0),
          option_set(insert_new_lines_before_keywords,Env)
           -> output_new_line(Env,Env1),output_indent(0,Env1) ; Env1=Env),
         output_atom(Env1,ID),
         process_id(ID,Env1,Env2)
        },
        process_line_after_id(ID,Env2,Res).
 process_line_rest(Env,Res) --> new_line,!, process_new_line(Env,Res).
 process_line_rest(Env,Res) --> line_comment,!, {output_codes(Env,"//")}, process_line_comment(Env,Res).
 process_line_rest(Env,Res) --> open_special_token(Kind,Open,Close),!,
        {output_codes(Env,Open)}, process_special_token(Kind,Close,Env,Res).
 process_line_rest(In,Out) --> [C], {is_ident_relevant_code(C,Delta)},!,
        {output_code(In,C),update_indent(In,Delta,In2)}, process_line_rest(In2,Out).
 process_line_rest(In,Out) --> [C], !, {output_code(In,C)}, process_line_rest(In,Out).
 process_line_rest(Env,Env) --> "".