View Source LibJudge.Tokenizer (lib_judge v0.4.8)

Tokenizer for the MTG Comprehensive Rules

Summary

Types

@type contents() :: {:contents, [rule() | String.t()]}
@type effective_date() :: {:effective_date, Date.t()}
@type glossary() :: {:glossary, [glossary_item()]}
@type glossary_item() :: {name :: String.t(), definition :: String.t()}
@type intro() :: {:intro, String.t()}
@type rule() ::
  {:rule,
   {type :: LibJudge.Rule.rule_type(), rule :: LibJudge.Rule.t(),
    body :: String.t(), examples :: [String.t()]}}
@type title() :: {:title, String.t()}
@type token() ::
  title() | effective_date() | intro() | contents() | rule() | glossary()
@type token_type() ::
  :title | :effective_date | :intro | :contents | :rule | :glossary

Functions

@spec tokenize(binary()) :: [token()]