Annotation.st
branchjv
changeset 17955 f5ee690b1a27
parent 17911 a99f15c5efa5
child 17966 8b5df02e171f
equal deleted inserted replaced
17954:dc18846aa7b2 17955:f5ee690b1a27
    35 Annotation subclass:#Unknown
    35 Annotation subclass:#Unknown
    36 	instanceVariableNames:'method key arguments'
    36 	instanceVariableNames:'method key arguments'
    37 	classVariableNames:''
    37 	classVariableNames:''
    38 	poolDictionaries:''
    38 	poolDictionaries:''
    39 	privateIn:Annotation
    39 	privateIn:Annotation
    40 !
       
    41 
       
    42 Annotation comment:'I represent an occurrence of a pragma in a compiled method.  A pragma is a literal message pattern that occurs between angle brackets at the start of a method after any temporaries.  A common example is the primitive pragma:
       
    43 	<primitive: 123 errorCode: ''errorCode''>
       
    44 but one can add one''s own and use them as metadata attached to a method.  Because pragmas are messages one can browsse senders and implementors and perform them.  One can query a method for its pragmas by sendng it the pragmas message, which answers an Array of instances of me, one for each pragma in the method.
       
    45 I can provide information about the defining class, method, its selector, as well as the information about the pragma keyword and its arguments. See the two ''accessing'' protocols for details. ''accessing-method'' provides information about the method the pragma is found in, while ''accessing-pragma'' is about the pragma itself.
       
    46 Instances are retrieved using one of the pragma search methods of the ''finding'' protocol on the class side.
       
    47 To browse all methods with pragmas in the system evaluate
       
    48 	SystemNavigation default browseAllSelect: [:m| m pragmas notEmpty]
       
    49 and to browse all nonprimitive methods with pragmas evaluate
       
    50 	SystemNavigation default browseAllSelect: [:m| m primitive isZero and: [m pragmas notEmpty]]'
       
    51 !
    40 !
    52 
    41 
    53 !Annotation class methodsFor:'documentation'!
    42 !Annotation class methodsFor:'documentation'!
    54 
    43 
    55 copyright
    44 copyright
   381            or: [self arguments hasLiteralSuchThat: aBlock]
   370            or: [self arguments hasLiteralSuchThat: aBlock]
   382 
   371 
   383     "Modified: / 21-08-2011 / 12:46:31 / cg"
   372     "Modified: / 21-08-2011 / 12:46:31 / cg"
   384 !
   373 !
   385 
   374 
       
   375 isResource
       
   376     ^ false
       
   377 
       
   378     "Created: / 18-07-2012 / 19:28:39 / cg"
       
   379 !
       
   380 
   386 isUnknown
   381 isUnknown
   387     ^ false
   382     ^ false
   388 ! !
   383 ! !
   389 
   384 
   390 !Annotation::NameSpace methodsFor:'accessing'!
   385 !Annotation::NameSpace methodsFor:'accessing'!
   498     "Nothing to do"
   493     "Nothing to do"
   499 
   494 
   500     "Modified: / 16-07-2010 / 11:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   495     "Modified: / 16-07-2010 / 11:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   501 ! !
   496 ! !
   502 
   497 
       
   498 !Annotation::Resource methodsFor:'testing'!
       
   499 
       
   500 isResource
       
   501     ^ true
       
   502 
       
   503     "Created: / 18-07-2012 / 19:28:46 / cg"
       
   504 ! !
       
   505 
   503 !Annotation::Unknown methodsFor:'accessing'!
   506 !Annotation::Unknown methodsFor:'accessing'!
   504 
   507 
   505 arguments
   508 arguments
   506     ^ arguments
   509     ^ arguments
   507 !
   510 !
   568 ! !
   571 ! !
   569 
   572 
   570 !Annotation class methodsFor:'documentation'!
   573 !Annotation class methodsFor:'documentation'!
   571 
   574 
   572 version
   575 version
   573     ^ '$Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.7 2011/11/29 10:19:47 cg Exp $'
   576     ^ '$Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.8 2012/07/18 17:33:44 cg Exp $'
   574 !
   577 !
   575 
   578 
   576 version_CVS
   579 version_CVS
   577     ^ 'Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.7 2011/11/29 10:19:47 cg Exp '
   580     ^ '§Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.8 2012/07/18 17:33:44 cg Exp §'
   578 !
   581 !
   579 
   582 
   580 version_SVN
   583 version_SVN
   581     ^ '$Id: Annotation.st 10761 2012-01-19 11:46:00Z vranyj1 $'
   584     ^ '$Id: Annotation.st 10829 2012-07-25 08:45:15Z vranyj1 $'
   582 ! !
   585 ! !
   583 
   586 
   584 Annotation initialize!
   587 Annotation initialize!
   585 
       
   586 
       
   587 
       
   588 
       
   589 
       
   590