RGMethodDefinition.st
changeset 3 ed5aae792d24
parent 2 e439b82dda7d
child 5 5cc2caa88b23
--- a/RGMethodDefinition.st	Sat Aug 29 10:31:59 2015 +0100
+++ b/RGMethodDefinition.st	Mon Aug 31 14:01:56 2015 +0100
@@ -125,7 +125,9 @@
 !RGMethodDefinition methodsFor:'accessing'!
 
 ast
-    ^ self compiledMethod ast 
+    ^ self parseTree
+
+    "Modified: / 29-08-2015 / 11:20:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 compiledMethod
@@ -200,6 +202,14 @@
     package:= aRGPackage
 !
 
+parseTree
+    "raise an error: this method should be implemented (TODO)"
+
+    ^ RBParser parseMethod: self sourceCode
+
+    "Created: / 29-08-2015 / 11:20:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 protocol
 
     self isActive 
@@ -219,7 +229,17 @@
 selector
     "Retrieves the name of the method"
 
-    ^name
+    name isNil ifTrue:[ 
+        | src |    
+
+        src := self sourceCode.
+        src notNil ifTrue:[ 
+            name := RBParser parseMethodPattern: src.  
+        ].
+    ].
+    ^ name
+
+    "Modified: / 29-08-2015 / 11:37:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selector: aSymbol
@@ -228,6 +248,18 @@
     name := aSymbol
 !
 
+source
+    ^self sourceCode
+
+    "Created: / 29-08-2015 / 11:19:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+source: aString
+    self sourceCode: aString
+
+    "Created: / 29-08-2015 / 11:34:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 sourceCode
 
     self isActive 
@@ -601,3 +633,4 @@
         ifFalse:[ status == #passive ]
 ! !
 
+