->(next_shell_token,|(_A,;(,(=(call_once(read_new_shell_token(_B,copy_term(rest_chars))),_C),;(,(:==(_C,false),,(!,fail)),;(,(:==(_B,none),,(!,,(<<-(rest_token,"the end of the line"),=(_A,[])))),,(<<-(rest_token,`(_B)),fail)))),=(_A,[copy_term(rest_token)|`(next_shell_token)])))).
:-(write_parse_error,,(nl_err,,(write_err("**** Syntax error at line ",current_line_number," near: "),,(cond(:=<(_A: copy_term(rest_token),string),write(_A),cond(:=<(_A,variable),write_err(project(1,_A)),writeq_err(project(1,_A)))),nl_err)))).