author | convert-repo |
Wed, 11 Dec 2019 04:28:36 +0000 | |
changeset 1116 | b51ace366efc |
parent 1072 | a44c741ee5ef |
child 1136 | 84873f2d6a1e |
permissions | -rw-r--r-- |
828 | 1 |
" |
2 |
A custom code generation and refactoring support for Smalltalk/X |
|
3 |
Copyright (C) 2013-2015 Jakub Nesveda |
|
1072 | 4 |
Copyright (C) 2015 Jan Vrany |
828 | 5 |
|
6 |
This library is free software; you can redistribute it and/or |
|
7 |
modify it under the terms of the GNU Lesser General Public |
|
8 |
License as published by the Free Software Foundation; either |
|
9 |
version 2.1 of the License. |
|
10 |
||
11 |
This library is distributed in the hope that it will be useful, |
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
Lesser General Public License for more details. |
|
15 |
||
16 |
You should have received a copy of the GNU Lesser General Public |
|
17 |
License along with this library; if not, write to the Free Software |
|
18 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
19 |
" |
|
833
297eb38e4eee
Package jn:refactoring_custom renamed to stx:goodies/smallsense/refactoring_custom
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
830
diff
changeset
|
20 |
"{ Package: 'stx:goodies/smallsense/refactoring_custom' }" |
674
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
21 |
|
830
1a88f5e65fe2
Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
22 |
"{ NameSpace: SmallSense }" |
803
95cdac772759
Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
775
diff
changeset
|
23 |
|
674
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
24 |
CodeGenerator subclass:#CustomSourceCodeGenerator |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
25 |
instanceVariableNames:'formatter commentPlaceholderMarker commentReplacements' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
26 |
classVariableNames:'' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
27 |
poolDictionaries:'' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
28 |
category:'Interface-Refactoring-Custom' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
29 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
30 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
31 |
!CustomSourceCodeGenerator class methodsFor:'documentation'! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
32 |
|
828 | 33 |
copyright |
34 |
" |
|
35 |
A custom code generation and refactoring support for Smalltalk/X |
|
36 |
Copyright (C) 2013-2015 Jakub Nesveda |
|
1072 | 37 |
Copyright (C) 2015 Jan Vrany |
828 | 38 |
|
39 |
This library is free software; you can redistribute it and/or |
|
40 |
modify it under the terms of the GNU Lesser General Public |
|
41 |
License as published by the Free Software Foundation; either |
|
42 |
version 2.1 of the License. |
|
43 |
||
44 |
This library is distributed in the hope that it will be useful, |
|
45 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
46 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
47 |
Lesser General Public License for more details. |
|
48 |
||
49 |
You should have received a copy of the GNU Lesser General Public |
|
50 |
License along with this library; if not, write to the Free Software |
|
51 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
52 |
" |
|
53 |
! |
|
54 |
||
674
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
55 |
documentation |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
56 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
57 |
Extension for CodeGenerator to support work just with source code and with formatter. |
775
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
58 |
Replacements definition are not stricly limited to just expressions, but also method call. |
674
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
59 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
60 |
[author:] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
61 |
Jakub Nesveda <nesvejak@fit.cvut.cz> |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
62 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
63 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
64 |
! ! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
65 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
66 |
!CustomSourceCodeGenerator methodsFor:'accessing'! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
67 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
68 |
commentPlaceholderMarker: aString |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
69 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
70 |
Sets prefix string which will mark comment replace |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
71 |
in code replacements given by: |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
72 |
replace: '`comment' with: 'comment' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
73 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
74 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
75 |
commentPlaceholderMarker := aString |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
76 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
77 |
"Created: / 19-09-2014 / 21:17:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
78 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
79 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
80 |
formatter |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
81 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
82 |
^ formatter |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
83 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
84 |
"Created: / 19-09-2014 / 22:24:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
85 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
86 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
87 |
formatter: aSourceCodeFormatter |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
88 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
89 |
formatter := aSourceCodeFormatter |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
90 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
91 |
"Created: / 19-09-2014 / 22:25:13 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
92 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
93 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
94 |
newSource |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
95 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
96 |
Returns formatted method source |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
97 |
code as string (with replacements and so on) |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
98 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
99 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
100 |
| parser method | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
101 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
102 |
source := self replaceCommentsInSource: source. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
103 |
parser := RBParser new. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
104 |
recordedReplacementsInSource := OrderedCollection new. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
105 |
parser errorBlock:[ :str :pos | self error: ('Error: %1: %2' bindWith: pos with: str). ^ self ]. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
106 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
107 |
parser initializeParserWith: source type: #rewriteSavingCommentsOn:errorBlock:. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
108 |
method := parser parseMethod: source. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
109 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
110 |
method source: nil. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
111 |
method acceptVisitor: self. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
112 |
self replaceInSourceCode. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
113 |
method source: source. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
114 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
115 |
^ formatter formatParseTree: method. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
116 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
117 |
"Created: / 19-09-2014 / 22:07:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
118 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
119 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
120 |
replace: placeholder with: code |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
121 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
122 |
(placeholder startsWith: commentPlaceholderMarker) ifTrue: [ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
123 |
commentReplacements |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
124 |
at: placeholder |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
125 |
put: code |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
126 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
127 |
ifFalse: [ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
128 |
replacements |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
129 |
at: placeholder |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
130 |
put: (self replacementFromCode: code) |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
131 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
132 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
133 |
"Created: / 19-09-2014 / 21:18:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
134 |
"Modified: / 19-09-2014 / 23:58:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
135 |
! ! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
136 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
137 |
!CustomSourceCodeGenerator methodsFor:'initialization'! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
138 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
139 |
initialize |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
140 |
"Invoked when a new instance is created." |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
141 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
142 |
super initialize. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
143 |
commentPlaceholderMarker := '`"'. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
144 |
commentReplacements := Dictionary new. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
145 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
146 |
"Created: / 19-09-2014 / 21:42:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
147 |
! ! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
148 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
149 |
!CustomSourceCodeGenerator methodsFor:'private'! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
150 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
151 |
formatReplacement: replacement |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
152 |
"Returns formatted source code replacement, but keep Symbol not formatted" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
153 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
154 |
replacement isSymbol ifTrue: [ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
155 |
^ replacement formattedCode |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
156 |
]. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
157 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
158 |
^ formatter formatParseTree: replacement |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
159 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
160 |
"Created: / 20-09-2014 / 10:01:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
161 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
162 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
163 |
replaceCommentsInSource: aSourceCodeString |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
164 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
165 |
Returns source string with replaced occurences of comment |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
166 |
replaces given by: |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
167 |
replace: '`{double_quote_char}comment' with: '{double_quote_char}a comment{double_quote_char}' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
168 |
where {double_quote_char} is "" (but not escaped like in this comment) |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
169 |
" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
170 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
171 |
| sourceCode | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
172 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
173 |
sourceCode := aSourceCodeString. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
174 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
175 |
commentReplacements keysAndValuesDo: [ :placeholder :code | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
176 |
sourceCode := sourceCode copyReplaceString: placeholder withString: code |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
177 |
]. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
178 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
179 |
^ sourceCode |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
180 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
181 |
"Created: / 19-09-2014 / 22:08:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
182 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
183 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
184 |
replacePlaceholdersInSelectorPartsOf:aMessageNode |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
185 |
aMessageNode selectorParts do:[:part | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
186 |
part isPatternVariable ifTrue:[ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
187 |
|replacement| |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
188 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
189 |
replacement := self replacementFor:part value. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
190 |
"(replacement isSymbol or:[ replacement isVariable ]) ifFalse:[ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
191 |
self error:'Replacement for selector parts must be a single selector' |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
192 |
]." |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
193 |
replacement isNil ifTrue: [ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
194 |
self error: 'None replacement for: ', part value asString. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
195 |
]. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
196 |
source notNil ifTrue:[ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
197 |
self |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
198 |
recordReplaceInSourceFrom:part start |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
199 |
to:part stop |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
200 |
by: (self formatReplacement: replacement). |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
201 |
]. |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
202 |
part value: (self formatReplacement: replacement). |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
203 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
204 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
205 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
206 |
"Created: / 19-09-2014 / 23:55:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
207 |
"Modified: / 20-09-2014 / 10:14:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
208 |
! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
209 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
210 |
replacementFromCode: aCode |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
211 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
212 |
^ aCode isSymbol |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
213 |
ifTrue:[aCode] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
214 |
ifFalse:[ |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
215 |
RBParser parseRewriteExpression: aCode onError: [ :str :pos | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
216 |
RBParser parseRewriteMethod: aCode onError: [ :str :pos | |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
217 |
self error: 'Cannot parse: ', str, ' at pos: ', pos asString |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
218 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
219 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
220 |
] |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
221 |
|
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
222 |
"Created: / 19-09-2014 / 23:56:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
223 |
! ! |
58df305d9184
work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
224 |
|
775
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
225 |
!CustomSourceCodeGenerator class methodsFor:'documentation'! |
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
226 |
|
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
227 |
version_HG |
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
228 |
|
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
229 |
^ '$Changeset: <not expanded> $' |
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
230 |
! ! |
1bcae9a2c412
update outdated documentation in CustomSourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
674
diff
changeset
|
231 |