Mercurial > hg > Members > shinya > pyrect
view pyrect/translator/translator.py @ 109:d591da6e2988
add memchr-filter. and fix emit buf.
author | Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 12 Feb 2011 16:41:25 +0900 |
parents | 8cfa81638130 |
children |
line wrap: on
line source
#!/usr/bin/env python import sys class Translator(object): def __init__(self, regexp): self.regexp = regexp self.stream = None self.__indent = 0 self.tab = " " def indent(self): self.__indent += 1 def dedent(self): if self.__indent > 0: self.__indent -= 1 def emit(self, string='', ret=1): self.emit0(string+"\n"*ret) def emiti(self, *arg): self.emit(*arg) self.indent() def iemit(self, *arg): self.indent() self.emit(*arg) def emitd(self, *arg): self.emit(*arg) self.dedent() def demit(self, *arg): self.dedent() self.emit(*arg) def iemitd(self, *arg): self.iemit(*arg) self.dedent() def demiti(self, *arg): self.demit(*arg) self.indent() def emit0(self, string): self.stream.write(self.tab*self.__indent + string) def state_name(self, state_name): return str(state_name) def emit_from_callgraph(self): pass def translate(self, stream=sys.stdout): self.stream = stream self.emit_from_callgraph() class stmt(object): def __init__(self, stream=sys.stdout): self.indent = indent def __enter__(self): pass def __exit__(self, *arg): pass class global_stmt(stmt): pass class state_stmt(stmt): pass class transition_stmt(stmt): pass