text: 'use strict';
  
  const prefix = 'Out of ASCIIbetical order - ';
  const opStr = ' >= ';
  
  function errorForNode(node) {
    return node.expression.arguments[0].value;
  }
  
  function isDefiningError(node) {
    return node.expression &&
           node.expression.type === 'CallExpression' &&
           node.expression.callee &&
           node.expression.callee.name === 'E';
  }
  
  module.exports = {
    create: function(context) {
      let previousNode;
      return {
        ExpressionStatement: function(node) {
          if (!isDefiningError(node)) return;
          if (!previousNode) {
            previousNode = node;
            return;
          }
          const prev = errorForNode(previousNode);
          const curr = errorForNode(node);
          previousNode = node;
          if (prev >= curr) {
            const message = [prefix, prev, opStr, curr].join('');
            context.report({ node, message });
          }
        }
      };
    }
  };
  