/[suikacvs]/messaging/manakai/lib/Message/Util/PerlCode.dis
Suika

Contents of /messaging/manakai/lib/Message/Util/PerlCode.dis

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Sat Mar 5 12:00:44 2005 UTC (20 years, 4 months ago) by wakaba
Branch: MAIN
Changes since 1.3: +371 -10 lines
lib/Message/Util/DIS.dis: forMatch bug fixed; lib/Message/Util/PerlCode.dis: Methods for use overload added

1 wakaba 1.1 Module:
2     @QName:
3     Util:PerlCode
4     @FullName:
5     @@lang: en
6     @@@:
7     Perl Code Constructor
8     @Namespace:
9     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/PerlCode#
10    
11     @Description:
12     @@lang:en
13     @@@:
14     This module provides an object-oriented interface to construct
15     Perl code.
16    
17     @Author:
18     @@FullName: Wakaba
19     @@Mail: w@suika.fam.cx
20     @License:
21     @@@:
22     license:Perl+MPL
23     @@Original:
24     @@@FullName:
25     manakai <CODE::lib/manakai/genlib.pl>
26     @@@Year:2004
27     @@@Author:
28     @@@@FullName:Wakaba
29     @@@@Mail:w@suika.fam.cx
30     @Date:
31     @@@:
32 wakaba 1.4 $Date: 2005/03/05 08:09:29 $
33 wakaba 1.1 @@ContentType:
34     dis:Date.RCS
35    
36     @Require:
37     @@Module:
38     @@@Name: ManakaiNode
39     @@@WithFor:
40     ManakaiDOM:Perl
41     @@Module:
42     @@@Name: DOMBoot
43     @@@WithFor:
44     ManakaiDOM:ManakaiDOMLatest
45     @@Module:
46     @@@Name: DOMMetaImpl
47     @@@WithFor:
48     ManakaiDOM:ManakaiDOMLatest
49    
50     @DefaultFor:
51     ManakaiDOM:Perl
52    
53     Namespace:
54     @DIS:
55     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/DIS#
56     @dis:
57     http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis--
58     @dis2pm:
59     http://suika.fam.cx/~wakaba/archive/2004/11/8/dis2pm#
60     @DISlib:
61     http://suika.fam.cx/~wakaba/archive/2004/dis/
62     @DOMCore:
63     http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#
64     @DOMLS:
65     http://suika.fam.cx/~wakaba/archive/2004/dom/ls#
66     @DOMMain:
67     http://suika.fam.cx/~wakaba/archive/2004/dom/main#
68     @infoset:
69     http://www.w3.org/2001/04/infoset#
70     @lang:
71     http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#
72     @license:
73     http://suika.fam.cx/~wakaba/archive/2004/8/18/license#
74     @ManakaiDOM:
75     http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#
76     @Markup:
77     http://suika.fam.cx/~wakaba/archive/2005/manakai/Markup#
78     @MDOMX:
79     http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#
80     @owl:
81     http://www.w3.org/2002/07/owl#
82     @pc:
83     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/PerlCode#
84     @Perl:
85     http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#Perl--
86     @rdf:
87     http://www.w3.org/1999/02/22-rdf-syntax-ns#
88     @rdfs:
89     http://www.w3.org/2000/01/rdf-schema#
90     @swcfg21:
91     http://suika.fam.cx/~wakaba/archive/2005/swcfg21#
92     @TreeCore:\
93     @Util:
94     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/
95    
96     ## -- Features
97    
98     ElementTypeBinding:
99     @Name: FeatureDef
100     @ElementType:
101     dis:ResourceDef
102     @ShadowContent:
103     @@rdf:type:
104     DOMMain:DOMFeature
105     @@AliasFor:
106     @@@@:
107     ::ManakaiDOM:all
108     @@@For:
109     !=ManakaiDOM:all
110    
111     ElementTypeBinding:
112     @Name: FeatureVerDef
113     @ElementType:
114     dis:ResourceDef
115     @ShadowContent:
116     @@rdf:type:
117     DOMMain:DOMFeature
118    
119     ElementTypeBinding:
120     @Name: featureQName
121     @ElementType:
122     dis:AppName
123     @ShadowContent:
124     @@ContentType:
125     dis:TypeQName
126    
127     FeatureDef:
128     @QName: CoreFeature
129     @featureQName:
130     Util:PerlCode
131     @FeatureVerDef:
132     @@QName: CoreFeature10
133     @@Version: 1.0
134     @@ISA: CoreFeature
135     @@FullName:
136     @@@lang:en
137     @@@@:
138     Perl Code Constructor, version 1.0
139     @@Description:
140     @@@lang:en
141     @@@@:
142     Perl Code Constructor, version 1.0.
143    
144     ## -- Classes
145    
146     ClsDef:
147     @ClsQName: ManakaiPerlCodeFragment
148     @ClsISA:
149     ManakaiDOM:ManakaiDOMNodeReference::ManakaiDOM:Perl
150     @enDesc:
151     A class on which another Perl code classes are constructed based.
152    
153     @IntMethod:
154     @@Operator:
155     @@@@:
156     ManakaiDOM:MUErrorHandler
157     @@@ContentType:
158     dis:TypeQName
159     @@Description:
160     @@@lang:en
161     @@@@:
162     This method is a generic error handler; all manakai exceptions
163     and warnings associated to an object are once reported to this method
164     and then delivered to appropriate entities.
165     \
166     If the error is an exception (such as <X::DOMCore:DOMException> or
167     <X::ManakaiDOM:ManakaiDOMImplementationException>), it is
168     simply thrown. If the error is only a warning, it is reported
169     via the <IF::DOMCore:DOMError> interface.
170     \
171     See <PerlModule::Message::Util::Error> documentation for more
172     information on the error reporting mechanism.
173     \
174     {NOTE:: This kind of methods are named as <Perl::___report_error>
175     in the convention of <PerlModule::Message::Util::Error>.
176     \
177     }
178     @@Param:
179     @@@Name:err
180     @@@Type:
181     ManakaiDOM:ManakaiDOMExceptionOrWarning::ManakaiDOM:Perl
182     @@@Description:
183     @@@@lang:en
184     @@@@@:
185     An exception object that describes what kind of error it is
186     and how it should be recovered.
187     \
188     {NOTE:: Exception objects in manakai implementation
189     inherit the class <PerlModule::Message::Util::Error>,
190     that in turn inherits <PerlModule::Error>.
191     \
192     }
193     @@Return:
194     @@@PerlDef:
195     if ($err->isa (<ClassName::ManakaiDOM:ManakaiDOMException
196     ::ManakaiDOM:Perl>)) {
197     $err->throw;
198     } else {
199     \## TODO: Implement warning reporting
200     warn $err->stringify;
201     }
202    
203     @Attr:
204     @@Name: parentNode
205     @@enDesc:
206     The parent construction of this object.
207     @@Get:
208     @@@Type: ManakaiPerlCodeFragment
209     @@@PerlDef:
210     $r = $self->{<Q::TreeCore:node>}->{<Q::pc:parent>};
211     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
212     ::ManakaiDOM:Perl.newReference>
213     (<ClassName::ManakaiPerlSub>) if $r;
214     ##PerlCodeFragment
215    
216     ClsDef:
217     @ClsQName: ManakaiPerlFile
218     @ClsISA: ManakaiPerlCodeFragment
219     @enDesc:
220     Perl source code files.
221    
222     @IntMethod:
223     @@Name:newObject
224     @@ManakaiDOM:isStatic:1
225     @@Description:
226     @@@lang:en
227     @@@@:
228     Creates a new instance object for <Class::ManakaiPerlFile>.
229     @@Return:
230     @@@Type:
231     ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl
232     @@@Description:
233     @@@@lang:en
234     @@@@@:
235     The newly created node object.
236     @@@PerlDef:
237     @@@@@:
238     my $node = $r = <ClassM::ManakaiDOM:ManakaiDOMNodeObject
239     ::ManakaiDOM:Perl.new>;
240     push @{$node->{<Q::TreeCore:subnode>}}, <Q::pc:childNodes>;
241     $node->{<Q::pc:childNodes>} = [];
242     $node->{<Q::pc:sourceFile>} = '';
243     $node->{<Q::pc:sourceModule>} = '';
244     $node->{<Q::pc:sourceFor>} = '';
245     $node->{<Q::pc:currentPackage>} = 'main';
246     $node->{<Q::pc:currentChunk>} = 0;
247     @@@@ImplNote:
248     @@@@@lang:en
249     @@@@@@:
250     Properties: <Q::pc:sourceFile>,
251     <Q::pc:sourceModule>, <Q::pc:sourceFor>, <Q::childNodes>,
252     <Q::pc:currentPackage>, <Q::pc:currentChunk>.
253    
254     @Method:
255     @@Name: appendNewPackage
256     @@enDesc:
257     Appends a new package scope block.
258     @@Param:
259     @@@Name: packageName
260     @@@Type:
261     Perl:package-name::ManakaiDOM:all
262     @@@enDesc:
263     The fully-qualified name of the package to create.
264     @@Return:
265     @@@Type: ManakaiPerlPackageScope
266     @@@enDesc:
267     The newly created package scope object.
268     @@@PerlDef:
269     $r = <ClassM::ManakaiPerlPackageScope.newObject>;
270     $r->{<Q::pc:packageName>} = $packageName;
271     $self->{<Q::TreeCore:node>}
272     -><M::ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl
273     .importTree> ($r);
274     push @{$self->{<Q::TreeCore:node>}->{<Q::pc:childNodes>}}, $r;
275     $r->{<Q::pc:parent>} = $self->{<Q::TreeCore:node>};
276     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
277     ::ManakaiDOM:Perl.newReference>
278     (<ClassName::ManakaiPerlPackageScope>);
279    
280    
281     @Method:
282     @@Name: getFirstPackage
283     @@enDesc:
284     Gets the first package scope block of a name.
285     @@Param:
286     @@@Name: packageName
287     @@@@Type:
288     Perl:package-name::ManakaiDOM:all
289     @@@@enDesc:
290     The fully-qualified name of the package to get.
291     @@NamedParam:
292     @@@Name: makeNewPackage
293     @@@Type:
294     DOMMain:boolean
295     @@@enDesc:
296     Whether a new package scope object should be created if
297     no package of <P::packageName> found.
298     @@@TrueCase:
299     @@@@enDesc:
300     Makes a new object if not found.
301     @@@FalseCase:
302     @@@@enDesc:
303     Don't make a new object.
304     @@Return:
305     @@@Type: ManakaiPerlPackageScope
306     @@@enDesc:
307     The first package scope object whose name is equal to
308     <P::packageName>.
309     @@@nullCase:
310     @@@@enDesc:
311     There is no <P::packageName> package object and
312     the <P::makeNewPackage> parameter is set to <DOM::false>.
313     @@@PerlDef:
314     for my $cn (@{$self->{<Q::TreeCore:node>}->{<Q::pc:childNodes>}}) {
315     if ($cn->{<Q::pc:packageName>} eq $packageName) {
316     $r = $cn;
317     last;
318     }
319     }
320     if ($r) {
321     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
322     ::ManakaiDOM:Perl.newReference>
323     (<ClassName::ManakaiPerlPackageScope>);
324     } elsif ($makeNewPackage) {
325     __DEEP{
326     $r = $self-><M::ManakaiPerlFile.appendNewPackage> ($packageName);
327     }__;
328     }
329    
330     @Method:
331     @@Name: getLastPackage
332     @@enDesc:
333     Gets the last package scope block of a name.
334     @@Param:
335     @@@Name: packageName
336     @@@@Type:
337     Perl:package-name::ManakaiDOM:all
338     @@@@enDesc:
339     The fully-qualified name of the package to get.
340     @@NamedParam:
341     @@@Name: makeNewPackage
342     @@@Type:
343     DOMMain:boolean
344     @@@enDesc:
345     Whether a new package scope object should be created if
346     no package of <P::packageName> found.
347     @@@TrueCase:
348     @@@@enDesc:
349     Makes a new object if not found.
350     @@@FalseCase:
351     @@@@enDesc:
352     Don't make a new object.
353     @@Return:
354     @@@Type: ManakaiPerlPackageScope
355     @@@enDesc:
356     The last package scope object whose name is equal to
357     <P::packageName>.
358     @@@nullCase:
359     @@@@enDesc:
360     There is no <P::packageName> package object and
361     the <P::makeNewPackage> parameter is set to <DOM::false>.
362     @@@PerlDef:
363     for my $cn (reverse @{$self->{<Q::TreeCore:node>}
364     ->{<Q::pc:childNodes>}}) {
365     if ($cn->{<Q::pc:packageName>} eq $packageName) {
366     $r = $cn;
367     last;
368     }
369     }
370     if ($r) {
371     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
372     ::ManakaiDOM:Perl.newReference>
373     (<ClassName::ManakaiPerlPackageScope>);
374     } elsif ($makeNewPackage) {
375     __DEEP{
376     $r = $self-><M::ManakaiPerlFile.appendNewPackage> ($packageName);
377     }__;
378     }
379    
380     @Attr:
381     @@Name: length
382     @@enDesc:
383     The number of child code fragments.
384     @@Type:
385     DOMMain:unsigned-long
386     @@Get:
387     @@@PerlDef:
388 wakaba 1.4 $r = @{$self->{<Q::TreeCore:node>}->{<Q::pc:childNodes>}};
389 wakaba 1.1
390     @Attr:
391     @@Name: sourceFile
392     @@enDesc:
393     The file name of the source file from which this
394     Perl code is primary generated.
395     @@Get:
396     @@@Type:
397     DISLang:String
398     @@@disDef:
399     @@@@GetProp: sourceFile
400     @@Set:
401     @@@Type:
402     DISLang:String
403     @@@disDef:
404     @@@@SetProp: sourceFile
405    
406     @Attr:
407     @@Name: sourceModule
408     @@enDesc:
409     The name URI reference of the source module that this package defines.
410     @@Get:
411     @@@Type:
412     DISLang:String
413     @@@disDef:
414     @@@@GetProp: sourceModule
415     @@Set:
416     @@@Type:
417     DISLang:String
418     @@@disDef:
419     @@@@SetProp: sourceModule
420    
421     @Attr:
422     @@Name: sourceFor
423     @@enDesc:
424     The URI reference of the source module <QUOTE::for> for which this
425     package is.
426     @@Get:
427     @@@Type:
428     DISLang:String
429     @@@disDef:
430     @@@@GetProp: sourceFor
431     @@Set:
432     @@@Type:
433     DISLang:String
434     @@@disDef:
435     @@@@SetProp: sourceFor
436    
437     @ToStringMethod:
438     @@Return:
439     @@@Type:
440     DISLang:String
441     @@@enDesc:
442     The Perl code generated.
443     @@@PerlDef:
444     __DEEP{
445     my $node = $self->{<Q::TreeCore:node>};
446     ## -- Header
447     $r = qq<#!/usr/bin/perl \n>;
448     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
449     (q<This file is automatically generated>);
450     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
451     (q< at >.<ClassM::ManakaiPerlCodeImplementation
452     .rfc3339DateTime> (time).q<,>);
453     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
454     (q< from file ">.$node->{<Q::sourceFile>}.q<",>);
455     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
456     (q[ module <].$node->{<Q::sourceModule>}.q[>,]);
457     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
458     (q[ for <].$node->{<Q::sourceFor>}.q[>.]);
459     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
460     (q<Don't edit by hand!>);
461     $r .= qq<use strict;\n>;
462     $self-><AS::ManakaiPerlFile.currentPackage> ('main');
463     $self-><AS::ManakaiPerlFile.currentChunk> (0);
464    
465     ## -- Packages
466     my $pack = {};
467     for my $sp (@{$node->{<Q::pc:childNodes>}}) {
468     my $spe = $sp-><M::ManakaiDOM:ManakaiDOMNodeObject
469     ::ManakaiDOM:Perl.newReference>
470     (<ClassName::ManakaiPerlPackageScope>);
471     $r .= $spe->stringify;
472     for my $ipack (keys %{$sp->{<Q::dis:Implement>}}) {
473     $pack->{$ipack} ||= true; # not defined
474     }
475     $pack->{$sp->{<Q::pc:packageName>}} = []; # defined
476     }
477    
478     ## -- Enables interface packages
479 wakaba 1.3 my @packs = map {'$' . $_ . '::'}
480     grep {not ref $pack->{$_} and $pack->{$_}}
481     keys %$pack;
482     $r .= q<for (>. join (', ', @packs) . qq<){}\n> if @packs;
483 wakaba 1.1
484     ## -- Footer
485     $r .= <ClassM::ManakaiPerlCodeImplementation.perlComment>
486 wakaba 1.2 (q[License: <].$node->{<Q::dis:License>}.qq[>\n]);
487 wakaba 1.1 $r .= qq<1;\n>;
488     }__;
489    
490     @Attr:
491     @@Name: currentPackage
492     @@enDesc:
493     The current Perl package (used in stringify method).
494     @@Type:
495     Perl:package-name::ManakaiDOM:all
496     @@Get:
497     @@@disDef:
498     @@@@GetProp: currentPackage
499     @@Set:
500     @@@disDef:
501     @@@@SetProp: currentPackage
502    
503     @Attr:
504     @@Name: currentChunk
505     @@enDesc:
506     The current code chunk (used in stringify method).
507     @@Type:
508     DOMMain:unsigned-long::ManakaiDOM:all
509     @@Get:
510     @@@disDef:
511     @@@@GetProp: currentChunk
512     @@Set:
513     @@@disDef:
514     @@@@SetProp: currentChunk
515 wakaba 1.2
516     @Attr:
517     @@Name: licenseURI
518     @@enDesc:
519     The license term URI reference for this code.
520     @@Type:
521     DISLang:String::ManakaiDOM:all
522     @@Get:
523     @@@disDef:
524     @@@@GetProp:
525     dis:License
526     @@Set:
527     @@@disDef:
528     @@@@SetProp:
529     dis:License
530 wakaba 1.1 ##PerlFile
531    
532     PropDef:
533     @QName: sourceModule
534     @enDesc:
535     The soruce module name URI reference.
536    
537     PropDef:
538     @QName: sourceFor
539     @enDesc:
540     The source module <QUOTE::for> URI reference.
541    
542     PropDef:
543     @QName: currentPackage
544     @enDesc:
545     The current Perl package name (used for stringify).
546    
547     PropDef:
548     @QName: currentChunk
549     @enDesc:
550     The current code chunk (used for stringify).
551    
552     ClsDef:
553     @ClsQName: ManakaiPerlPackageScope
554     @ClsISA: ManakaiPerlCodeFragment
555    
556     @Attr:
557     @@Name: packageName
558     @@Type:
559     Perl:package-name
560     @@enDesc:
561     The fully-qualified package name.
562     @@Get:
563     @@@disDef:
564     @@@@GetProp: packageName
565    
566     @IntMethod:
567     @@Name:newObject
568     @@ManakaiDOM:isStatic:1
569     @@Description:
570     @@@lang:en
571     @@@@:
572     Creates a new instance object for <Class::ManakaiPerlPackageScope>.
573     @@Return:
574     @@@Type:
575     ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl
576     @@@Description:
577     @@@@lang:en
578     @@@@@:
579     The newly created node object.
580     @@@PerlDef:
581     @@@@@:
582     my $node = $r = <ClassM::ManakaiDOM:ManakaiDOMNodeObject
583     ::ManakaiDOM:Perl.new>;
584 wakaba 1.4 push @{$node->{<Q::TreeCore:subnode2>}}, <Q::pc:sub>,
585     <Q::dis2pm:overload>;
586 wakaba 1.1 push @{$node->{<Q::TreeCore:origin>}}, <Q::pc:parent>;
587     $node->{<Q::pc:sub>} = {};
588     $node->{<Q::dis:ISA>} = [];
589     $node->{<Q::dis:Implement>} = {};
590 wakaba 1.4 $node->{<Q::dis2pm:overload>} = {};
591 wakaba 1.1
592     @Method:
593     @@Name: getSub
594     @@enDesc:
595     Gets a subroutine.
596     @@Param:
597     @@@Name: subName
598     @@@Type:
599     DISPerl:SubName::ManakaiDOM:all
600     @@@enDesc:
601     The name of subroutine to get.
602     @@NamedParam:
603     @@@Name: makeNewNode
604     @@@Type:
605     DOMMain:boolean
606     @@@enDesc:
607     Whether a new subroutine object should be created,
608     if it is not exist, or not.
609     @@Return:
610     @@@Type: ManakaiPerlSub
611     @@@enDesc:
612     The subroutine object.
613 wakaba 1.4 @@@nullCase:
614     @@@@enDesc:
615     Either the specified subroutine is not found and
616     the <P::makeNewNode> parameter is set to <DOM::false> or
617     the subroutine is defined as an alias.
618 wakaba 1.1 @@@PerlDef:
619     if ($self->{<Q::TreeCore:node>}->{<Q::pc:sub>}->{$subName}) {
620 wakaba 1.4 $r = ref $self->{<Q::TreeCore:node>}->{<Q::pc:sub>}->{$subName}
621     ? $self->{<Q::TreeCore:node>}->{<Q::pc:sub>}->{$subName} : null;
622 wakaba 1.1 } elsif ($makeNewNode) {
623     $r = $self->{<Q::TreeCore:node>}->{<Q::pc:sub>}->{$subName}
624     = <ClassM::ManakaiPerlSub.newObject>;
625     $self->{<Q::TreeCore:node>}
626     -><M::ManakaiDOM:ManakaiDOMNodeObject
627     ::ManakaiDOM:Perl.importTree> ($r);
628     $r->{<Q::pc:parent>} = $self->{<Q::TreeCore:node>};
629     $r->{<Q::pc:localName>} = $subName;
630     }
631     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
632     ::ManakaiDOM:Perl.newReference>
633     (<ClassName::ManakaiPerlSub>) if $r;
634    
635 wakaba 1.4 @Method:
636     @@Name: getSubAliasName
637     @@enDesc:
638     Gets the real name of a subroutine.
639     @@Param:
640     @@@Name: subName
641     @@@Type:
642     DISLang:String::ManakaiDOM:all
643     @@@enDesc:
644     The name of the alias subroutine.
645     @@Return:
646     @@@Type:
647     DISLang:String::ManakaiDOM:all
648     @@@enDesc:
649     The real name.
650     @@@nullCase:
651     @@@@enDesc:
652     The specified name is used.
653     @@@InCase:
654     @@@@Value:\#CODE
655     @@@@enDesc:
656     The specified name is not an alias.
657     @@@PerlDef:
658     if ($self->{<Q::TreeCore:node>}->{<Q::sub>}->{$subName}) {
659     $r = ref $self->{<Q::TreeCore:node>}
660     ->{<Q::sub>}->{$subName}
661     ? q<#CODE> : $self->{<Q::TreeCore:node>}
662     ->{<Q::sub>}->{$subName};
663     }
664    
665     @Method:
666     @@Name: setSubAliasName
667     @@enDesc:
668     Sets a subroutine name as an alias of another subroutine.
669     @@Param:
670     @@@Name: aliasName
671     @@@Type:
672     DISLang:String::ManakaiDOM:all
673     @@@enDesc:
674     The alias name.
675     @@Param:
676     @@@Name: realName
677     @@@Type:
678     DISLang:String::ManakaiDOM:all
679     @@@enDesc:
680     The real name.
681     @@Return:
682     @@@UnknownOperatorException:
683     @@@PerlDef:
684     my $ops = $self->{<Q::TreeCore:node>}->{<Q::sub>};
685     if (ref $ops->{$aliasName}) {
686     CORE::delete $ops->{<Q::pc:parent>};
687     $ops->{$aliasName}
688     -><M::ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl.orphanate>;
689     }
690     $ops->{$aliasName} = $realName;
691    
692     @Method:
693     @@Name: getOverloadSub
694     @@enDesc:
695     Gets an overloading subroutine.
696     @@Param:
697     @@@Name: opName
698     @@@Type:
699     DISLang:String::ManakaiDOM:all
700     @@@enDesc:
701     The name of the overloaded operator.
702     @@NamedParam:
703     @@@Name: makeNewNode
704     @@@Type:
705     DOMMain:boolean
706     @@@enDesc:
707     Whether a new subroutine object should be created,
708     if it is not exist, or not.
709     @@Return:
710     @@@Type: ManakaiPerlSub
711     @@@enDesc:
712     The subroutine object.
713     @@@nullCase:
714     @@@@enDesc:
715     Either the specified subroutine is not found and
716     the <P::makeNewNode> parameter is set to <DOM::false> or
717     the specified operator is overloaded by specifying method name.
718     @@@UnknownOperatorException:
719     @@@PerlDef:
720     unless (<Code::operatorNameList>->{$opName}) {
721     __EXCEPTION{UNSUPPORTED_OPERATOR_ERR::
722     pc:operator => {$opName},
723     }__;
724     }
725     if ($self->{<Q::TreeCore:node>}->{<Q::dis2pm:operator>}->{$opName}) {
726     $r = ref $self->{<Q::TreeCore:node>}
727     ->{<Q::dis2pm:operator>}->{$opName}
728     ? $self->{<Q::TreeCore:node>}
729     ->{<Q::dis2pm:operator>}->{$opName} : null;
730     } elsif ($makeNewNode) {
731     $r = $self->{<Q::TreeCore:node>}->{<Q::dis2pm:operator>}->{$opName}
732     = <ClassM::ManakaiPerlSub.newObject>;
733     $self->{<Q::TreeCore:node>}
734     -><M::ManakaiDOM:ManakaiDOMNodeObject
735     ::ManakaiDOM:Perl.importTree> ($r);
736     $r->{<Q::pc:parent>} = $self->{<Q::TreeCore:node>};
737     }
738     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
739     ::ManakaiDOM:Perl.newReference>
740     (<ClassName::ManakaiPerlSub>) if $r;
741    
742     @Method:
743     @@Name: getOverloadMethodName
744     @@enDesc:
745     Gets an overloading method name.
746     @@Param:
747     @@@Name: opName
748     @@@Type:
749     DISLang:String::ManakaiDOM:all
750     @@@enDesc:
751     The name of the overloaded operator.
752     @@Return:
753     @@@Type:
754     DISLang:String::ManakaiDOM:all
755     @@@enDesc:
756     The method name.
757     @@@nullCase:
758     @@@@enDesc:
759     The specified operator is not overloaded.
760     @@@InCase:
761     @@@@Value:\#CODE
762     @@@@enDesc:
763     The operator is overloaded by an anonymous subroutine.
764     @@@PerlDef:
765     if ($self->{<Q::TreeCore:node>}->{<Q::dis2pm:operator>}->{$opName}) {
766     $r = ref $self->{<Q::TreeCore:node>}
767     ->{<Q::dis2pm:operator>}->{$opName}
768     ? q<#CODE> : $self->{<Q::TreeCore:node>}
769     ->{<Q::dis2pm:operator>}->{$opName};
770     }
771    
772     @Method:
773     @@Name: setOverloadMethodName
774     @@enDesc:
775     Sets an overloading method name.
776     @@Param:
777     @@@Name: opName
778     @@@Type:
779     DISLang:String::ManakaiDOM:all
780     @@@enDesc:
781     The name of the overloaded operator.
782     @@Param:
783     @@@Name: methodName
784     @@@Type:
785     DISLang:String::ManakaiDOM:all
786     @@@enDesc:
787     The name of the method by which overloads an operator.
788     \
789     {NOTE:: The method may or may not belong to this package.
790     \
791     }
792     @@Return:
793     @@@UnknownOperatorException:
794     @@@PerlDef:
795     unless (<Code::operatorNameList>->{$opName}) {
796     __EXCEPTION{UNSUPPORTED_OPERATOR_ERR::
797     pc:operator => {$opName},
798     }__;
799     }
800     my $ops = $self->{<Q::TreeCore:node>}->{<Q::dis2pm:operator>};
801     if (ref $ops->{$opName}) {
802     CORE::delete $ops->{<Q::pc:parent>};
803     $ops->{$opName}
804     -><M::ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl.orphanate>;
805     }
806     $ops->{$opName} = $methodName;
807    
808 wakaba 1.1 @Attr:
809     @@Name: length
810     @@enDesc:
811     The number of child code fragments.
812     @@Type:
813     DOMMain:unsigned-long
814     @@Get:
815     @@@PerlDef:
816 wakaba 1.4 $r = keys (%{$self->{<Q::TreeCore:node>}->{<Q::pc:sub>}})
817     + keys (%{$self->{<Q::TreeCore:node>}->{<Q::dis2pm:operator>}});
818 wakaba 1.1
819     @Method:
820     @@Name: addIsaPackage
821     @@enDesc:
822     Adds a class package that this class inherits.
823     @@Param:
824     @@@Name: packageName
825     @@@Type:
826     Perl:package-name::ManakaiDOM:all
827     @@@enDesc:
828     The name of package to add.
829     @@Return:
830     @@@PerlDef:
831     push @{$self->{<Q::TreeCore:node>}->{<Q::dis:ISA>}}, $packageName;
832    
833     @Method:
834     @@Name: addImplementPackage
835     @@enDesc:
836     Adds a interface package that this class implements.
837     @@Param:
838     @@@Name: packageName
839     @@@Type:
840     Perl:package-name::ManakaiDOM:all
841     @@@enDesc:
842     The name of package to add.
843     @@Return:
844     @@@PerlDef:
845     $self->{<Q::TreeCore:node>}->{<Q::dis:Implement>}->{$packageName} = true;
846    
847     @ToStringMethod:
848     @@Return:
849     @@@Type:
850     DISLang:String
851     @@@enDesc:
852     Perl code.
853     @@@PerlDef:
854     my $file = $self-><AG::ManakaiPerlCodeFragment.parentNode>;
855     my $node = $self->{<Q::TreeCore:node>};
856     my $pn = $node->{<Q::pc:packageName>};
857     $r .= q<package > . $pn . ";\n";
858     __DEEP{
859     $file-><AS::ManakaiPerlFile.currentPackage> ($pn);
860     $r .= 'our $VERSION = '.
861     <ClassM::ManakaiPerlCodeImplementation.versionDateTime> (time).
862     ";\n";
863     }__;
864     my @isa = (@{$node->{<Q::dis:ISA>}},
865     sort keys %{$node->{<Q::dis:Implement>}});
866     if (@isa) {
867     $r .= 'push our @ISA, ' .
868     <ClassM::ManakaiPerlCodeImplementation.perlList> (\@isa) .
869     ";\n";
870     }
871 wakaba 1.4 for my $cnk (keys %{$node->{<Q::pc:sub>}}) {
872     my $cno = $node->{<Q::pc:sub>}->{$cnk};
873     if (ref $cno) {
874     my $cn = $cno-><M::ManakaiDOM:ManakaiDOMNodeObject
875     ::ManakaiDOM:Perl.newReference>
876     (<ClassName::ManakaiPerlSub>);
877     $r .= $cn->stringify;
878     } else {
879     $r .= qq<*$cnk = \&$cno;\n>;
880     }
881     }
882     my $op = '';
883     for my $cnk (keys %{$node->{<Q::dis2pm:operator>}}) {
884     my $cno = $node->{<Q::dis2pm:operator>}->{$cnk};
885     if (ref $cno) {
886     my $cn = $cno-><M::ManakaiDOM:ManakaiDOMNodeObject
887     ::ManakaiDOM:Perl.newReference>
888     (<ClassName::ManakaiPerlSub>);
889     $op .= <ClassM::ManakaiPerlCodeImplementation.perlLiteral> ($cnk)
890     . ' => ' . $cn->stringify . ', ';
891     } elsif (defined $cno) {
892     $op .= <ClassM::ManakaiPerlCodeImplementation.perlList>
893     ([$cnk => $cno]) . ', ';
894     }
895     }
896     $r .= 'use overload ' . $op . qq[fallback => 1;\n] if $op;
897 wakaba 1.1 ##PerlPackageScope
898    
899 wakaba 1.4 PropDef:
900     @QName:
901     dis2pm:operator
902     @enDesc:
903     Overloaded operators.
904    
905     ElementTypeBinding:
906     @Name: UnknownOperatorException
907     @ElementType:
908     ManakaiDOM:raises
909     @ShadowContent:
910     @@@:UNSUPPORTED_OPERATOR_ERR
911     @@enDesc:
912     An attempt is made to overload an unknown operator.
913    
914     XParamDef:
915     @QName:
916     pc:operator
917     @enDesc:
918     An operator to overload.
919    
920     ResourceDef:
921     @QName: operatorNameList
922     @enDesc:
923     The list of valid operators for <PerlModule::operator> pragma.
924     @rdf:type:
925     dis2pm:InlineCode
926     @PerlDef:
927     {qw[
928     + 1 - 1 * 1 / 1 % 1 ** 1 << 1 >> 1 x 1 . 1
929     += 1 -= 1 *= 1 /= 1 %= 1 **= 1 <<= 1 >>= 1 x= 1 .= 1
930     < 1 <= 1 > 1 >= 1 == 1 != 1 <=> 1
931     lt 1 le 1 gt 1 ge 1 eq 1 ne 1 cmp 1
932     & 1 | 1 ^ 1 neg 1 ! 1 ~ 1
933     ++ 1 -- 1 = 1
934     atan2 1 cos 1 sin 1 exp 1 abs 1 log 1 sqrt 1
935     bool 1 "" 1 0+ 1 ${} 1 @{} 1 %{} 1 &{} 1 *{} 1 <> 1
936     nomethod 1
937     ]}
938    
939 wakaba 1.1 ClsDef:
940     @ClsQName: ManakaiPerlSub
941     @ClsISA: ManakaiPerlCodeFragment
942     @enDesc:
943     Perl subroutines.
944    
945     @IntMethod:
946     @@Name:newObject
947     @@ManakaiDOM:isStatic:1
948     @@Description:
949     @@@lang:en
950     @@@@:
951     Creates a new instance object for <Class::ManakaiPerlSub>.
952     @@Return:
953     @@@Type:
954     ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl
955     @@@Description:
956     @@@@lang:en
957     @@@@@:
958     The newly created node object.
959     @@@PerlDef:
960     @@@@@:
961     my $node = $r = <ClassM::ManakaiDOM:ManakaiDOMNodeObject
962     ::ManakaiDOM:Perl.new>;
963     push @{$node->{<Q::TreeCore:subnode>}}, <Q::pc:childNodes>;
964     push @{$node->{<Q::TreeCore:origin>}}, <Q::pc:parent>;
965     $node->{<Q::pc:childNodes>} = [];
966     $node->{<Q::pc:sourceLine>} = 0;
967     @@@@ImplNote:
968     @@@@@lang:en
969     @@@@@@:
970     Optional properties: <Q::pc:localName>,
971     <Q::pc:sourceFile>, <Q::pc:sourceLine>.
972    
973     @Attr:
974     @@Name: length
975     @@enDesc:
976     The number of child code fragments.
977     @@Type:
978     DOMMain:unsigned-long
979     @@Get:
980     @@@PerlDef:
981 wakaba 1.4 $r = @{$self->{<Q::TreeCore:node>}->{<Q::pc:childNodes>}};
982 wakaba 1.1
983     @Attr:
984     @@Name: name
985     @@enDesc:
986     The name of this subroutine.
987     @@Type:
988     DISPerl:SubName
989     @@Get:
990     @@@disDef:
991     @@@@GetProp: localName
992    
993     @Attr:
994     @@Name: prototype
995     @@enDesc:
996     The prototype of this subroutine.
997     @@Type:
998     DISPerl:SubPrototype
999     @@Get:
1000     @@@disDef:
1001     @@@@GetProp: prototype
1002     @@@nullCase:
1003     @@@@enDesc:
1004     No prototype is set.
1005     @@Set:
1006     @@@disDef:
1007     @@@@SetProp: prototype
1008     @@@nullCase:
1009     @@@@enDesc:
1010     No prototype declaration.
1011    
1012     @Attr:
1013     @@Name: currentSourceFile
1014     @@enDesc:
1015     The current source file name that is referred when
1016     a code fragment is added.
1017     @@Type:
1018     DISLang:String
1019     @@Get:
1020     @@@nullCase:
1021     @@@@enDesc: No source file name is set.
1022     @@@disDef:
1023     @@@@GetProp: sourceFile
1024     @@Set:
1025     @@@nullCase:
1026     @@@@enDesc: No (or unknown) source file.
1027     @@@disDef:
1028     @@@@SetProp: sourceFile
1029    
1030     @Attr:
1031     @@Name: currentSourceLine
1032     @@enDesc:
1033     The current line number in source file that is referred when
1034     a code fragment is added.
1035     @@Type:
1036     DOMMain:unsigned-long
1037     @@Get:
1038     @@@disDef:
1039     @@@@GetProp: sourceLine
1040     @@Set:
1041     @@@disDef:
1042     @@@@SetProp: sourceLine
1043    
1044     @Method:
1045     @@Name: appendCode
1046     @@enDesc:
1047     Appends an unparsed Perl code fragment.
1048     @@Param:
1049     @@@Name: codeArg
1050     @@@Type:
1051     lang:Perl::ManakaiDOM:all
1052     @@@enDesc:
1053     An unparsed Perl code fragment.
1054     @@Return:
1055     @@@Type: ManakaiPerlUnparsedCode
1056     @@@enDesc:
1057     The newly created Perl code object.
1058     @@@PerlDef:
1059     $r = <ClassM::ManakaiPerlUnparsedCode.newObject>;
1060     my $node = $self->{<Q::TreeCore:node>};
1061     $r->{<Q::sourceFile>} = $node->{<Q::sourceFile>};
1062     $r->{<Q::sourceLine>} = $node->{<Q::sourceLine>};
1063     $r->{<Q::code>} = $codeArg;
1064     $node->{<Q::sourceLine>} += ($codeArg =~ tr/\x0A/\x0A/);
1065     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
1066     ::ManakaiDOM:Perl.newReference>
1067     (<ClassName::ManakaiPerlUnparsedCode>);
1068    
1069     @Method:
1070     @@Name: skipLines
1071     @@enDesc:
1072     Skips lines in a code.
1073     @@Param:
1074     @@@Name: codeArg
1075     @@@Type:
1076     lang:Perl::ManakaiDOM:all
1077     @@@enDesc:
1078     A code fragment, which is counted lines.
1079     @@Return:
1080     @@@PerlDef:
1081     $self->{<Q::TreeCore:node>}->{<Q::sourceLine>}
1082     += ($codeArg =~ tr/\x0A/\x0A/);
1083 wakaba 1.4
1084     @ToStringMethod:
1085     @@Return:
1086     @@@Type:
1087     DISLang:String
1088     @@@enDesc:
1089     Perl code.
1090     @@@PerlDef:
1091     my $node = $self->{<Q::TreeCore:node>};
1092     $r = q<sub>;
1093     $r .= ' ' . $node->{<Q::pc:localName>}
1094     if defined $node->{<Q::pc:localName>};
1095     $r .= ' (' . $node->{<Q::pc:prototype>} . ')'
1096     if defined $node->{<Q::pc:prototype>};
1097     $r .= " {\n";
1098    
1099     $r .= "}\n";
1100 wakaba 1.1 ##PerlSub
1101    
1102     ClsDef:
1103     @ClsQName: ManakaiPerlUnparsedCode
1104     @ClsISA: ManakaiPerlCodeFragment
1105     @enDesc:
1106     Unparsed Perl code fragments.
1107    
1108     @IntMethod:
1109     @@Name:newObject
1110     @@ManakaiDOM:isStatic:1
1111     @@Description:
1112     @@@lang:en
1113     @@@@:
1114     Creates a new instance object for <Class::ManakaiPerlUnparsedCode>.
1115     @@Return:
1116     @@@Type:
1117     ManakaiDOM:ManakaiDOMNodeObject::ManakaiDOM:Perl
1118     @@@Description:
1119     @@@@lang:en
1120     @@@@@:
1121     The newly created node object.
1122     @@@PerlDef:
1123     @@@@@:
1124     my $node = $r = <ClassM::ManakaiDOM:ManakaiDOMNodeObject
1125     ::ManakaiDOM:Perl.new>;
1126     push @{$node->{<Q::TreeCore:origin>}}, <Q::pc:parent>;
1127     $node->{<Q::pc:code>} = '';
1128     @@@@ImplNote:
1129     @@@@@lang:en
1130     @@@@@@:
1131     Optional properties: <Q::pc:cide>.
1132     ##PerlUnparsedCode
1133    
1134     ClsDef:
1135     @ClsQName: ManakaiPerlCodeImplementation
1136     @enDesc:
1137     The class that provides factory methods.
1138    
1139     @Role:
1140     @@@:
1141     DOMCore:DOMImplementation::ManakaiDOM:ManakaiDOM
1142     @@compat:
1143     DOMCore:ManakaiDOMImplementation::ManakaiDOM:ManakaiDOMLatest
1144    
1145     @Method:
1146     @@Name: createPerlFile
1147     @@enDesc:
1148     Creates a Perl code file.
1149     @@Return:
1150     @@@Type: ManakaiPerlFile
1151     @@@enDesc: A newly created Perl source file object.
1152     @@@PerlDef:
1153     $r = <ClassM::ManakaiPerlFile.newObject>;
1154     $r = $r-><M::ManakaiDOM:ManakaiDOMNodeObject
1155     ::ManakaiDOM:Perl.newReference>
1156     (<ClassName::ManakaiPerlFile>);
1157    
1158     @IntMethod:
1159     @@Name: perlComment
1160     @@ManakaiDOM:isStatic:1
1161     @@enDesc:
1162     Generates a Perl comment string.
1163     @@Param:
1164     @@@Name: str
1165     @@@Type:
1166     DISLang:String
1167     @@@enDesc:
1168     A comment text.
1169     @@Return:
1170     @@@Type:
1171     DISLang:String
1172     @@@enDesc:
1173     A Perl comment string.
1174     @@@PerlDef:
1175     $r = $str;
1176     $r =~ s/\n/\n## /g;
1177     $r =~ s/\n## $/\n/s;
1178     $r .= "\n" unless $r =~ /\n$/;
1179     $r = q<## > . $r;
1180    
1181     @IntMethod:
1182     @@Name: rfc3339DateTime
1183     @@ManakaiDOM:isStatic:1
1184     @@enDesc:
1185     Returns RFC 3339 <CODE::date-time> representation of a date.
1186     @@Param:
1187     @@@Name: perlDate
1188     @@@Type:
1189     DOMMain:unsigned-long
1190     @@@enDesc:
1191     A Perl representation of date.
1192     @@Return:
1193     @@@Type:
1194     DISLang:String
1195     @@@enDesc:
1196     RFC 3339 date string.
1197     @@@PerlDef:
1198     my @time = gmtime $perlDate;
1199     $r = sprintf q<%04d-%02d-%02dT%02d:%02d:%02d+00:00>,
1200     $time[5] + 1900, $time[4] + 1, @time[3,2,1,0];
1201    
1202     @IntMethod:
1203     @@Name: versionDateTime
1204     @@ManakaiDOM:isStatic:1
1205     @@enDesc:
1206     Returns date for version.
1207     @@Param:
1208     @@@Name: perlDate
1209     @@@Type:
1210     DOMMain:unsigned-long
1211     @@@enDesc:
1212     A Perl representation of date.
1213     @@Return:
1214     @@@Type:
1215     DISLang:String
1216     @@@enDesc:
1217     A Perl number literal.
1218     @@@PerlDef:
1219     my @time = gmtime $perlDate;
1220     $r = sprintf q<%04d%02d%02d.%02d%02d>,
1221     $time[5] + 1900, $time[4] + 1, @time[3,2,1];
1222    
1223     @Method:
1224     @@Name: perlLiteral
1225     @@enDesc:
1226     Perl code representation.
1227     @@Param:
1228     @@@Name: val
1229     @@@Type:
1230     DOMMain:any
1231     @@@enDesc:
1232     A Perl value.
1233     @@Return:
1234     @@@Type:
1235     DISLang:String
1236     @@@enDesc:
1237     A Perl lexical representation of <P::val>.
1238     @@@PerlDef:
1239     unless (defined $val) {
1240     $r = q<undef>;
1241     } elsif (ref $val eq 'ARRAY') {
1242     __DEEP{
1243     $r = q<[> . <ClassM::ManakaiPerlCodeImplementation
1244     .perlLiteral> ($val) . q<]>;
1245     }__;
1246     } elsif (ref $val eq 'HASH') {
1247     __DEEP{
1248     $r = q<{> . <ClassM::ManakaiPerlCodeImplementation
1249     .perlLiteral> ([%$val]) . q<}>;
1250     }__;
1251     } else {
1252     $val =~ s/(['\\])/\\$1/g;
1253     $r = q<'> . $val . q<'>;
1254     }
1255    
1256     @Method:
1257     @@Name: perlList
1258     @@enDesc:
1259     Perl code representation of a list.
1260     @@Param:
1261     @@@Name: val
1262     @@@Type:
1263     Perl:ARRAY
1264     @@@enDesc:
1265     A Perl array reference.
1266     @@Return:
1267     @@@Type:
1268     DISLang:String
1269     @@@enDesc:
1270     A Perl lexical representation of <CODE::@$val>.
1271     @@@PerlDef:
1272     __DEEP{
1273     $r = join (q<, >, map {<ClassM::ManakaiPerlCodeImplementation
1274     .perlLiteral> ($_)} @{$val});
1275     }__;
1276     ##PerlCodeImplementation
1277    
1278     PropDef:
1279     @QName: code
1280     @enDesc: Perl code.
1281    
1282     PropDef:
1283     @QName: sourceFile
1284     @enDesc:
1285     Source file.
1286    
1287     PropDef:
1288     @QName: sourceLine
1289     @enDesc:
1290     Source line number.
1291    
1292     PropDef:
1293     @QName: prototype
1294     @enDesc:
1295     Prototype of subroutine.
1296    
1297     PropDef:
1298     @QName: parent
1299     @enDesc:
1300     Higher-level object.
1301    
1302     PropDef:
1303     @QName: sub
1304     @enDesc:
1305     Perl subroutines.
1306    
1307     PropDef:
1308     @QName: packageName
1309     @Type:
1310     Perl:package-name
1311     @enDesc:
1312     The fully qualified names of packages.
1313    
1314     PropDef:
1315     @QName: childNodes
1316     @enDesc:
1317     Child code fragments.
1318    
1319     PropDef:
1320     @QName: localName
1321     @enDesc:
1322     Scoped names.
1323 wakaba 1.4
1324     ## -- Exceptions
1325    
1326     ExceptionDef:
1327     @ClsQName: ManakaiPerlCodeException
1328     @enDesc:
1329     Exceptions for the <Module::PerlCode> module.
1330     @ClsISA:
1331     ManakaiDOM:ManakaiDOMException::ManakaiDOM:Perl
1332     @XConstGroupDef:
1333     @@ClsQName: ManakaiPerlCodeExceptionCode
1334     @@enDesc:
1335     Exception codes for <Class::ManakaiPerlCodeException>.
1336     @@XConstDef:
1337     @@@Name: NOT_SUPPORTED_ERR
1338     @@@Value:9
1339     @@@enDesc:
1340     An attempt is made to do something the implementation does not support.
1341     @@@XSubTypeDef:
1342     @@@@QName: UNSUPPORTED_OPERATOR_ERR
1343     @@@@enDesc:
1344     The implementation does not support the specified operator.
1345     @@@@XParam:
1346     @@@@@QName: operator
1347     @@@@@enDesc:
1348     The operator that is not supported.
1349     @@@@enMufDef:
1350     Operator "%p (name => {<Q::pc:operator>});" is not supported
1351    
1352     ElementTypeBinding:
1353     @Name: ExceptionDef
1354     @ElementType:
1355     dis:ResourceDef
1356     @ShadowContent:
1357     @@rdf:type:
1358     ManakaiDOM:ExceptionClass
1359     @@AliasFor:
1360     @@@@:
1361     ::ManakaiDOM:Perl
1362     @@@For:
1363     !=ManakaiDOM:Perl
1364     @@ForCheck:
1365     ManakaiDOM:Perl
1366     @@DOMMain:implementFeature: CoreFeature10
1367    
1368     ElementTypeBinding:
1369     @Name: XConstGroupDef
1370     @ElementType:
1371     dis:ResourceDef
1372     @ShadowContent:
1373     @@rdf:type:
1374     ManakaiDOM:ConstGroup
1375     @@Type:
1376     DOMMain:unsigned-short::ManakaiDOM:all
1377     @@rdfs:subClassOf:
1378     DOMMain:unsigned-short::ManakaiDOM:all
1379    
1380     ElementTypeBinding:
1381     @Name: XConstDef
1382     @ElementType:
1383     dis:ResourceDef
1384     @ShadowContent:
1385     @@rdf:type:
1386     ManakaiDOM:Const
1387    
1388     ElementTypeBinding:
1389     @Name: XSubTypeDef
1390     @ElementType:
1391     dis:ResourceDef
1392     @ShadowContent:
1393     @@rdf:type:
1394     ManakaiDOM:ExceptionOrWarningSubType
1395    
1396     ElementTypeBinding:
1397     @Name: XParam
1398     @ElementType:
1399     ManakaiDOM:exceptionOrWarningParameter
1400    
1401     ElementTypeBinding:
1402     @Name: XParamDef
1403     @ElementType:
1404     dis:ResourceDef
1405     @ShadowContent:
1406     @@rdf:type:
1407     DOMMain:XWParameter
1408     @@AliasFor:
1409     @@@For:
1410     !=ManakaiDOM:all
1411     @@@@:
1412     ::ManakaiDOM:all
1413    
1414     ElementTypeBinding:
1415     @Name: enMufDef
1416     @ElementType:
1417     dis:Def
1418     @ShadowContent:
1419     @@ContentType:
1420     lang:muf
1421     @@lang:en
1422    
1423 wakaba 1.1
1424     ElementTypeBinding:
1425     @Name: ClsDef
1426     @ElementType:
1427     dis:ResourceDef
1428     @ShadowContent:
1429     @@rdf:type:
1430     ManakaiDOM:Class
1431     @@AliasFor:
1432     @@@@:
1433     ::ManakaiDOM:Perl
1434     @@@For:
1435     !=ManakaiDOM:Perl
1436     @@ForCheck:
1437     ManakaiDOM:Perl
1438     @@DOMMain:implementFeature: CoreFeature10
1439    
1440     ElementTypeBinding:
1441     @Name: ClsQName
1442     @ElementType:
1443     dis:QName
1444    
1445     ElementTypeBinding:
1446     @Name: ClsISA
1447     @ElementType:
1448     dis:ISA
1449    
1450     ElementTypeBinding:
1451     @Name: Method
1452     @ElementType:
1453     dis:ResourceDef
1454     @ShadowContent:
1455     @@rdf:type:
1456     DISLang:Method
1457    
1458     ElementTypeBinding:
1459     @Name: ToStringMethod
1460     @ElementType:
1461     dis:ResourceDef
1462     @ShadowContent:
1463     @@rdf:type:
1464     DISLang:Method
1465     @@Operator:
1466     @@@@:
1467     DISPerl:AsStringMethod
1468     @@@ContentType:
1469     dis:TypeQName
1470     @@Description:
1471     @@@lang:en
1472     @@@@:
1473     Returns the textual Perl source code representation of this object.
1474    
1475     ElementTypeBinding:
1476     @Name: IntMethod
1477     @ElementType:
1478     dis:ResourceDef
1479     @ShadowContent:
1480     @@rdf:type:
1481     DISLang:Method
1482     @@ManakaiDOM:isForInternal:1
1483    
1484     ElementTypeBinding:
1485     @Name: Attr
1486     @ElementType:
1487     dis:ResourceDef
1488     @ShadowContent:
1489     @@rdf:type:
1490     DISLang:Attribute
1491    
1492     ElementTypeBinding:
1493     @Name: Return
1494     @ElementType:
1495     dis:ResourceDef
1496     @ShadowContent:
1497     @@rdf:type:
1498     DISLang:MethodReturn
1499    
1500     ElementTypeBinding:
1501     @Name: Get
1502     @ElementType:
1503     dis:ResourceDef
1504     @ShadowContent:
1505     @@rdf:type:
1506     DISLang:AttributeGet
1507    
1508     ElementTypeBinding:
1509     @Name: Set
1510     @ElementType:
1511     dis:ResourceDef
1512     @ShadowContent:
1513     @@rdf:type:
1514     DISLang:AttributeSet
1515    
1516     ElementTypeBinding:
1517     @Name: Param
1518     @ElementType:
1519     dis:ResourceDef
1520     @ShadowContent:
1521     @@rdf:type:
1522     DISLang:MethodParameter
1523    
1524     ElementTypeBinding:
1525     @Name: PerlDef
1526     @ElementType:
1527     dis:Def
1528     @ShadowContent:
1529     @@ContentType:
1530     lang:Perl
1531    
1532     ElementTypeBinding:
1533     @Name: disDef
1534     @ElementType:
1535     dis:Def
1536     @ShadowContent:
1537     @@ContentType:
1538     lang:dis
1539    
1540     ElementTypeBinding:
1541     @Name: InCase
1542     @ElementType:
1543     dis:ResourceDef
1544     @ShadowContent:
1545     @@rdf:type:
1546     ManakaiDOM:InCase
1547    
1548     ElementTypeBinding:
1549     @Name: nullCase
1550     @ElementType:
1551     dis:ResourceDef
1552     @ShadowContent:
1553     @@rdf:type:
1554     ManakaiDOM:InCase
1555     @@Value:
1556     @@@is-null:1
1557    
1558     ElementTypeBinding:
1559     @Name: TrueCase
1560     @ElementType:
1561     dis:ResourceDef
1562     @ShadowContent:
1563     @@rdf:type:
1564     ManakaiDOM:InCase
1565     @@Value:true
1566     @@Type:
1567     DOMMain:boolean
1568    
1569    
1570     ElementTypeBinding:
1571     @Name: FalseCase
1572     @ElementType:
1573     dis:ResourceDef
1574     @ShadowContent:
1575     @@rdf:type:
1576     ManakaiDOM:InCase
1577     @@Value:false
1578     @@Type:
1579     DOMMain:boolean
1580    
1581     ElementTypeBinding:
1582     @Name: enDesc
1583     @ElementType:
1584     dis:Description
1585     @ShadowContent:
1586     @@lang:en
1587    
1588     ElementTypeBinding:
1589     @Name: PropDef
1590     @ElementType:
1591     dis:ResourceDef
1592     @ShadowContent:
1593     @@rdf:type:
1594     rdf:Property
1595     @@AliasFor:
1596     @@@@:
1597     ::ManakaiDOM:all
1598     @@@For:
1599     !=ManakaiDOM:all
1600    
1601     ElementTypeBinding:
1602     @Name: NamedParam
1603     @ElementType:
1604     dis:ResourceDef
1605     @ShadowContent:
1606     @@rdf:type:
1607     DISLang:MethodParameter
1608     @@DISPerl:isNamedParameter:1
1609    

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24