lark/tests/test_tools.py

51 lines
988 B
Python
Raw Normal View History

2018-03-10 10:28:13 +00:00
from __future__ import absolute_import
import sys
import unittest
from unittest import TestCase
from lark.tree import Tree
from lark.tools import standalone
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
class TestStandalone(TestCase):
def setUp(self):
pass
def test_simple(self):
grammar = """
start: NUMBER WORD
%import common.NUMBER
%import common.WORD
%import common.WS
%ignore WS
"""
code_buf = StringIO()
temp = sys.stdout
sys.stdout = code_buf
standalone.main(StringIO(grammar), 'start')
sys.stdout = temp
code = code_buf.getvalue()
context = {}
exec(code, context)
_Lark = context['Lark_StandAlone']
l = _Lark()
x = l.parse('12 elephants')
self.assertEqual(x.children, ['12', 'elephants'])
if __name__ == '__main__':
unittest.main()