Skip to content

Commit a949857

Browse files
committed
feat: import source code from string
1 parent 59069b6 commit a949857

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

src/TreeSitter-CLanguage/TSCImporterVisitor.class.st

+25-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ Class {
22
#name : 'TSCImporterVisitor',
33
#superclass : 'TSCLanguageVisitor',
44
#instVars : [
5+
'parser',
56
'model',
67
'context',
78
'sourceCode',
@@ -35,10 +36,13 @@ TSCImporterVisitor >> ensureEntityExist: aFamixCEntity value: aString [
3536
{ #category : 'visiting' }
3637
TSCImporterVisitor >> extractSourceAnchor: aTSNode [
3738

38-
^ FamixCIndexedFileAnchor new
39-
startPos: aTSNode startByte;
40-
endPos: aTSNode endByte;
41-
fileName: fileName
39+
| sourceAnchor |
40+
sourceAnchor := FamixCIndexedFileAnchor new
41+
startPos: aTSNode startByte;
42+
endPos: aTSNode endByte.
43+
fileName ifNotNil: [ sourceAnchor filename: fileName ].
44+
45+
^ sourceAnchor
4246
]
4347

4448
{ #category : 'accessing' }
@@ -53,10 +57,27 @@ TSCImporterVisitor >> fileName: anObject [
5357
fileName := anObject
5458
]
5559

60+
{ #category : 'as yet unclassified' }
61+
TSCImporterVisitor >> importFromString: aString [
62+
63+
| rootNode |
64+
rootNode := (parser parseString: aString) rootNode.
65+
sourceCode := aString.
66+
fileName := nil.
67+
68+
rootNode accept: self.
69+
70+
^ model
71+
]
72+
5673
{ #category : 'initialization' }
5774
TSCImporterVisitor >> initialize [
5875

5976
super initialize.
77+
78+
parser := TSParser new.
79+
parser language: (TSLanguage cLanguage).
80+
6081
context := Stack new.
6182
model := FamixCModel new.
6283
inDeclaration := false

0 commit comments

Comments
 (0)