parse arguments with recursive contexts