(expr)
| 231 | |
| 232 | # top lvel: and, arg, count, cant be JOIN, LE, R |
| 233 | def parse_s_expr(expr): |
| 234 | tokens = tokenize_s_expr(expr) |
| 235 | # assert tokens[0] == '(' and tokens[-1] == ')' |
| 236 | # tokens = tokens[1:-1] |
| 237 | ast, cursor = _consume_a_node(tokens, 0, 'unary') |
| 238 | assert cursor == len(tokens) |
| 239 | assert ' '.join(tokens) == ast.logical_form() |
| 240 | return ast |
| 241 | |
| 242 | def textualize_s_expr(expr): |
| 243 | ast = parse_s_expr(expr) |