1
16
17 import org.as2lib.regexp.AsciiUtil;
18 import org.as2lib.regexp.node.Node;
19 import org.as2lib.regexp.node.Posix;
20 import org.as2lib.regexp.node.TreeInfo;
21
22
27
28 class org.as2lib.regexp.node.NotPosix extends Node {
29
30 private var ctype:Number;
31
32 public function NotPosix(type:Number) {
33 ctype = type;
34 }
35
36 public function dup(flag:Boolean):Node {
37 return ((flag) ? new Posix(ctype) : new NotPosix(ctype));
38 }
39
40 public function match(matcher:Object, i:Number, seq:String):Boolean {
41 return (i < matcher.to
42 && !AsciiUtil.isType(seq.charCodeAt(i), ctype)
43 && next.match(matcher, i+1, seq));
44 }
45
46 public function study(info:TreeInfo):Boolean {
47 info.minLength++;
48 info.maxLength++;
49 return next.study(info);
50 }
51 }
52
53