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) --> "".