| 1234567891011121314151617181920212223242526272829 |
- from parser import Parser
- from possibilities import apply_suggestion
- from strategy import find_possibilities
- from tests.parser import ParserWrapper
- def validate(exp, result):
- """
- Validate that exp =>* result.
- """
- parser = ParserWrapper(Parser)
- exp = parser.run([exp])
- result = parser.run([result])
- def traverse_preorder(node, result):
- if node.equals(result):
- return True
- for p in find_possibilities(node):
- # Clone the root node because it will be used in multiple
- # substitutions
- child = apply_suggestion(node.clone(), p)
- if traverse_preorder(child, result):
- return True
- return False
- return traverse_preorder(exp, result)
|