position_word = [t for t in stripped_tokens if t in ordinals][0]
pos = from_ordinal(position_word)
- first_index, first_word = [(i, t) for i, t in enumerate(stripped_tokens)
+ indexed_words = [(i, t) for i, t in enumerate(stripped_tokens)
if t not in ordinals
- if t not in negative_words][0]
- second_index, second_word = [(i, t) for i, t in enumerate(stripped_tokens)
- if t not in ordinals
- if t not in negative_words][1]
+ if t not in negative_words]
+
+ first_index, first_word = indexed_words[0]
+ second_index, second_word = indexed_words[1]
+
neg_indices = [i for i, t in enumerate(stripped_tokens) if t in negative_words]
first_clue = None
```python
def parse_riddle(riddle_text: str) -> Riddle:
- riddle_lines = {i: elem
- for i, elem in
- [parse_line(tokenise(l)) for l in riddle_text.split('\n')]}
- return collapse_riddle_clues(riddle_lines)
+ return {i: elem
+ for i, elem in
+ [parse_line(tokenise(l))
+ for l in riddle_text.split('\n')]}
```
```python
```python
def parse_and_solve_riddle(riddle_text: str) -> List[str]:
riddle = parse_riddle(riddle_text)
- return solve_riddle(riddle)
+ elems = collapse_riddle_clues(riddle)
+ return solve_riddle(elems)
```
```python