Add Lepiter snippets for Carp

This commit is contained in:
2022-04-16 18:32:16 +02:00
parent 60321973fb
commit f1cac9749e
34 changed files with 597 additions and 61 deletions

View File

@@ -0,0 +1,32 @@
Class {
#name : #CarpCharacterNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpCharacterNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitCharacter: self
]
{ #category : #generated }
CarpCharacterNode >> tokenVariables [
^ #( #value )
]
{ #category : #generated }
CarpCharacterNode >> value [
^ value
]
{ #category : #generated }
CarpCharacterNode >> value: aSmaCCToken [
value := aSmaCCToken
]

View File

@@ -0,0 +1,21 @@
Class {
#name : #CarpExpressionNode,
#superclass : #SmaCCParseNode,
#category : #'Carp-AST'
}
{ #category : #generated }
CarpExpressionNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitExpression: self
]
{ #category : #accessing }
CarpExpressionNode >> isQuoted [
^ parent ifNil: [ false ] ifNotNil: [ parent isQuoted ]
]
{ #category : #accessing }
CarpExpressionNode >> listDepth [
^ parent ifNil: [ 0 ] ifNotNil: [ parent listDepth + 1 ]
]

View File

@@ -0,0 +1,34 @@
Class {
#name : #CarpModuleOrTypeNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpModuleOrTypeNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitModuleOrType: self
]
{ #category : #generated }
CarpModuleOrTypeNode >> otherVariables [
^ #( #value )
]
{ #category : #generated }
CarpModuleOrTypeNode >> value [
^ value
]
{ #category : #generated }
CarpModuleOrTypeNode >> value: anObject [
self setParent: self value to: nil.
value := anObject.
self setParent: self value to: self
]

View File

@@ -0,0 +1,32 @@
Class {
#name : #CarpNumberNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpNumberNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitNumber: self
]
{ #category : #generated }
CarpNumberNode >> tokenVariables [
^ #( #value )
]
{ #category : #generated }
CarpNumberNode >> value [
^ value
]
{ #category : #generated }
CarpNumberNode >> value: aSmaCCToken [
value := aSmaCCToken
]

View File

@@ -0,0 +1,49 @@
Class {
#name : #CarpPairNode,
#superclass : #CarpExpressionNode,
#instVars : [
'key',
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpPairNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitPair: self
]
{ #category : #generated }
CarpPairNode >> key [
^ key
]
{ #category : #generated }
CarpPairNode >> key: aCarpExpressionNode [
self key notNil ifTrue: [ self key parent: nil ].
key := aCarpExpressionNode.
self key notNil ifTrue: [ self key parent: self ]
]
{ #category : #generated }
CarpPairNode >> nodeVariables [
^ #( #key #value )
]
{ #category : #generated }
CarpPairNode >> value [
^ value
]
{ #category : #generated }
CarpPairNode >> value: aCarpExpressionNode [
self value notNil ifTrue: [ self value parent: nil ].
value := aCarpExpressionNode.
self value notNil ifTrue: [ self value parent: self ]
]

View File

@@ -0,0 +1,44 @@
Class {
#name : #CarpQuoteNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpQuoteNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitQuote: self
]
{ #category : #accessing }
CarpQuoteNode >> isQuoted [
^ true
]
{ #category : #accessing }
CarpQuoteNode >> newMethod [
"This is a new method"
]
{ #category : #generated }
CarpQuoteNode >> nodeVariables [
^ #( #value )
]
{ #category : #generated }
CarpQuoteNode >> value [
^ value
]
{ #category : #generated }
CarpQuoteNode >> value: aCarpExpressionNode [
self value notNil ifTrue: [ self value parent: nil ].
value := aCarpExpressionNode.
self value notNil ifTrue: [ self value parent: self ]
]

View File

@@ -0,0 +1,40 @@
Class {
#name : #CarpStartNode,
#superclass : #CarpExpressionNode,
#instVars : [
'expressions'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpStartNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitStart: self
]
{ #category : #generated }
CarpStartNode >> compositeNodeVariables [
^ #( #expressions )
]
{ #category : #generated }
CarpStartNode >> expressions [
^ expressions
]
{ #category : #generated }
CarpStartNode >> expressions: anOrderedCollection [
self setParents: self expressions to: nil.
expressions := anOrderedCollection.
self setParents: self expressions to: self
]
{ #category : #'generated-initialize-release' }
CarpStartNode >> initialize [
super initialize.
expressions := OrderedCollection new: 2.
]

View File

@@ -0,0 +1,32 @@
Class {
#name : #CarpStringNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpStringNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitString: self
]
{ #category : #generated }
CarpStringNode >> tokenVariables [
^ #( #value )
]
{ #category : #generated }
CarpStringNode >> value [
^ value
]
{ #category : #generated }
CarpStringNode >> value: aSmaCCToken [
value := aSmaCCToken
]

View File

@@ -0,0 +1,32 @@
Class {
#name : #CarpVariableNode,
#superclass : #CarpExpressionNode,
#instVars : [
'value'
],
#category : #'Carp-AST'
}
{ #category : #generated }
CarpVariableNode >> acceptVisitor: anExpressionVisitor [
^ anExpressionVisitor visitVariable: self
]
{ #category : #generated }
CarpVariableNode >> tokenVariables [
^ #( #value )
]
{ #category : #generated }
CarpVariableNode >> value [
^ value
]
{ #category : #generated }
CarpVariableNode >> value: aSmaCCToken [
value := aSmaCCToken
]

1
src/Carp-AST/package.st Normal file
View File

@@ -0,0 +1 @@
Package { #name : #'Carp-AST' }