---
source: kcl/src/tests.rs
expression: tokens
---
Ok:
  - type: keyword
    start: 0
    end: 2
    value: fn
  - type: whitespace
    start: 2
    end: 3
    value: " "
  - type: word
    start: 3
    end: 9
    value: square
  - type: whitespace
    start: 9
    end: 10
    value: " "
  - type: operator
    start: 10
    end: 11
    value: "="
  - type: whitespace
    start: 11
    end: 12
    value: " "
  - type: brace
    start: 12
    end: 13
    value: (
  - type: word
    start: 13
    end: 19
    value: length
  - type: comma
    start: 19
    end: 20
    value: ","
  - type: whitespace
    start: 20
    end: 21
    value: " "
  - type: word
    start: 21
    end: 27
    value: center
  - type: brace
    start: 27
    end: 28
    value: )
  - type: whitespace
    start: 28
    end: 29
    value: " "
  - type: operator
    start: 29
    end: 31
    value: "=>"
  - type: whitespace
    start: 31
    end: 32
    value: " "
  - type: brace
    start: 32
    end: 33
    value: "{"
  - type: whitespace
    start: 33
    end: 36
    value: "\n  "
  - type: word
    start: 36
    end: 37
    value: l
  - type: whitespace
    start: 37
    end: 38
    value: " "
  - type: operator
    start: 38
    end: 39
    value: "="
  - type: whitespace
    start: 39
    end: 40
    value: " "
  - type: word
    start: 40
    end: 46
    value: length
  - type: whitespace
    start: 46
    end: 47
    value: " "
  - type: operator
    start: 47
    end: 48
    value: /
  - type: whitespace
    start: 48
    end: 49
    value: " "
  - type: number
    start: 49
    end: 50
    value: "2"
  - type: whitespace
    start: 50
    end: 53
    value: "\n  "
  - type: word
    start: 53
    end: 54
    value: x
  - type: whitespace
    start: 54
    end: 55
    value: " "
  - type: operator
    start: 55
    end: 56
    value: "="
  - type: whitespace
    start: 56
    end: 57
    value: " "
  - type: word
    start: 57
    end: 63
    value: center
  - type: brace
    start: 63
    end: 64
    value: "["
  - type: number
    start: 64
    end: 65
    value: "0"
  - type: brace
    start: 65
    end: 66
    value: "]"
  - type: whitespace
    start: 66
    end: 69
    value: "\n  "
  - type: word
    start: 69
    end: 70
    value: y
  - type: whitespace
    start: 70
    end: 71
    value: " "
  - type: operator
    start: 71
    end: 72
    value: "="
  - type: whitespace
    start: 72
    end: 73
    value: " "
  - type: word
    start: 73
    end: 79
    value: center
  - type: brace
    start: 79
    end: 80
    value: "["
  - type: number
    start: 80
    end: 81
    value: "1"
  - type: brace
    start: 81
    end: 82
    value: "]"
  - type: whitespace
    start: 82
    end: 85
    value: "\n  "
  - type: word
    start: 85
    end: 87
    value: p0
  - type: whitespace
    start: 87
    end: 88
    value: " "
  - type: operator
    start: 88
    end: 89
    value: "="
  - type: whitespace
    start: 89
    end: 90
    value: " "
  - type: brace
    start: 90
    end: 91
    value: "["
  - type: operator
    start: 91
    end: 92
    value: "-"
  - type: word
    start: 92
    end: 93
    value: l
  - type: whitespace
    start: 93
    end: 94
    value: " "
  - type: operator
    start: 94
    end: 95
    value: +
  - type: whitespace
    start: 95
    end: 96
    value: " "
  - type: word
    start: 96
    end: 97
    value: x
  - type: comma
    start: 97
    end: 98
    value: ","
  - type: whitespace
    start: 98
    end: 99
    value: " "
  - type: operator
    start: 99
    end: 100
    value: "-"
  - type: word
    start: 100
    end: 101
    value: l
  - type: whitespace
    start: 101
    end: 102
    value: " "
  - type: operator
    start: 102
    end: 103
    value: +
  - type: whitespace
    start: 103
    end: 104
    value: " "
  - type: word
    start: 104
    end: 105
    value: y
  - type: brace
    start: 105
    end: 106
    value: "]"
  - type: whitespace
    start: 106
    end: 109
    value: "\n  "
  - type: word
    start: 109
    end: 111
    value: p1
  - type: whitespace
    start: 111
    end: 112
    value: " "
  - type: operator
    start: 112
    end: 113
    value: "="
  - type: whitespace
    start: 113
    end: 114
    value: " "
  - type: brace
    start: 114
    end: 115
    value: "["
  - type: operator
    start: 115
    end: 116
    value: "-"
  - type: word
    start: 116
    end: 117
    value: l
  - type: whitespace
    start: 117
    end: 118
    value: " "
  - type: operator
    start: 118
    end: 119
    value: +
  - type: whitespace
    start: 119
    end: 120
    value: " "
  - type: word
    start: 120
    end: 121
    value: x
  - type: comma
    start: 121
    end: 122
    value: ","
  - type: whitespace
    start: 122
    end: 124
    value: "  "
  - type: word
    start: 124
    end: 125
    value: l
  - type: whitespace
    start: 125
    end: 126
    value: " "
  - type: operator
    start: 126
    end: 127
    value: +
  - type: whitespace
    start: 127
    end: 128
    value: " "
  - type: word
    start: 128
    end: 129
    value: y
  - type: brace
    start: 129
    end: 130
    value: "]"
  - type: whitespace
    start: 130
    end: 133
    value: "\n  "
  - type: word
    start: 133
    end: 135
    value: p2
  - type: whitespace
    start: 135
    end: 136
    value: " "
  - type: operator
    start: 136
    end: 137
    value: "="
  - type: whitespace
    start: 137
    end: 138
    value: " "
  - type: brace
    start: 138
    end: 139
    value: "["
  - type: whitespace
    start: 139
    end: 140
    value: " "
  - type: word
    start: 140
    end: 141
    value: l
  - type: whitespace
    start: 141
    end: 142
    value: " "
  - type: operator
    start: 142
    end: 143
    value: +
  - type: whitespace
    start: 143
    end: 144
    value: " "
  - type: word
    start: 144
    end: 145
    value: x
  - type: comma
    start: 145
    end: 146
    value: ","
  - type: whitespace
    start: 146
    end: 148
    value: "  "
  - type: word
    start: 148
    end: 149
    value: l
  - type: whitespace
    start: 149
    end: 150
    value: " "
  - type: operator
    start: 150
    end: 151
    value: +
  - type: whitespace
    start: 151
    end: 152
    value: " "
  - type: word
    start: 152
    end: 153
    value: y
  - type: brace
    start: 153
    end: 154
    value: "]"
  - type: whitespace
    start: 154
    end: 157
    value: "\n  "
  - type: word
    start: 157
    end: 159
    value: p3
  - type: whitespace
    start: 159
    end: 160
    value: " "
  - type: operator
    start: 160
    end: 161
    value: "="
  - type: whitespace
    start: 161
    end: 162
    value: " "
  - type: brace
    start: 162
    end: 163
    value: "["
  - type: whitespace
    start: 163
    end: 164
    value: " "
  - type: word
    start: 164
    end: 165
    value: l
  - type: whitespace
    start: 165
    end: 166
    value: " "
  - type: operator
    start: 166
    end: 167
    value: +
  - type: whitespace
    start: 167
    end: 168
    value: " "
  - type: word
    start: 168
    end: 169
    value: x
  - type: comma
    start: 169
    end: 170
    value: ","
  - type: whitespace
    start: 170
    end: 171
    value: " "
  - type: operator
    start: 171
    end: 172
    value: "-"
  - type: word
    start: 172
    end: 173
    value: l
  - type: whitespace
    start: 173
    end: 174
    value: " "
  - type: operator
    start: 174
    end: 175
    value: +
  - type: whitespace
    start: 175
    end: 176
    value: " "
  - type: word
    start: 176
    end: 177
    value: y
  - type: brace
    start: 177
    end: 178
    value: "]"
  - type: whitespace
    start: 178
    end: 181
    value: "\n  "
  - type: keyword
    start: 181
    end: 187
    value: return
  - type: whitespace
    start: 187
    end: 188
    value: " "
  - type: word
    start: 188
    end: 201
    value: startSketchAt
  - type: brace
    start: 201
    end: 202
    value: (
  - type: word
    start: 202
    end: 204
    value: p0
  - type: brace
    start: 204
    end: 205
    value: )
  - type: whitespace
    start: 205
    end: 210
    value: "\n    "
  - type: operator
    start: 210
    end: 212
    value: "|>"
  - type: whitespace
    start: 212
    end: 213
    value: " "
  - type: word
    start: 213
    end: 219
    value: lineTo
  - type: brace
    start: 219
    end: 220
    value: (
  - type: word
    start: 220
    end: 222
    value: p1
  - type: comma
    start: 222
    end: 223
    value: ","
  - type: whitespace
    start: 223
    end: 224
    value: " "
  - type: operator
    start: 224
    end: 225
    value: "%"
  - type: brace
    start: 225
    end: 226
    value: )
  - type: whitespace
    start: 226
    end: 231
    value: "\n    "
  - type: operator
    start: 231
    end: 233
    value: "|>"
  - type: whitespace
    start: 233
    end: 234
    value: " "
  - type: word
    start: 234
    end: 240
    value: lineTo
  - type: brace
    start: 240
    end: 241
    value: (
  - type: word
    start: 241
    end: 243
    value: p2
  - type: comma
    start: 243
    end: 244
    value: ","
  - type: whitespace
    start: 244
    end: 245
    value: " "
  - type: operator
    start: 245
    end: 246
    value: "%"
  - type: brace
    start: 246
    end: 247
    value: )
  - type: whitespace
    start: 247
    end: 252
    value: "\n    "
  - type: operator
    start: 252
    end: 254
    value: "|>"
  - type: whitespace
    start: 254
    end: 255
    value: " "
  - type: word
    start: 255
    end: 261
    value: lineTo
  - type: brace
    start: 261
    end: 262
    value: (
  - type: word
    start: 262
    end: 264
    value: p3
  - type: comma
    start: 264
    end: 265
    value: ","
  - type: whitespace
    start: 265
    end: 266
    value: " "
  - type: operator
    start: 266
    end: 267
    value: "%"
  - type: brace
    start: 267
    end: 268
    value: )
  - type: whitespace
    start: 268
    end: 273
    value: "\n    "
  - type: operator
    start: 273
    end: 275
    value: "|>"
  - type: whitespace
    start: 275
    end: 276
    value: " "
  - type: word
    start: 276
    end: 282
    value: lineTo
  - type: brace
    start: 282
    end: 283
    value: (
  - type: word
    start: 283
    end: 285
    value: p0
  - type: comma
    start: 285
    end: 286
    value: ","
  - type: whitespace
    start: 286
    end: 287
    value: " "
  - type: operator
    start: 287
    end: 288
    value: "%"
  - type: brace
    start: 288
    end: 289
    value: )
  - type: whitespace
    start: 289
    end: 294
    value: "\n    "
  - type: operator
    start: 294
    end: 296
    value: "|>"
  - type: whitespace
    start: 296
    end: 297
    value: " "
  - type: word
    start: 297
    end: 302
    value: close
  - type: brace
    start: 302
    end: 303
    value: (
  - type: operator
    start: 303
    end: 304
    value: "%"
  - type: brace
    start: 304
    end: 305
    value: )
  - type: whitespace
    start: 305
    end: 306
    value: "\n"
  - type: brace
    start: 306
    end: 307
    value: "}"
  - type: whitespace
    start: 307
    end: 309
    value: "\n\n"
  - type: keyword
    start: 309
    end: 311
    value: fn
  - type: whitespace
    start: 311
    end: 312
    value: " "
  - type: word
    start: 312
    end: 316
    value: cube
  - type: whitespace
    start: 316
    end: 317
    value: " "
  - type: operator
    start: 317
    end: 318
    value: "="
  - type: whitespace
    start: 318
    end: 319
    value: " "
  - type: brace
    start: 319
    end: 320
    value: (
  - type: word
    start: 320
    end: 326
    value: length
  - type: comma
    start: 326
    end: 327
    value: ","
  - type: whitespace
    start: 327
    end: 328
    value: " "
  - type: word
    start: 328
    end: 334
    value: center
  - type: brace
    start: 334
    end: 335
    value: )
  - type: whitespace
    start: 335
    end: 336
    value: " "
  - type: operator
    start: 336
    end: 338
    value: "=>"
  - type: whitespace
    start: 338
    end: 339
    value: " "
  - type: brace
    start: 339
    end: 340
    value: "{"
  - type: whitespace
    start: 340
    end: 343
    value: "\n  "
  - type: keyword
    start: 343
    end: 349
    value: return
  - type: whitespace
    start: 349
    end: 350
    value: " "
  - type: word
    start: 350
    end: 356
    value: square
  - type: brace
    start: 356
    end: 357
    value: (
  - type: word
    start: 357
    end: 363
    value: length
  - type: comma
    start: 363
    end: 364
    value: ","
  - type: whitespace
    start: 364
    end: 365
    value: " "
  - type: word
    start: 365
    end: 371
    value: center
  - type: brace
    start: 371
    end: 372
    value: )
  - type: whitespace
    start: 372
    end: 377
    value: "\n    "
  - type: operator
    start: 377
    end: 379
    value: "|>"
  - type: whitespace
    start: 379
    end: 380
    value: " "
  - type: word
    start: 380
    end: 387
    value: extrude
  - type: brace
    start: 387
    end: 388
    value: (
  - type: word
    start: 388
    end: 394
    value: length
  - type: comma
    start: 394
    end: 395
    value: ","
  - type: whitespace
    start: 395
    end: 396
    value: " "
  - type: operator
    start: 396
    end: 397
    value: "%"
  - type: brace
    start: 397
    end: 398
    value: )
  - type: whitespace
    start: 398
    end: 399
    value: "\n"
  - type: brace
    start: 399
    end: 400
    value: "}"
  - type: whitespace
    start: 400
    end: 402
    value: "\n\n"
  - type: word
    start: 402
    end: 407
    value: width
  - type: whitespace
    start: 407
    end: 408
    value: " "
  - type: operator
    start: 408
    end: 409
    value: "="
  - type: whitespace
    start: 409
    end: 410
    value: " "
  - type: number
    start: 410
    end: 412
    value: "20"
  - type: whitespace
    start: 412
    end: 413
    value: "\n"
  - type: word
    start: 413
    end: 417
    value: cube
  - type: brace
    start: 417
    end: 418
    value: (
  - type: word
    start: 418
    end: 423
    value: width
  - type: comma
    start: 423
    end: 424
    value: ","
  - type: whitespace
    start: 424
    end: 425
    value: " "
  - type: brace
    start: 425
    end: 426
    value: "["
  - type: number
    start: 426
    end: 428
    value: "20"
  - type: comma
    start: 428
    end: 429
    value: ","
  - type: whitespace
    start: 429
    end: 430
    value: " "
  - type: number
    start: 430
    end: 431
    value: "0"
  - type: brace
    start: 431
    end: 432
    value: "]"
  - type: brace
    start: 432
    end: 433
    value: )
  - type: whitespace
    start: 433
    end: 434
    value: "\n"
