annotate Lib/IMPL/DOM/Document.pm @ 40:ac21a032e7a9

bnf parser in progress
author Sergey
date Thu, 10 Dec 2009 17:43:39 +0300
parents c2e7f7c96bcd
children 16ada169ca75
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
1 package IMPL::DOM::Document;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
2 use strict;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
3 use warnings;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
4
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
5 use base qw(IMPL::DOM::Node);
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
6
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
7 __PACKAGE__->PassThroughArgs;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
8
37
c2e7f7c96bcd performance improvements, DOM reworked (a little)
Sergey
parents: 36
diff changeset
9 sub document {
c2e7f7c96bcd performance improvements, DOM reworked (a little)
Sergey
parents: 36
diff changeset
10 return $_[0];
c2e7f7c96bcd performance improvements, DOM reworked (a little)
Sergey
parents: 36
diff changeset
11 }
c2e7f7c96bcd performance improvements, DOM reworked (a little)
Sergey
parents: 36
diff changeset
12
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
13 sub Create {
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
14 my ($this,$nodeName,$class,$refProps) = @_;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
16 $refProps ||= {};
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
17
24
7f00786f8210 Первая рабочая реазизация схемы и навигаторов
Sergey
parents: 18
diff changeset
18 delete $refProps->{nodeName};
7f00786f8210 Первая рабочая реазизация схемы и навигаторов
Sergey
parents: 18
diff changeset
19
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
20 return $class->new(
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
21 nodeName => $nodeName,
37
c2e7f7c96bcd performance improvements, DOM reworked (a little)
Sergey
parents: 36
diff changeset
22 document => $this,
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
23 %$refProps
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
24 );
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
25 }
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
26
36
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
27 {
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
28 my $empty;
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
29 sub Empty() {
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
30 return $empty ? $empty : $empty = __PACKAGE__->new(nodeName => 'Empty');
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
31 }
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
32 }
1828103371d0 DOM in works
Sergey
parents: 24
diff changeset
33
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
34 1;
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
35 __END__
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
36
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
37 =pod
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
38
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
39 =head1 DESCRIPTION
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
40
18
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
41 =head1 METHODS
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
42
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
43 =over
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
44
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
45 =item C<<$doc->Create>>
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
46
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
47 .
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
48
18
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
49 =back
818c74b038ae DOM Schema + tests
Sergey
parents: 15
diff changeset
50
15
16795016e70b Dom schema in progress
Sergey
parents:
diff changeset
51 =cut