[
  [
    "start",
    [
      "keyword",
      "library"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "IEEE"
    ]
  ],
  [
    "start",
    [
      "identifier",
      "user"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "IEEE"
    ],
    [
      "punctuation.operator",
      "."
    ],
    [
      "identifier",
      "std_logic_1164"
    ],
    [
      "punctuation.operator",
      "."
    ],
    [
      "keyword",
      "all"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "keyword",
      "use"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "IEEE"
    ],
    [
      "punctuation.operator",
      "."
    ],
    [
      "identifier",
      "numeric_std"
    ],
    [
      "punctuation.operator",
      "."
    ],
    [
      "keyword",
      "all"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "keyword",
      "entity"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "COUNT16"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "is"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword",
      "port"
    ],
    [
      "text",
      " "
    ],
    [
      "paren.lparen",
      "("
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "identifier",
      "cOut"
    ],
    [
      "text",
      "    "
    ],
    [
      "punctuation.operator",
      ":"
    ],
    [
      "keyword",
      "out"
    ],
    [
      "text",
      "    "
    ],
    [
      "storage.type",
      "std_logic_vector"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "constant.numeric",
      "15"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "downto"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "0"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "punctuation.operator",
      ";"
    ],
    [
      "text",
      "  "
    ],
    [
      "comment",
      "-- counter output"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "identifier",
      "clkEn"
    ],
    [
      "text",
      "   "
    ],
    [
      "punctuation.operator",
      ":"
    ],
    [
      "keyword",
      "in"
    ],
    [
      "text",
      "     "
    ],
    [
      "storage.type",
      "std_logic"
    ],
    [
      "punctuation.operator",
      ";"
    ],
    [
      "text",
      "                      "
    ],
    [
      "comment",
      "-- count enable"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "identifier",
      "clk"
    ],
    [
      "text",
      "     "
    ],
    [
      "punctuation.operator",
      ":"
    ],
    [
      "keyword",
      "in"
    ],
    [
      "text",
      "     "
    ],
    [
      "storage.type",
      "std_logic"
    ],
    [
      "punctuation.operator",
      ";"
    ],
    [
      "text",
      "                      "
    ],
    [
      "comment",
      "-- clock input"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "identifier",
      "rst"
    ],
    [
      "text",
      "     "
    ],
    [
      "punctuation.operator",
      ":"
    ],
    [
      "keyword",
      "in"
    ],
    [
      "text",
      "     "
    ],
    [
      "storage.type",
      "std_logic"
    ],
    [
      "text",
      "                       "
    ],
    [
      "comment",
      "-- reset input"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ]
  ],
  [
    "start",
    [
      "keyword",
      "end"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "entity"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "keyword",
      "architecture"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "count_rtl"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "of"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "COUNT16"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "is"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "storage.type",
      "signal"
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "count"
    ],
    [
      "text",
      " "
    ],
    [
      "punctuation.operator",
      ":"
    ],
    [
      "storage.type",
      "std_logic_vector"
    ],
    [
      "text",
      " "
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "constant.numeric",
      "15"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "downto"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "0"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ]
  ],
  [
    "start",
    [
      "keyword",
      "begin"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword",
      "process"
    ],
    [
      "text",
      " "
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "clk"
    ],
    [
      "punctuation.operator",
      ","
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "rst"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "begin"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword",
      "if"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "rst"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "string",
      "'1'"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "then"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "identifier",
      "count"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "<="
    ],
    [
      "text",
      " "
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "keyword",
      "others"
    ],
    [
      "keyword.operator",
      "=>"
    ],
    [
      "string",
      "'0'"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword",
      "elsif"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "rising_edge"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "clk"
    ],
    [
      "paren.rparen",
      "))"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "then"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "keyword",
      "if"
    ],
    [
      "paren.lparen",
      "("
    ],
    [
      "identifier",
      "clkEn"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "="
    ],
    [
      "text",
      " "
    ],
    [
      "string",
      "'1'"
    ],
    [
      "paren.rparen",
      ")"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "then"
    ]
  ],
  [
    "start",
    [
      "text",
      "                "
    ],
    [
      "identifier",
      "count"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "<="
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "count"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "+"
    ],
    [
      "text",
      " "
    ],
    [
      "constant.numeric",
      "1"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "            "
    ],
    [
      "keyword",
      "end"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "if"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ],
    [
      "keyword",
      "end"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "if"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "        "
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "keyword",
      "end"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "process"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ],
    [
      "identifier",
      "cOut"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword.operator",
      "<="
    ],
    [
      "text",
      " "
    ],
    [
      "identifier",
      "count"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start"
  ],
  [
    "start",
    [
      "keyword",
      "end"
    ],
    [
      "text",
      " "
    ],
    [
      "keyword",
      "architecture"
    ],
    [
      "punctuation.operator",
      ";"
    ]
  ],
  [
    "start",
    [
      "text",
      "    "
    ]
  ]
]