[
  [
    "punctuation.definition.comment.pascal",
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      "****************************************************************************"
    ]
  ],
  [
    "punctuation.definition.comment.pascal",
    [
      "comment.block.pascal.one",
      " * A simple bubble sort program.  Reads integers, one per line, and prints   *"
    ]
  ],
  [
    "punctuation.definition.comment.pascal",
    [
      "comment.block.pascal.one",
      " * them out in sorted order.  Blows up if there are more than 49.            *"
    ]
  ],
  [
    "start",
    [
      "comment.block.pascal.one",
      " ****************************************************************************"
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "keyword.control.pascal",
      "PROGRAM"
    ],
    [
      "text",
      " Sort(input"
    ],
    [
      "keyword.operator",
      ","
    ],
    [
      "text",
      " output)"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword.control.pascal",
      "CONST"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Max array size. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        MaxElts "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "50"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword.control.pascal",
      "TYPE"
    ],
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Type of the element array. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        IntArrType "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "ARRAY"
    ],
    [
      "text",
      " ["
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      "..MaxElts] "
    ],
    [
      "keyword.control.pascal",
      "OF"
    ],
    [
      "text",
      " Integer"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword.control.pascal",
      "VAR"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Indexes, exchange temp, array size. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        i"
    ],
    [
      "keyword.operator",
      ","
    ],
    [
      "text",
      " j"
    ],
    [
      "keyword.operator",
      ","
    ],
    [
      "text",
      " tmp"
    ],
    [
      "keyword.operator",
      ","
    ],
    [
      "text",
      " size: integer"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Array of ints "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        arr: IntArrType"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Read in the integers. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "variable.pascal",
      "PROCEDURE"
    ],
    [
      "text",
      " "
    ],
    [
      "storage.type.function.pascal",
      "ReadArr"
    ],
    [
      "text",
      "("
    ],
    [
      "keyword.control.pascal",
      "VAR"
    ],
    [
      "text",
      " size: Integer"
    ],
    [
      "keyword.operator",
      ";"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "VAR"
    ],
    [
      "text",
      " a: IntArrType)"
    ],
    [
      "keyword.operator",
      ";"
    ],
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword.control.pascal",
      "BEGIN"
    ]
  ],
  [
    "start",
    [
      "text",
      "            size "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "keyword.control.pascal",
      "WHILE"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "NOT"
    ],
    [
      "text",
      " eof "
    ],
    [
      "keyword.control.pascal",
      "DO"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "BEGIN"
    ]
  ],
  [
    "start",
    [
      "text",
      "                readln(a[size])"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "                "
    ],
    [
      "keyword.control.pascal",
      "IF"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "NOT"
    ],
    [
      "text",
      " eof "
    ],
    [
      "keyword.control.pascal",
      "THEN"
    ],
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "text",
      "                    size "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " size "
    ],
    [
      "keyword.operator",
      "+"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "keyword.control.pascal",
      "END"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword.control.pascal",
      "END"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword.control.pascal",
      "BEGIN"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Read "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        ReadArr(size"
    ],
    [
      "keyword.operator",
      ","
    ],
    [
      "text",
      " arr)"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Sort using bubble sort. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword.control.pascal",
      "FOR"
    ],
    [
      "text",
      " i "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " size "
    ],
    [
      "keyword.operator",
      "-"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      " DOWNTO "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "DO"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "keyword.control.pascal",
      "FOR"
    ],
    [
      "text",
      " j "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "TO"
    ],
    [
      "text",
      " i "
    ],
    [
      "keyword.control.pascal",
      "DO"
    ],
    [
      "text",
      " "
    ]
  ],
  [
    "start",
    [
      "text",
      "                "
    ],
    [
      "keyword.control.pascal",
      "IF"
    ],
    [
      "text",
      " arr[j] > arr[j "
    ],
    [
      "keyword.operator",
      "+"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      "] "
    ],
    [
      "keyword.control.pascal",
      "THEN"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "BEGIN"
    ]
  ],
  [
    "start",
    [
      "text",
      "                    tmp "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " arr[j]"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "                    arr[j] "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " arr[j "
    ],
    [
      "keyword.operator",
      "+"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      "]"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "                    arr[j "
    ],
    [
      "keyword.operator",
      "+"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      "] "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " tmp"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "                "
    ],
    [
      "keyword.control.pascal",
      "END"
    ],
    [
      "keyword.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "punctuation.definition.comment.pascal",
      "(*"
    ],
    [
      "comment.block.pascal.one",
      " Print. "
    ],
    [
      "punctuation.definition.comment.pascal",
      "*)"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword.control.pascal",
      "FOR"
    ],
    [
      "text",
      " i "
    ],
    [
      "keyword.operator",
      ":="
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric.pascal",
      "1"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.control.pascal",
      "TO"
    ],
    [
      "text",
      " size "
    ],
    [
      "keyword.control.pascal",
      "DO"
    ]
  ],
  [
    "start",
    [
      "text",
      "            writeln(arr[i])"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword.control.pascal",
      "END"
    ],
    [
      "text",
      "."
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ]
  ]
]