1
16
17 import org.as2lib.regexp.node.Node;
18 import org.as2lib.regexp.node.Not;
19 import org.as2lib.regexp.node.TreeInfo;
20
21 class org.as2lib.regexp.node.Specials extends Node {
22
23 public function Specials() {
24 }
25
26 public function dup(flag:Boolean):Node {
27 return (flag) ? new Not(this) : new Specials();
28 }
29
30 public function match(matcher:Object, i:Number, seq:String):Boolean {
31 if (i < matcher.to) {
32 var ch:Number = seq.charCodeAt(i);;
33 return (((ch-0xFFF0) | (0xFFFD-ch)) >= 0 || ch == 0xFEFF)
34 && next.match(matcher, i+1, seq);
35 }
36 return false;
37 }
38
39 public function study(info:TreeInfo):Boolean {
40 info.minLength++;
41 info.maxLength++;
42 return next.study(info);
43 }
44 }
45
46