lib/MissMatch.js
function parseBinding(node) {
    consume(); // '@'
    var binding = [], first = once(true);

    while (hasNext()) {
      if (validChar(peek(), first())) {
        binding[binding.length] = next();
      } else {
        break;
      }
    }

    if (binding.length > 0) {
      node.binding = binding.join('');
    } else {
      throw "No binding name given at " + index + " for " + node.type;
    }
  }
function parseBinding(node) {
    consume(); // '@'
    var binding = [], first = once(true);

    while (hasNext()) {
      if (validChar(peek(), first())) {
        binding[binding.length] = next();
      } else {
        break;
      }
    }

    if (binding.length > 0) {
      node.binding = binding.join('');
    } else {
      throw "No binding name given at " + index + " for " + node.type;
    }
  }
Parses @ bindings. (Patterns bound to variables that are available
in the handler function if the pattern matches).
e.g. 'n@x' matches a numeric value and binds it to 'x'.