Linear time composable parser for PEG grammars