本文へ移動
Hikari リファレンス

std:hikari リファレンス

import hikari := "std:hikari" で取得する Hikari ソース解析モジュール。処理系と同じ規則の意味分類スパン (highlight) を返す。内部表現 (トークン列・AST) は公開しない。

highlight

highlight(src)
highlight: { String | List({ start: Int, end: Int, kind: String |}) }

src (Hikari ソース文字列) の意味分類スパンの List を返す。スパンは
{ start: Int, end: Int, kind: String |} で [start, end) はバイト区間
(ソースは ASCII 限定のため桁と一致)。start < end・重なりなし・
start 昇順・改行をまたがない。
区間外は無分類。kind の語彙は comment / string / number / bool /
slot / local / inner / builtin / type (将来追加されうる)。字句層は常に
付き、意味層 (識別子分類) はパース成功時のみ上書きされる。パースは文の列
として試し、通らなければ単独の型式として試す ({ List(e) | Array(e) }
のようなシグネチャの綴りは型として読める)。

>>> hikari.highlight "1 + 2"
[{ start := 0, end := 1, kind := "number" |}, { start := 4, end := 5, kind := "number" |}]