a more complex example, parsing an s-expr like grammar