Mercurial > hg > Members > shinya > pyrect
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 |
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() |