Skip to content

Commit b72f8f1

Browse files
Merge pull request #123 from 122-backslash-import-error
122 backslash import error
2 parents dba9ddf + 840fe30 commit b72f8f1

2 files changed

Lines changed: 63 additions & 55 deletions

File tree

src/Fame-ImportExport/FMJSONParser.class.st

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -159,16 +159,24 @@ FMJSONParser >> String [
159159

160160
| previousChar isEscape |
161161
"read a string"
162-
$" == chararacter ifFalse: [ ^ nil ].
162+
$" == character ifFalse: [ ^ nil ].
163163
164164
buffer reset.
165165
"read the string"
166166
[
167-
previousChar := chararacter.
168-
self next.
169-
isEscape := chararacter = $" and: [ previousChar = $\ ].
170-
chararacter ifNil: [ self syntaxError ].
171-
$" == chararacter and: [ isEscape not ] ] whileFalse: [ ($\ ~= chararacter or: [ previousChar == $\ ]) ifTrue: [ buffer nextPut: chararacter ] ].
167+
previousChar := character.
168+
self next.
169+
isEscape := character = $" and: [ previousChar = $\ ].
170+
character ifNil: [ self syntaxError ].
171+
$" == character and: [ isEscape not ]
172+
]
173+
whileFalse: [
174+
($\ ~= character or: [ previousChar == $\ ])
175+
ifTrue: [
176+
buffer nextPut: character.
177+
"if the character added is a $\ at the end of the parsed String there was a bug"
178+
character = $\ ifTrue: [ character := $_ ] ]
179+
].
172180
"eat the last "" character"
173181
self next.
174182
self tWHITESPACE.
@@ -197,14 +205,14 @@ FMJSONParser >> tFULLNAME [
197205
self tPropertyNameOPEN ifFalse: [ ^ nil ].
198206
buffer reset.
199207
[
200-
buffer nextPut: chararacter.
201-
[ self nextCharIsAlphanumeric or: [ chararacter ~= $" ] ] whileTrue: [
202-
buffer nextPut: chararacter ].
203-
$. == chararacter ] whileTrue: [
204-
buffer nextPut: chararacter.
208+
buffer nextPut: character.
209+
[ self nextCharIsAlphanumeric or: [ character ~= $" ] ] whileTrue: [
210+
buffer nextPut: character ].
211+
$. == character ] whileTrue: [
212+
buffer nextPut: character.
205213
(self characterSet isLetter: self next) ifFalse: [
206214
^ self syntaxError ] ].
207-
$: == chararacter ifTrue: [ ^ self syntaxError ].
215+
$: == character ifTrue: [ ^ self syntaxError ].
208216
self tFULLNAMEPropertyClose.
209217
^ buffer contents
210218
]
@@ -275,5 +283,5 @@ FMJSONParser >> tREF [
275283

276284
{ #category : 'tokens' }
277285
FMJSONParser >> tWHITESPACE [
278-
^ [ self atEnd not and: [ chararacter isSeparator ] ] whileTrue: [ self next ]
286+
^ [ self atEnd not and: [ character isSeparator ] ] whileTrue: [ self next ]
279287
]

src/Fame-ImportExport/FMMSEParser.class.st

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ Class {
2525
'progBar',
2626
'lastUpdate',
2727
'characterSet',
28-
'chararacter',
2928
'buffer',
3029
'importer',
31-
'numberParser'
30+
'numberParser',
31+
'character'
3232
],
3333
#category : 'Fame-ImportExport-Importers',
3434
#package : 'Fame-ImportExport',
@@ -85,12 +85,12 @@ FMMSEParser >> Identifier [
8585

8686
"Identifier := digit+"
8787

88-
(self characterSet isDigit: chararacter)
88+
(self characterSet isDigit: character)
8989
ifFalse: [ ^ nil ].
9090

9191
buffer reset.
92-
buffer nextPut: chararacter.
93-
[ self characterSet isDigit: self next ] whileTrue: [ buffer nextPut: chararacter ].
92+
buffer nextPut: character.
93+
[ self characterSet isDigit: self next ] whileTrue: [ buffer nextPut: character ].
9494
self tWHITESPACE.
9595
^ (numberParser on: buffer contents readStream) nextInteger
9696
]
@@ -105,38 +105,38 @@ FMMSEParser >> Number [
105105
pos := self position.
106106
buffer reset.
107107
"hypen? "
108-
$- == chararacter
109-
ifTrue: [ buffer nextPut: chararacter.
108+
$- == character
109+
ifTrue: [ buffer nextPut: character.
110110
self next ].
111111
"digit+"
112-
(self characterSet isDigit: chararacter)
112+
(self characterSet isDigit: character)
113113
ifFalse: [ self backtrack: pos.
114114
^ nil ].
115-
[ buffer nextPut: chararacter.
115+
[ buffer nextPut: character.
116116
self characterSet isDigit: self next ] whileTrue.
117117
"(dot"
118-
$. == chararacter
119-
ifTrue: [ buffer nextPut: chararacter.
118+
$. == character
119+
ifTrue: [ buffer nextPut: character.
120120
self next.
121121
"digit+"
122-
(self characterSet isDigit: chararacter)
122+
(self characterSet isDigit: character)
123123
ifFalse: [ self syntaxError.
124124
^ nil ].
125-
[ buffer nextPut: chararacter.
125+
[ buffer nextPut: character.
126126
self characterSet isDigit: self next ] whileTrue.
127127
"(e"
128-
$e == chararacter
129-
ifTrue: [ buffer nextPut: chararacter.
128+
$e == character
129+
ifTrue: [ buffer nextPut: character.
130130
self next.
131131
"hypen?"
132-
$- == chararacter
133-
ifTrue: [ buffer nextPut: chararacter.
132+
$- == character
133+
ifTrue: [ buffer nextPut: character.
134134
self next ].
135135
"digit+"
136-
(self characterSet isDigit: chararacter)
136+
(self characterSet isDigit: character)
137137
ifFalse: [ self syntaxError.
138138
^ nil ].
139-
[ buffer nextPut: chararacter.
139+
[ buffer nextPut: character.
140140
self characterSet isDigit: self next ] whileTrue
141141
")?)?" ] ].
142142
self tWHITESPACE.
@@ -226,14 +226,14 @@ FMMSEParser >> Serial [
226226

227227
{ #category : 'expressions' }
228228
FMMSEParser >> String [
229-
$' == chararacter ifFalse: [ ^ nil ].
229+
$' == character ifFalse: [ ^ nil ].
230230
231231
buffer reset.
232232
233233
[ [ self next.
234-
chararacter ifNil: [ self syntaxError ].
235-
$' == chararacter ] whileFalse: [ buffer nextPut: chararacter ].
236-
$' == self next ] whileTrue: [ buffer nextPut: chararacter ].
234+
character ifNil: [ self syntaxError ].
235+
$' == character ] whileFalse: [ buffer nextPut: character ].
236+
$' == self next ] whileTrue: [ buffer nextPut: character ].
237237
self tWHITESPACE.
238238
^ buffer contents
239239
]
@@ -249,7 +249,7 @@ FMMSEParser >> Value [
249249
250250
{ #category : 'testing' }
251251
FMMSEParser >> atEnd [
252-
^ chararacter isNil
252+
^ character isNil
253253
]
254254
255255
{ #category : 'private' }
@@ -273,7 +273,7 @@ FMMSEParser >> basicRun [
273273
274274
{ #category : 'accessing' }
275275
FMMSEParser >> characterSet [
276-
^ characterSet ifNil: [ characterSet := chararacter characterSet ]
276+
^ characterSet ifNil: [ characterSet := character characterSet ]
277277
]
278278
279279
{ #category : 'accessing' }
@@ -309,25 +309,25 @@ FMMSEParser >> initialize [
309309
FMMSEParser >> matchesWord: aString [
310310
"I am checking if the next part of the stream watches a word. If it matches, I also eat the next whitespace and return true. Else I return false (I do not backtrack)"
311311
312-
aString do: [ :char | char == chararacter ifTrue: [ self next ] ifFalse: [ ^ false ] ].
312+
aString do: [ :char | char == character ifTrue: [ self next ] ifFalse: [ ^ false ] ].
313313
self tWHITESPACE.
314314
^ true
315315
]
316316
317317
{ #category : 'private' }
318318
FMMSEParser >> next [
319-
^ chararacter := stream next
319+
^ character := stream next
320320
]
321321
322322
{ #category : 'testing' }
323323
FMMSEParser >> nextCharIsAlphanumeric [
324324
self next.
325-
^ (self characterSet isLetter: chararacter) or: [ self characterSet isDigit: chararacter ]
325+
^ (self characterSet isLetter: character) or: [ self characterSet isDigit: character ]
326326
]
327327
328328
{ #category : 'private' }
329329
FMMSEParser >> peek [
330-
^ chararacter
330+
^ character
331331
]
332332
333333
{ #category : 'private' }
@@ -394,15 +394,15 @@ FMMSEParser >> tFALSE [
394394
395395
{ #category : 'tokens' }
396396
FMMSEParser >> tFULLNAME [
397-
(self characterSet isLetter: chararacter) ifFalse: [ ^ nil ].
397+
(self characterSet isLetter: character) ifFalse: [ ^ nil ].
398398
399399
buffer reset.
400-
[ buffer nextPut: chararacter.
401-
[ self nextCharIsAlphanumeric or: [ chararacter = $- ] ] whileTrue: [ buffer nextPut: chararacter ].
402-
$. == chararacter ]
403-
whileTrue: [ buffer nextPut: chararacter.
400+
[ buffer nextPut: character.
401+
[ self nextCharIsAlphanumeric or: [ character = $- ] ] whileTrue: [ buffer nextPut: character ].
402+
$. == character ]
403+
whileTrue: [ buffer nextPut: character.
404404
(self characterSet isLetter: self next) ifFalse: [ ^ self syntaxError ] ].
405-
$: == chararacter ifTrue: [ ^ self syntaxError ].
405+
$: == character ifTrue: [ ^ self syntaxError ].
406406
self tWHITESPACE.
407407
^ buffer contents
408408
]
@@ -416,11 +416,11 @@ FMMSEParser >> tID [
416416
417417
{ #category : 'tokens' }
418418
FMMSEParser >> tNAME [
419-
(self characterSet isLetter: chararacter) ifFalse: [ ^ nil ].
419+
(self characterSet isLetter: character) ifFalse: [ ^ nil ].
420420
421421
buffer reset.
422-
buffer nextPut: chararacter.
423-
[ self nextCharIsAlphanumeric or: [ chararacter == $_ ] ] whileTrue: [ buffer nextPut: chararacter ].
422+
buffer nextPut: character.
423+
[ self nextCharIsAlphanumeric or: [ character == $_ ] ] whileTrue: [ buffer nextPut: character ].
424424
self tWHITESPACE.
425425
^ buffer contents
426426
]
@@ -448,10 +448,10 @@ FMMSEParser >> tTRUE [
448448
449449
{ #category : 'tokens' }
450450
FMMSEParser >> tWHITESPACE [
451-
[ $" == chararacter
451+
[ $" == character
452452
ifTrue: [ [ [ self next.
453-
nil == chararacter ifTrue: [ ^ self syntaxError ].
454-
$" == chararacter ] whileFalse.
453+
nil == character ifTrue: [ ^ self syntaxError ].
454+
$" == character ] whileFalse.
455455
$" == self next ] whileTrue ].
456-
chararacter isMSESeparator ] whileTrue: [ self next ]
456+
character isMSESeparator ] whileTrue: [ self next ]
457457
]

0 commit comments

Comments
 (0)