summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorNicolas Schodet2009-02-09 20:05:30 +0100
committerNicolas Schodet2009-02-09 20:05:30 +0100
commit2e95e3a33bcb34aeec66551503c692c1cb80ab61 (patch)
tree6b763ee0d1bf458da0ced13f44535b42f3b8efb8 /tools
parent552b28da98a387d13aea7403a7e72732a913277d (diff)
* all python:
- changed tabs to spaces.
Diffstat (limited to 'tools')
-rw-r--r--tools/dfagen/dfagen/automaton.py142
-rw-r--r--tools/dfagen/dfagen/command.py8
-rw-r--r--tools/dfagen/dfagen/output/__init__.py30
-rw-r--r--tools/dfagen/dfagen/output/c.py260
-rw-r--r--tools/dfagen/dfagen/output/dot.py22
-rw-r--r--tools/trace/lib/traceclass.py6
6 files changed, 234 insertions, 234 deletions
diff --git a/tools/dfagen/dfagen/automaton.py b/tools/dfagen/dfagen/automaton.py
index 367da582..05dda350 100644
--- a/tools/dfagen/dfagen/automaton.py
+++ b/tools/dfagen/dfagen/automaton.py
@@ -2,110 +2,110 @@ class Event:
"""Event definition."""
def __init__ (self, name, comments = ''):
- self.name = name
- self.comments = comments
- pass
+ self.name = name
+ self.comments = comments
+ pass
def __str__ (self):
- s = ' ' + self.name + '\n'
- if self.comments:
- s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
- return s
+ s = ' ' + self.name + '\n'
+ if self.comments:
+ s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
+ return s
class State:
"""State definition."""
def __init__ (self, name, comments = ''):
- self.name = name
- self.comments = comments
- self.transitions = { }
+ self.name = name
+ self.comments = comments
+ self.transitions = { }
def __str__ (self):
- s = ' ' + self.name + '\n'
- if self.comments:
- s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
- return s
+ s = ' ' + self.name + '\n'
+ if self.comments:
+ s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
+ return s
def add_branch (self, branch):
- if branch.event not in self.transitions:
- self.transitions[branch.event] = Transition (branch.event)
- self.transitions[branch.event].add_branch (branch)
+ if branch.event not in self.transitions:
+ self.transitions[branch.event] = Transition (branch.event)
+ self.transitions[branch.event].add_branch (branch)
class Transition:
"""Transition definition."""
def __init__ (self, event):
- self.event = event
- self.branches = { }
+ self.event = event
+ self.branches = { }
def add_branch (self, branch):
- assert self.event is branch.event
- if branch.name == None and self.branches:
- raise KeyError (branch.name)
- if branch.name != None and None in self.branches:
- raise KeyError (branch.name)
- if branch.name in self.branches:
- raise KeyError (branch.name)
- self.branches[branch.name] = branch
+ assert self.event is branch.event
+ if branch.name == None and self.branches:
+ raise KeyError (branch.name)
+ if branch.name != None and None in self.branches:
+ raise KeyError (branch.name)
+ if branch.name in self.branches:
+ raise KeyError (branch.name)
+ self.branches[branch.name] = branch
def __str__ (self):
- s = ''
- for br in self.branches.values ():
- s += str (br);
- return s
+ s = ''
+ for br in self.branches.values ():
+ s += str (br);
+ return s
class TransitionBranch:
def __init__ (self, event, name = None, to = None, comments = ''):
- self.event = event
- self.name = name
- self.to = to
- self.comments = comments
+ self.event = event
+ self.name = name
+ self.to = to
+ self.comments = comments
def __str__ (self):
- s = ' ' + self.event.name
- if self.name:
- s += ': ' + self.name
- s += ' -> ' + (self.to and self.to.name or '.') + '\n'
- if self.comments:
- s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
- return s
+ s = ' ' + self.event.name
+ if self.name:
+ s += ': ' + self.name
+ s += ' -> ' + (self.to and self.to.name or '.') + '\n'
+ if self.comments:
+ s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
+ return s
class Automaton:
def __init__ (self, name):
- self.name = name
- self.comments = ''
- self.initial = None
- self.states = { }
- self.events = { }
+ self.name = name
+ self.comments = ''
+ self.initial = None
+ self.states = { }
+ self.events = { }
def add_state (self, state):
- if state.name in self.states:
- raise KeyError (state.name)
- if not self.states:
- self.initial = state
- self.states[state.name] = state
+ if state.name in self.states:
+ raise KeyError (state.name)
+ if not self.states:
+ self.initial = state
+ self.states[state.name] = state
def add_event (self, event):
- if event.name in self.events:
- raise KeyError (event.name)
- self.events[event.name] = event
+ if event.name in self.events:
+ raise KeyError (event.name)
+ self.events[event.name] = event
def __str__ (self):
- s = self.name
- if self.comments:
- s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
- s += '\nStates:\n'
- for state in self.states.values ():
- s += str (state)
- s += '\nEvents:\n'
- for event in self.events.values ():
- s += str (event)
- s += '\n'
- for state in self.states.values ():
- s += state.name + ':\n'
- for tr in state.transitions.values ():
- s += str (tr)
- s += '\n'
- return s
+ s = self.name
+ if self.comments:
+ s += ' ' + self.comments.replace ('\n', '\n ') + '\n'
+ s += '\nStates:\n'
+ for state in self.states.values ():
+ s += str (state)
+ s += '\nEvents:\n'
+ for event in self.events.values ():
+ s += str (event)
+ s += '\n'
+ for state in self.states.values ():
+ s += state.name + ':\n'
+ for tr in state.transitions.values ():
+ s += str (tr)
+ s += '\n'
+ return s
diff --git a/tools/dfagen/dfagen/command.py b/tools/dfagen/dfagen/command.py
index 36f4803d..8a976023 100644
--- a/tools/dfagen/dfagen/command.py
+++ b/tools/dfagen/dfagen/command.py
@@ -10,13 +10,13 @@ from optparse import OptionParser
def run ():
opt = OptionParser ()
opt.add_option ('-d', '--dfa', dest='dfa',
- help='read DFA description from FILE', metavar='FILE')
+ help='read DFA description from FILE', metavar='FILE')
opt.add_option ('-o', '--output', dest='output',
- help='choose output format', metavar='OUTPUT')
+ help='choose output format', metavar='OUTPUT')
opt.add_option ('-c', '--config', dest='config',
- help='read output configuration from FILE', metavar='FILE')
+ help='read output configuration from FILE', metavar='FILE')
opt.add_option ('-p', '--prefix', dest='prefix',
- help='use PREFIX for generated output', metavar='PREFIX')
+ help='use PREFIX for generated output', metavar='PREFIX')
# TODO add more error checking.
(options, args) = opt.parse_args ()
# Read automaton.
diff --git a/tools/dfagen/dfagen/output/__init__.py b/tools/dfagen/dfagen/output/__init__.py
index bbb8365a..567ab745 100644
--- a/tools/dfagen/dfagen/output/__init__.py
+++ b/tools/dfagen/dfagen/output/__init__.py
@@ -2,30 +2,30 @@ from ConfigParser import ConfigParser
class UserConfig:
def __init__ (self, file):
- if file:
- f = open (file, 'r')
- cp = ConfigParser ()
- cp.readfp (f)
- f.close ()
- self.dict = dict (cp.items ('user'))
- if cp.has_section ('templates'):
- self.templates = dict (cp.items ('templates'))
- else:
- self.templates = dict ()
+ if file:
+ f = open (file, 'r')
+ cp = ConfigParser ()
+ cp.readfp (f)
+ f.close ()
+ self.dict = dict (cp.items ('user'))
+ if cp.has_section ('templates'):
+ self.templates = dict (cp.items ('templates'))
+ else:
+ self.templates = dict ()
def __getitem__ (self, key):
- return self.dict[key]
+ return self.dict[key]
def __contains__ (self, key):
- return key in self.dict
+ return key in self.dict
import c
import dot
outputs = dict (
- c = c,
- dot = dot,
- )
+ c = c,
+ dot = dot,
+ )
def get_output (name):
return outputs[name];
diff --git a/tools/dfagen/dfagen/output/c.py b/tools/dfagen/dfagen/output/c.py
index 40371563..099302f9 100644
--- a/tools/dfagen/dfagen/output/c.py
+++ b/tools/dfagen/dfagen/output/c.py
@@ -3,162 +3,162 @@ import os.path
class WriterData:
def __init__ (self, prefix, automaton, user):
- self.prefix = prefix
- self.automaton = automaton
- self.user = user
- self.states = self.automaton.states.values ()
- self.events = self.automaton.events.values ()
- self.dict = dict (
- prefix = prefix,
- PREFIX = prefix.upper (),
- name = automaton.name,
- comments = automaton.comments,
- initial = automaton.initial.name,
- states = self.list_states,
- events = self.list_events,
- states_names = self.list_states_names,
- events_names = self.list_events_names,
- branches = self.list_branches,
- transition_table = self.transition_table,
- states_template = self.states_template,
- )
+ self.prefix = prefix
+ self.automaton = automaton
+ self.user = user
+ self.states = self.automaton.states.values ()
+ self.events = self.automaton.events.values ()
+ self.dict = dict (
+ prefix = prefix,
+ PREFIX = prefix.upper (),
+ name = automaton.name,
+ comments = automaton.comments,
+ initial = automaton.initial.name,
+ states = self.list_states,
+ events = self.list_events,
+ states_names = self.list_states_names,
+ events_names = self.list_events_names,
+ branches = self.list_branches,
+ transition_table = self.transition_table,
+ states_template = self.states_template,
+ )
def list_states (self):
- return ''.join ([' ' + self.prefix.upper () + '_STATE_' + s.name
- + ',\n' for s in self.states])
+ return ''.join ([' ' + self.prefix.upper () + '_STATE_' + s.name
+ + ',\n' for s in self.states])
def list_events (self):
- return ''.join ([' ' + self.prefix.upper () + '_EVENT_'
- + e.name.replace (' ', '_') + ',\n' for e in self.events])
+ return ''.join ([' ' + self.prefix.upper () + '_EVENT_'
+ + e.name.replace (' ', '_') + ',\n' for e in self.events])
def list_states_names (self):
- return ''.join ([' "' + s.name + '",\n' for s in self.states])
+ return ''.join ([' "' + s.name + '",\n' for s in self.states])
def list_events_names (self):
- return ''.join ([' "' + e.name.replace (' ', '_') + '",\n'
- for e in self.events])
+ return ''.join ([' "' + e.name.replace (' ', '_') + '",\n'
+ for e in self.events])
def list_branches (self):
- l = ''
- for s in self.states:
- for tr in s.transitions.values ():
- for br in tr.branches.values ():
- n = dict (
- PREFIX = self.prefix.upper (),
- state = s.name,
- event = tr.event.name.replace (' ', '_'),
- branch = (br.name and br.name.replace (' ', '_')
- or ''),
- to = (br.to and br.to.name or s.name),
- )
- l += (' %(PREFIX)s_BRANCH__%(state)s__%(event)s__%(branch)s = '
- + '_BRANCH (%(state)s, %(event)s, %(to)s),\n') % n
- return l
+ l = ''
+ for s in self.states:
+ for tr in s.transitions.values ():
+ for br in tr.branches.values ():
+ n = dict (
+ PREFIX = self.prefix.upper (),
+ state = s.name,
+ event = tr.event.name.replace (' ', '_'),
+ branch = (br.name and br.name.replace (' ', '_')
+ or ''),
+ to = (br.to and br.to.name or s.name),
+ )
+ l += (' %(PREFIX)s_BRANCH__%(state)s__%(event)s__%(branch)s = '
+ + '_BRANCH (%(state)s, %(event)s, %(to)s),\n') % n
+ return l
def transition_table (self):
- r = ''
- for s in self.states:
- r += ' { '
- es = [ ]
- for e in self.events:
- if e in s.transitions:
- es.append (self.prefix + '__' + s.name + '__'
- + e.name.replace (' ', '_'))
- else:
- es.append ('NULL')
- r += ',\n '.join (es)
- r += ' },\n'
- return r
+ r = ''
+ for s in self.states:
+ r += ' { '
+ es = [ ]
+ for e in self.events:
+ if e in s.transitions:
+ es.append (self.prefix + '__' + s.name + '__'
+ + e.name.replace (' ', '_'))
+ else:
+ es.append ('NULL')
+ r += ',\n '.join (es)
+ r += ' },\n'
+ return r
def states_template (self, template):
- t = open (os.path.join (self.templatedir, template), 'r')
- tt = t.read ()
- t.close ()
- exp = ''
- for s in self.states:
- for tr in s.transitions.values ():
- d = WriterData (self.prefix, self.automaton, self.user)
- branches_to = '\n'.join (
- [(br.name and br.name or '')
- + ' => '
- + (br.to and br.to.name or s.name)
- + (br.comments and ('\n '
- + br.comments.replace ('\n', '\n ')) or '')
- for br in tr.branches.values ()])
- returns = '\n'.join (
- [' return ' + self.prefix + '_next'
- + (br.name and '_branch' or '')
- + ' (' + s.name + ', '
- + tr.event.name.replace (' ', '_')
- + (br.name and ', ' + br.name.replace (' ', '_')
- or '')
- + ');'
- for br in tr.branches.values ()])
- d.dict = dict (
- prefix = self.prefix,
- user = self.user,
- state = s.name,
- event = tr.event.name.replace (' ', '_'),
- branches_to = branches_to,
- returns = returns,
- )
- exp += tt % d
- return exp
+ t = open (os.path.join (self.templatedir, template), 'r')
+ tt = t.read ()
+ t.close ()
+ exp = ''
+ for s in self.states:
+ for tr in s.transitions.values ():
+ d = WriterData (self.prefix, self.automaton, self.user)
+ branches_to = '\n'.join (
+ [(br.name and br.name or '')
+ + ' => '
+ + (br.to and br.to.name or s.name)
+ + (br.comments and ('\n '
+ + br.comments.replace ('\n', '\n ')) or '')
+ for br in tr.branches.values ()])
+ returns = '\n'.join (
+ [' return ' + self.prefix + '_next'
+ + (br.name and '_branch' or '')
+ + ' (' + s.name + ', '
+ + tr.event.name.replace (' ', '_')
+ + (br.name and ', ' + br.name.replace (' ', '_')
+ or '')
+ + ');'
+ for br in tr.branches.values ()])
+ d.dict = dict (
+ prefix = self.prefix,
+ user = self.user,
+ state = s.name,
+ event = tr.event.name.replace (' ', '_'),
+ branches_to = branches_to,
+ returns = returns,
+ )
+ exp += tt % d
+ return exp
def __getitem__ (self, key):
- preproc = lambda v: v
- args = []
- key = key.split (',')
- key, args = key[0], key[1:]
- if key.startswith ('*'):
- key = key[1:]
- preproc = lambda v: ' * ' + v.replace ('\n', '\n * ') + '\n'
- if key.startswith ('_'):
- key = key[1:]
- preproc = lambda v: v and v + '\n' or ''
- val = None
- if key in self.dict:
- try:
- val = self.dict[key] (*args)
- except TypeError:
- val = self.dict[key]
- elif key.startswith ('user.'):
- val = self.user[key[5:]]
- val = preproc (val)
- if val is None:
- raise KeyError, key
- return val
+ preproc = lambda v: v
+ args = []
+ key = key.split (',')
+ key, args = key[0], key[1:]
+ if key.startswith ('*'):
+ key = key[1:]
+ preproc = lambda v: ' * ' + v.replace ('\n', '\n * ') + '\n'
+ if key.startswith ('_'):
+ key = key[1:]
+ preproc = lambda v: v and v + '\n' or ''
+ val = None
+ if key in self.dict:
+ try:
+ val = self.dict[key] (*args)
+ except TypeError:
+ val = self.dict[key]
+ elif key.startswith ('user.'):
+ val = self.user[key[5:]]
+ val = preproc (val)
+ if val is None:
+ raise KeyError, key
+ return val
class Writer:
def __init__ (self, data, templatedir):
- data.templatedir = templatedir
- self.data = data
- self.templatedir = templatedir
+ data.templatedir = templatedir
+ self.data = data
+ self.templatedir = templatedir
def write_template (self, template, output):
- t = open (os.path.join (self.templatedir, template), 'r')
- tt = t.read ()
- t.close ()
- exp = tt % self.data
- o = open (output, 'w')
- o.write (exp)
- o.close ()
+ t = open (os.path.join (self.templatedir, template), 'r')
+ tt = t.read ()
+ t.close ()
+ exp = tt % self.data
+ o = open (output, 'w')
+ o.write (exp)
+ o.close ()
def write (self):
- templates = self.data.user.templates
- if not templates:
- templates = {
- 'template.h': '%.h',
- 'template.c': '%.c',
- 'template_cb.h': '%_cb.h',
- 'template_cb_skel.c': '%_cb_skel.c',
- }
- for (t, f) in templates.iteritems ():
- self.write_template (t, f.replace ('%', self.data.prefix))
+ templates = self.data.user.templates
+ if not templates:
+ templates = {
+ 'template.h': '%.h',
+ 'template.c': '%.c',
+ 'template_cb.h': '%_cb.h',
+ 'template_cb_skel.c': '%_cb_skel.c',
+ }
+ for (t, f) in templates.iteritems ():
+ self.write_template (t, f.replace ('%', self.data.prefix))
def write (prefix, automaton, user):
w = Writer (WriterData (prefix, automaton, user), 'template-dir' in user
- and user['template-dir'] or os.path.splitext (__file__)[0])
+ and user['template-dir'] or os.path.splitext (__file__)[0])
w.write ()
diff --git a/tools/dfagen/dfagen/output/dot.py b/tools/dfagen/dfagen/output/dot.py
index be346b10..d6cc057c 100644
--- a/tools/dfagen/dfagen/output/dot.py
+++ b/tools/dfagen/dfagen/output/dot.py
@@ -4,16 +4,16 @@ def write (prefix, automaton, user):
o = open (output, 'w')
o.write ('digraph %s {' % prefix)
for s in automaton.states.values ():
- o.write (' %s\n' % s.name)
- for tr in s.transitions.values ():
- for br in tr.branches.values ():
- o.write (' %(state)s -> %(to)s [ label = "%(event)s" ];\n'
- % dict (
- state = s.name,
- event = tr.event.name
- + (br.name and ': ' + br.name or ''),
- to = (br.to and br.to.name or s.name),
- )
- )
+ o.write (' %s\n' % s.name)
+ for tr in s.transitions.values ():
+ for br in tr.branches.values ():
+ o.write (' %(state)s -> %(to)s [ label = "%(event)s" ];\n'
+ % dict (
+ state = s.name,
+ event = tr.event.name
+ + (br.name and ': ' + br.name or ''),
+ to = (br.to and br.to.name or s.name),
+ )
+ )
o.write ('}\n')
o.close ()
diff --git a/tools/trace/lib/traceclass.py b/tools/trace/lib/traceclass.py
index 3dd07142..4c194c73 100644
--- a/tools/trace/lib/traceclass.py
+++ b/tools/trace/lib/traceclass.py
@@ -4,7 +4,7 @@ class TraceParam:
self.__name = name
if (length == 0) or (length == 3) or (length > 4):
- self.__length = 0
+ self.__length = 0
raise Exception ("Length not permitted")
else:
self.__length = length
@@ -18,12 +18,12 @@ class TraceParam:
# Defines the Events of the trace module.
class TraceEvent:
def __init__(self, name = ''):
- self.__name = name
+ self.__name = name
self.__param_list = list()
self.__string = ""
def name (self):
- return self.__name
+ return self.__name
def param_add (self, name, length):
param = TraceParam (name, length)