annotate pyrect/translator.py @ 45:d29d3470fde7

modify dot translator. add regex as title, and simplify graph.
author Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
date Fri, 06 Aug 2010 20:17:17 +0900
parents 83c69d42faa8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #!/usr/bin/env python
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import sys
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 class Translator(object):
43
83c69d42faa8 replace converting-flow, module dfareg with module regexp. it's is substantial changing in implimentation.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
6 def __init__(self, regexp):
5
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 self.regexp = regexp
43
83c69d42faa8 replace converting-flow, module dfareg with module regexp. it's is substantial changing in implimentation.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
8 self.cg = regexp.dfacg
6
168d60b03e2c add dotTranslator(Translator), that can translate from DFA or NFA into Dot-file(Dot is graph generater using tex.)
ryoma <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
9 self.stream = None
5
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 def emit(self, string):
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 self.stream.write(string)
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
45
d29d3470fde7 modify dot translator. add regex as title, and simplify graph.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
14 def state_name(self, state_name):
43
83c69d42faa8 replace converting-flow, module dfareg with module regexp. it's is substantial changing in implimentation.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
15 return str(state_name)
8
a28f87d353bb simplify DFA state name. (in C/Dot Translator. ex: "1_2_3" -> "1")
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
16
11
94984eaa03e2 modify some function/variable name, to follow PEP coding donvention.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
17 def emit_from_callgraph(self):
5
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 pass
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 def translate(self, stream=sys.stdout):
11fba907c0af add Translater(object), that can translate C/CbC source code
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 self.stream = stream
11
94984eaa03e2 modify some function/variable name, to follow PEP coding donvention.
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
22 self.emit_from_callgraph()