code: function (value, node) {
          var valid = false;
          if (node !== null) {
              switch (node.type) {
                  case "not":     valid = this.exec_not    (value, node); break;
                  case "or":      valid = this.exec_or     (value, node); break;
                  case "hash":    valid = this.exec_hash   (value, node); break;
                  case "array":   valid = this.exec_array  (value, node); break;
                  case "primary": valid = this.exec_primary(value, node); break;
                  case "special": valid = this.exec_special(value, node); break;
                  case "class":   valid = this.exec_class  (value, node); break;
                  case "any":     valid = true;                           break;
                  default:
                      throw _cs.exception("validate", "invalid validation AST: " +
                          "node has unknown type \"" + node.type + "\"");
              }
          }
          return valid;
      }
docs: /*  validate specification (top-level)