Kinds

Norg.KindsModule

To provide a type-stable parser, we handle types ourselves. This is directly inspired by JuliaSyntax.jl. See here

You can see kinds as an advanced Enum type that allows some kind of grouping of values. We use Kinds.Kind to classify the different types of tokens ast nodes.

source
Norg.Kinds.KindType
Kind(name)
K"name"

This is type tag, used to specify the type of tokens and AST nodes.

source
Norg.Kinds.@K_strMacro
K"s"

The kind of a token or AST internal node with string "s". For example

  • K">" is the kind of the greater than sign token
source