code: private static void runMethodTransformers(final ParserClassNode classNode)
          throws Exception
      {
          // TODO: comment above may be right, but it's still dangerous
          // iterate through all rule methods
          // since the ruleMethods map on the classnode is a treemap we get the
          // methods sorted by name which puts all super methods first (since they
          // are prefixed with one or more '$')
          for (final RuleMethod ruleMethod: classNode.getRuleMethods().values()) {
              if (ruleMethod.hasDontExtend())
                  continue;
  
              for (final RuleMethodProcessor methodProcessor: PROCESSORS)
                  if (methodProcessor.appliesTo(classNode, ruleMethod))
                      methodProcessor.process(classNode, ruleMethod);
          }
  
          for (final RuleMethod ruleMethod: classNode.getRuleMethods().values())
              if (!ruleMethod.isGenerationSkipped())
                  classNode.methods.add(ruleMethod);
      }
docs: TODO: poor exception handling again