Parse list

Work in progress
Can you change this to only parse the fields itself? The caller is the one that will have to consume tokens to see what comes next. This becomes more important if we allow different ordering of clauses.

For example:

```
SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...
```

vs 

```
SELECT ... FROM ... WHERE ... LIMIT ... ORDER BY ... 
```