X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=natset.el;h=20372a7c5d31f44e10dbd8a2302e22709cfdbe91;hb=e3747e8f4ecbf39d106d117fb494506089cc5c2a;hp=2a090415b3dfedbb366bffe8880ea7b5d96a2151;hpb=321fe06f7c522588348cee5be193bfe8b578983c;p=elisp%2Fflim.git diff --git a/natset.el b/natset.el index 2a09041..20372a7 100644 --- a/natset.el +++ b/natset.el @@ -187,6 +187,17 @@ It is impossible to set VALID to empty set because empty set is represented as n ((= (car ns) 0) (natset-gen-pred-exp-internal (cdr ns) var nil 0)) (t (natset-gen-pred-exp-internal ns var t 0)))) +(defun natset-gen-ccl-branch256 (reg fail &rest clauses) + (let ((i 255) tmp blocks) + (while (<= 0 i) + (setq blocks (cons + (if (setq tmp (natset-assoc i clauses)) + (cdr tmp) + fail) + blocks) + i (1- i))) + `(branch ,reg ,@blocks))) + (defun natset-gen-ccl-branch (reg fail &rest clauses) (let* ((natsets (mapcar 'car clauses))) (let ((range (apply 'natset-union natsets)) tmp)