}
private void fireAction(Action action, Map dataSoFar) {
Environment env = _bindInputPatternVars(action.getInputPatterns(),
dataSoFar, _env.newFrame());
env = _bindActionStateVars(action.getDecls(), env.newFrame());
_evaluateBody(action.getBody(), env);
Map outputData = _computeOutputData(action.getOutputExpressions(), env);
CSPTokenWriter tokenWriter = new CSPTokenWriter(_ioPorts, _cbc);
tokenWriter.put(outputData);