{
"success": true,
"count": 100,
"tokens": [
{
"kind": "Identifier",
"text": "set",
"start": 48,
"end": 51
},
{
"kind": "Operator",
"text": "-",
"start": 52,
"end": 53
},
{
"kind": "Identifier",
"text": "euo",
"start": 53,
"end": 56
},
{
"kind": "Identifier",
"text": "pipefail",
"start": 57,
"end": 65
},
{
"kind": "Identifier",
"text": "greet",
"start": 101,
"end": 106
},
{
"kind": "Delimiter",
"text": "(",
"start": 106,
"end": 107
},
{
"kind": "Delimiter",
"text": ")",
"start": 107,
"end": 108
},
{
"kind": "Delimiter",
"text": "{",
"start": 109,
"end": 110
},
{
"kind": "Keyword",
"text": "local",
"start": 116,
"end": 121
},
{
"kind": "Identifier",
"text": "name",
"start": 122,
"end": 126
},
{
"kind": "Operator",
"text": "=",
"start": 126,
"end": 127
},
{
"kind": "StringLiteral",
"text": "\"$1\"",
"start": 127,
"end": 131
},
{
"kind": "Identifier",
"text": "echo",
"start": 137,
"end": 141
},
{
"kind": "StringLiteral",
"text": "\"Hello, $name!\"",
"start": 142,
"end": 157
},
{
"kind": "Delimiter",
"text": "}",
"start": 159,
"end": 160
},
{
"kind": "Keyword",
"text": "readonly",
"start": 189,
"end": 197
},
{
"kind": "Identifier",
"text": "SCRIPT_DIR",
"start": 198,
"end": 208
},
{
"kind": "Operator",
"text": "=",
"start": 208,
"end": 209
},
{
"kind": "StringLiteral",
"text": "\"$(cd \"",
"start": 209,
"end": 216
},
{
"kind": "SpecialChar",
"text": "$",
"start": 216,
"end": 217
},
{
"kind": "Delimiter",
"text": "(",
"start": 217,
"end": 218
},
{
"kind": "Identifier",
"text": "dirname",
"start": 218,
"end": 225
},
{
"kind": "StringLiteral",
"text": "\"${BASH_SOURCE[0]}\"",
"start": 226,
"end": 245
},
{
"kind": "Delimiter",
"text": ")",
"start": 245,
"end": 246
},
{
"kind": "StringLiteral",
"text": "\" && pwd)\"",
"start": 246,
"end": 256
},
{
"kind": "Keyword",
"text": "readonly",
"start": 258,
"end": 266
},
{
"kind": "Identifier",
"text": "LOG_FILE",
"start": 267,
"end": 275
},
{
"kind": "Operator",
"text": "=",
"start": 275,
"end": 276
},
{
"kind": "StringLiteral",
"text": "\"/tmp/test.log\"",
"start": 276,
"end": 291
},
{
"kind": "Identifier",
"text": "fruits",
"start": 315,
"end": 321
},
{
"kind": "Operator",
"text": "=",
"start": 321,
"end": 322
},
{
"kind": "Delimiter",
"text": "(",
"start": 322,
"end": 323
},
{
"kind": "StringLiteral",
"text": "\"apple\"",
"start": 323,
"end": 330
},
{
"kind": "StringLiteral",
"text": "\"banana\"",
"start": 331,
"end": 339
},
{
"kind": "StringLiteral",
"text": "\"orange\"",
"start": 340,
"end": 348
},
{
"kind": "Delimiter",
"text": ")",
"start": 348,
"end": 349
},
{
"kind": "Keyword",
"text": "for",
"start": 351,
"end": 354
},
{
"kind": "Identifier",
"text": "fruit",
"start": 355,
"end": 360
},
{
"kind": "Keyword",
"text": "in",
"start": 361,
"end": 363
},
{
"kind": "StringLiteral",
"text": "\"${fruits[@]}\"",
"start": 364,
"end": 378
},
{
"kind": "Delimiter",
"text": ";",
"start": 378,
"end": 379
},
{
"kind": "Keyword",
"text": "do",
"start": 380,
"end": 382
},
{
"kind": "Identifier",
"text": "echo",
"start": 388,
"end": 392
},
{
"kind": "StringLiteral",
"text": "\"Processing $fruit\"",
"start": 393,
"end": 412
},
{
"kind": "Keyword",
"text": "done",
"start": 414,
"end": 418
},
{
"kind": "Keyword",
"text": "if",
"start": 448,
"end": 450
},
{
"kind": "Delimiter",
"text": "[",
"start": 451,
"end": 452
},
{
"kind": "Delimiter",
"text": "[",
"start": 452,
"end": 453
},
{
"kind": "Operator",
"text": "-",
"start": 454,
"end": 455
},
{
"kind": "Identifier",
"text": "f",
"start": 455,
"end": 456
},
{
"kind": "StringLiteral",
"text": "\"$LOG_FILE\"",
"start": 457,
"end": 468
},
{
"kind": "Delimiter",
"text": "]",
"start": 469,
"end": 470
},
{
"kind": "Delimiter",
"text": "]",
"start": 470,
"end": 471
},
{
"kind": "Delimiter",
"text": ";",
"start": 471,
"end": 472
},
{
"kind": "Keyword",
"text": "then",
"start": 473,
"end": 477
},
{
"kind": "Identifier",
"text": "echo",
"start": 483,
"end": 487
},
{
"kind": "StringLiteral",
"text": "\"Log file exists\"",
"start": 488,
"end": 505
},
{
"kind": "Keyword",
"text": "elif",
"start": 507,
"end": 511
},
{
"kind": "Delimiter",
"text": "[",
"start": 512,
"end": 513
},
{
"kind": "Delimiter",
"text": "[",
"start": 513,
"end": 514
},
{
"kind": "Operator",
"text": "-",
"start": 515,
"end": 516
},
{
"kind": "Identifier",
"text": "d",
"start": 516,
"end": 517
},
{
"kind": "StringLiteral",
"text": "\"/tmp\"",
"start": 518,
"end": 524
},
{
"kind": "Delimiter",
"text": "]",
"start": 525,
"end": 526
},
{
"kind": "Delimiter",
"text": "]",
"start": 526,
"end": 527
},
{
"kind": "Delimiter",
"text": ";",
"start": 527,
"end": 528
},
{
"kind": "Keyword",
"text": "then",
"start": 529,
"end": 533
},
{
"kind": "Identifier",
"text": "echo",
"start": 539,
"end": 543
},
{
"kind": "StringLiteral",
"text": "\"Temp directory exists\"",
"start": 544,
"end": 567
},
{
"kind": "Keyword",
"text": "else",
"start": 569,
"end": 573
},
{
"kind": "Identifier",
"text": "echo",
"start": 579,
"end": 583
},
{
"kind": "StringLiteral",
"text": "\"Neither file nor directory found\"",
"start": 584,
"end": 618
},
{
"kind": "Keyword",
"text": "fi",
"start": 620,
"end": 622
},
{
"kind": "Keyword",
"text": "case",
"start": 644,
"end": 648
},
{
"kind": "StringLiteral",
"text": "\"$1\"",
"start": 649,
"end": 653
},
{
"kind": "Keyword",
"text": "in",
"start": 654,
"end": 656
},
{
"kind": "Identifier",
"text": "start",
"start": 662,
"end": 667
},
{
"kind": "Delimiter",
"text": ")",
"start": 667,
"end": 668
},
{
"kind": "Identifier",
"text": "echo",
"start": 678,
"end": 682
},
{
"kind": "StringLiteral",
"text": "\"Starting service...\"",
"start": 683,
"end": 704
},
{
"kind": "Delimiter",
"text": ";",
"start": 714,
"end": 715
},
{
"kind": "Delimiter",
"text": ";",
"start": 715,
"end": 716
},
{
"kind": "Identifier",
"text": "stop",
"start": 722,
"end": 726
},
{
"kind": "Delimiter",
"text": ")",
"start": 726,
"end": 727
},
{
"kind": "Identifier",
"text": "echo",
"start": 737,
"end": 741
},
{
"kind": "StringLiteral",
"text": "\"Stopping service...\"",
"start": 742,
"end": 763
},
{
"kind": "Delimiter",
"text": ";",
"start": 773,
"end": 774
},
{
"kind": "Delimiter",
"text": ";",
"start": 774,
"end": 775
},
{
"kind": "Identifier",
"text": "restart",
"start": 781,
"end": 788
},
{
"kind": "Delimiter",
"text": ")",
"start": 788,
"end": 789
},
{
"kind": "Identifier",
"text": "echo",
"start": 799,
"end": 803
},
{
"kind": "StringLiteral",
"text": "\"Restarting service...\"",
"start": 804,
"end": 827
},
{
"kind": "Delimiter",
"text": ";",
"start": 837,
"end": 838
},
{
"kind": "Delimiter",
"text": ";",
"start": 838,
"end": 839
},
{
"kind": "Operator",
"text": "*",
"start": 845,
"end": 846
},
{
"kind": "Delimiter",
"text": ")",
"start": 846,
"end": 847
},
{
"kind": "Identifier",
"text": "echo",
"start": 857,
"end": 861
},
{
"kind": "StringLiteral",
"text": "\"Unknown command: $1\"",
"start": 862,
"end": 883
},
{
"kind": "Keyword",
"text": "exit",
"start": 893,
"end": 897
},
{
"kind": "NumberLiteral",
"text": "1",
"start": 898,
"end": 899
}
],
"errors": []
}