Mercurial > lcfOS
view test/test_burm.py @ 387:34ac19044b8a
Hello world with paging in emulator
author | Windel Bouwman |
---|---|
date | Thu, 01 May 2014 22:09:18 +0200 |
parents | 8c569fbe60e4 |
children |
line wrap: on
line source
import unittest import io import argparse from tree import Tree import pyburg class testBURG(unittest.TestCase): def testSample4(self): """ Test sample4 burg system """ # Generate matcher from spec: buf = io.StringIO() args = argparse.Namespace(source=open('sample4.brg'), output=buf) pyburg.main(args) # Execute generated script into global scope: exec(buf.getvalue(), globals()) # Sample tree: t = Tree('ASGNI', Tree('ADDRLP'), Tree('ADDI', Tree('CVCI', Tree('INDIRC', Tree('ADDRLP'))), Tree('CNSTI') ) ) # Subclass generated matcher: class MyMatcher(Matcher): def __init__(self): super().__init__() self.trace = [] def tr(self, r): self.trace.append(r) # Match tree: mm = MyMatcher() mm.gen(t) self.assertSequenceEqual([8,8,4,11,9,3,1], mm.trace) if __name__ == '__main__': unittest.main()