equal
deleted
inserted
replaced
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 |
|