diff --git a/Pond.package/CarpCheckExample.class/README.md b/Pond.package/CarpCheckExample.class/README.md new file mode 100644 index 0000000..6b3d8e5 --- /dev/null +++ b/Pond.package/CarpCheckExample.class/README.md @@ -0,0 +1 @@ +I’m an example for checking Carp code. \ No newline at end of file diff --git a/Pond.package/CarpCheckExample.class/instance/failingCarpChecker.st b/Pond.package/CarpCheckExample.class/instance/failingCarpChecker.st new file mode 100644 index 0000000..4e54492 --- /dev/null +++ b/Pond.package/CarpCheckExample.class/instance/failingCarpChecker.st @@ -0,0 +1,6 @@ +examples +failingCarpChecker + ^ CarpChecker new + carp: '/Users/veitheller/.local/bin/carp'; + dir: '/Users/veitheller/Documents/Code/Github/carp/Carp/'; + file: '(def x a)' \ No newline at end of file diff --git a/Pond.package/CarpCheckExample.class/instance/succeedingCarpChecker.st b/Pond.package/CarpCheckExample.class/instance/succeedingCarpChecker.st new file mode 100644 index 0000000..2e267c5 --- /dev/null +++ b/Pond.package/CarpCheckExample.class/instance/succeedingCarpChecker.st @@ -0,0 +1,6 @@ +examples +succeedingCarpChecker + ^ CarpChecker new + carp: '/Users/veitheller/.local/bin/carp'; + dir: '/Users/veitheller/Documents/Code/Github/carp/Carp/'; + file: '(def x 1)' \ No newline at end of file diff --git a/Pond.package/CarpCheckExample.class/properties.json b/Pond.package/CarpCheckExample.class/properties.json new file mode 100644 index 0000000..dd08370 --- /dev/null +++ b/Pond.package/CarpCheckExample.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "VeitHeller 12/16/2019 12:01", + "super" : "Object", + "category" : "Pond", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "CarpCheckExample", + "type" : "normal" +} \ No newline at end of file diff --git a/Pond.package/CarpCheckParser.class/README.md b/Pond.package/CarpCheckParser.class/README.md new file mode 100644 index 0000000..0fc956d --- /dev/null +++ b/Pond.package/CarpCheckParser.class/README.md @@ -0,0 +1 @@ +I’m a parser for the results of a Carp check. \ No newline at end of file diff --git a/Pond.package/CarpCheckParser.class/instance/parse..st b/Pond.package/CarpCheckParser.class/instance/parse..st new file mode 100644 index 0000000..5cf7b22 --- /dev/null +++ b/Pond.package/CarpCheckParser.class/instance/parse..st @@ -0,0 +1,7 @@ +parsing +parse: aStream + | split contents | + contents := aStream upToEnd. + contents ifEmpty: [ ^ OrderedCollection new ]. + split := contents splitOn: '\n'. + ^ split collect: [ :s | self parseLine: s ] \ No newline at end of file diff --git a/Pond.package/CarpCheckParser.class/instance/parseLine..st b/Pond.package/CarpCheckParser.class/instance/parseLine..st new file mode 100644 index 0000000..03b40b2 --- /dev/null +++ b/Pond.package/CarpCheckParser.class/instance/parseLine..st @@ -0,0 +1,13 @@ +parsing +parseLine: aLine + | split res | + split := aLine splitOn: ':'. + split size == 3 ifFalse: [ + ^ CarpParseError new message: 'unparseable checker line: "' , aLine , '"']. + res := CarpParseError new + file: (split at: 1); + line: (split at: 2) asNumber. + split := (split at: 3) splitOn: ' '. + ^ res + column: (split at: 1) asNumber; + message: (' ' join: split allButFirst) \ No newline at end of file diff --git a/Pond.package/CarpCheckParser.class/properties.json b/Pond.package/CarpCheckParser.class/properties.json new file mode 100644 index 0000000..59dc441 --- /dev/null +++ b/Pond.package/CarpCheckParser.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "VeitHeller 12/16/2019 11:18", + "super" : "Object", + "category" : "Pond", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "CarpCheckParser", + "type" : "normal" +} \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/README.md b/Pond.package/CarpChecker.class/README.md new file mode 100644 index 0000000..43b799d --- /dev/null +++ b/Pond.package/CarpChecker.class/README.md @@ -0,0 +1 @@ +I’m a special case of a Carp process for checking errors. \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/instance/check.st b/Pond.package/CarpChecker.class/instance/check.st new file mode 100644 index 0000000..17bfbc2 --- /dev/null +++ b/Pond.package/CarpChecker.class/instance/check.st @@ -0,0 +1,9 @@ +checking +check + | f | + f := FileReference newTempFilePrefix: 'checker' suffix: '.carp'. + f writeStreamDo: [:stream | stream nextPutAll: file]. + proc arguments: {'--check' . f pathString }. + self run. + excepted ifNotNil: [ CarpError new messageText: excepted messageText ]. + self died ifFalse: [ ^ CarpCheckParser new parse: proc stdoutStream ] \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/instance/file..st b/Pond.package/CarpChecker.class/instance/file..st new file mode 100644 index 0000000..1495340 --- /dev/null +++ b/Pond.package/CarpChecker.class/instance/file..st @@ -0,0 +1,3 @@ +checking +file: aString + file := aString \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/instance/file.st b/Pond.package/CarpChecker.class/instance/file.st new file mode 100644 index 0000000..7aaabf3 --- /dev/null +++ b/Pond.package/CarpChecker.class/instance/file.st @@ -0,0 +1,3 @@ +checking +file + ^ file \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/instance/initialize.st b/Pond.package/CarpChecker.class/instance/initialize.st new file mode 100644 index 0000000..a5e6b76 --- /dev/null +++ b/Pond.package/CarpChecker.class/instance/initialize.st @@ -0,0 +1,5 @@ +checking +initialize + proc := OSSUnixSubprocess new command: 'carp'; + redirectStdout; + addAllEnvVariablesFromParentWithoutOverride \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/instance/run.st b/Pond.package/CarpChecker.class/instance/run.st new file mode 100644 index 0000000..843b9b4 --- /dev/null +++ b/Pond.package/CarpChecker.class/instance/run.st @@ -0,0 +1,4 @@ +checking +run + [ [ proc run ] on: Error do: [ :err | excepted := err ] ] fork. + (Delay forMilliseconds: 500) wait. \ No newline at end of file diff --git a/Pond.package/CarpChecker.class/properties.json b/Pond.package/CarpChecker.class/properties.json new file mode 100644 index 0000000..d73bfc9 --- /dev/null +++ b/Pond.package/CarpChecker.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "VeitHeller 12/16/2019 10:34", + "super" : "CarpProcess", + "category" : "Pond", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "file" + ], + "name" : "CarpChecker", + "type" : "normal" +} \ No newline at end of file diff --git a/Pond.package/CarpException.class/README.md b/Pond.package/CarpError.class/README.md similarity index 100% rename from Pond.package/CarpException.class/README.md rename to Pond.package/CarpError.class/README.md diff --git a/Pond.package/CarpException.class/instance/defaultAction.st b/Pond.package/CarpError.class/instance/defaultAction.st similarity index 100% rename from Pond.package/CarpException.class/instance/defaultAction.st rename to Pond.package/CarpError.class/instance/defaultAction.st diff --git a/Pond.package/CarpException.class/instance/from..st b/Pond.package/CarpError.class/instance/from..st similarity index 100% rename from Pond.package/CarpException.class/instance/from..st rename to Pond.package/CarpError.class/instance/from..st diff --git a/Pond.package/CarpException.class/properties.json b/Pond.package/CarpError.class/properties.json similarity index 78% rename from Pond.package/CarpException.class/properties.json rename to Pond.package/CarpError.class/properties.json index 2f27757..8b1af1b 100644 --- a/Pond.package/CarpException.class/properties.json +++ b/Pond.package/CarpError.class/properties.json @@ -1,6 +1,6 @@ { "commentStamp" : "VeitHeller 12/14/2019 17:49", - "super" : "Exception", + "super" : "Error", "category" : "Pond", "classinstvars" : [ ], "pools" : [ ], @@ -9,6 +9,6 @@ "parent", "error" ], - "name" : "CarpException", + "name" : "CarpError", "type" : "normal" } \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/README.md b/Pond.package/CarpParseError.class/README.md new file mode 100644 index 0000000..3d2fa66 --- /dev/null +++ b/Pond.package/CarpParseError.class/README.md @@ -0,0 +1 @@ +I represent a line of Carp checker output. \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/instance/column..st b/Pond.package/CarpParseError.class/instance/column..st new file mode 100644 index 0000000..740efd5 --- /dev/null +++ b/Pond.package/CarpParseError.class/instance/column..st @@ -0,0 +1,3 @@ +accessing +column: aNumber + column := aNumber \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/instance/file..st b/Pond.package/CarpParseError.class/instance/file..st new file mode 100644 index 0000000..bbeaba9 --- /dev/null +++ b/Pond.package/CarpParseError.class/instance/file..st @@ -0,0 +1,3 @@ +accessing +file: aString + file := aString \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/instance/line..st b/Pond.package/CarpParseError.class/instance/line..st new file mode 100644 index 0000000..d62acc2 --- /dev/null +++ b/Pond.package/CarpParseError.class/instance/line..st @@ -0,0 +1,3 @@ +accessing +line: aNumber + line := aNumber \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/instance/message..st b/Pond.package/CarpParseError.class/instance/message..st new file mode 100644 index 0000000..555a845 --- /dev/null +++ b/Pond.package/CarpParseError.class/instance/message..st @@ -0,0 +1,3 @@ +accessing +message: aString + message := aString \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/instance/printOn..st b/Pond.package/CarpParseError.class/instance/printOn..st new file mode 100644 index 0000000..72653d9 --- /dev/null +++ b/Pond.package/CarpParseError.class/instance/printOn..st @@ -0,0 +1,13 @@ +accessing +printOn: aStream + (file isNil or: [ line isNil or: column isNil ]) + ifTrue: [ aStream nextPutAll: message ] + ifFalse: [ + aStream nextPutAll: file. + aStream nextPutAll: ':'. + aStream nextPutAll: line asString. + aStream nextPutAll: ':'. + aStream nextPutAll: column asString. + aStream nextPutAll: ' '. + aStream nextPutAll: message. + ] \ No newline at end of file diff --git a/Pond.package/CarpParseError.class/properties.json b/Pond.package/CarpParseError.class/properties.json new file mode 100644 index 0000000..7a520de --- /dev/null +++ b/Pond.package/CarpParseError.class/properties.json @@ -0,0 +1,16 @@ +{ + "commentStamp" : "VeitHeller 12/16/2019 11:26", + "super" : "Object", + "category" : "Pond", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "file", + "line", + "column", + "message" + ], + "name" : "CarpParseError", + "type" : "normal" +} \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/class/carp..st b/Pond.package/CarpProcess.class/class/carp..st index 2310c2a..e20ac7f 100644 --- a/Pond.package/CarpProcess.class/class/carp..st +++ b/Pond.package/CarpProcess.class/class/carp..st @@ -1,3 +1,3 @@ as yet unclassified carp: aString - ^ self new setCarp: aString \ No newline at end of file + ^ self new carp: aString \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/instance/carp..st b/Pond.package/CarpProcess.class/instance/carp..st new file mode 100644 index 0000000..d0b3257 --- /dev/null +++ b/Pond.package/CarpProcess.class/instance/carp..st @@ -0,0 +1,3 @@ +accessing +carp: aString + proc command: aString \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/instance/dir..st b/Pond.package/CarpProcess.class/instance/dir..st new file mode 100644 index 0000000..ada75e2 --- /dev/null +++ b/Pond.package/CarpProcess.class/instance/dir..st @@ -0,0 +1,3 @@ +accessing +dir: aString + proc environmentAt: 'CARP_DIR' put: aString \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/instance/setCarp..st b/Pond.package/CarpProcess.class/instance/setCarp..st deleted file mode 100644 index 55bd1a5..0000000 --- a/Pond.package/CarpProcess.class/instance/setCarp..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -setCarp: aString - proc command: aString \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/instance/setDir..st b/Pond.package/CarpProcess.class/instance/setDir..st deleted file mode 100644 index 26b9428..0000000 --- a/Pond.package/CarpProcess.class/instance/setDir..st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -setDir: aString - proc environmentAt: 'CARP_DIR' put: aString \ No newline at end of file diff --git a/Pond.package/CarpProcess.class/properties.json b/Pond.package/CarpProcess.class/properties.json index a66f5f7..94738b4 100644 --- a/Pond.package/CarpProcess.class/properties.json +++ b/Pond.package/CarpProcess.class/properties.json @@ -7,8 +7,6 @@ "classvars" : [ ], "instvars" : [ "proc", - "out", - "in", "excepted" ], "name" : "CarpProcess",