Current section

Files

Jump to
phorn lib blacklist.ex
Raw

lib/blacklist.ex

defmodule Blacklist do
@blacklist %{
:initial => %{
?a => '',
?b => 'cbdfgjkmnpqstvxz',
?c => 'bcdfgjkmpqstvwxy',
?d => 'bdcfgkmpqstxz',
?e => '',
?f => 'bcdghkmpqstvxz',
?g => 'bcfgkmpqstvxz',
?h => 'bcdfghjkpqtvwxz',
?i => 'iwy',
?j => 'bcdfgjkmnpqstvxz',
?k => 'bcdfgkjmpqtxz',
?l => 'bcdfgjkmnpqrstvwxz',
?m => 'cdfgjkmqtvxz',
?n => 'cfghklmnpqtx',
?o => '',
?p => 'bcdgjkmpqvxz',
?q => 'bcdfghjklmnopqrstvwxz',
?r => 'cgijlprtqwx',
?s => 'dsqx',
?t => 'cdfgpqtx',
?u => 'y',
?v => 'bcdfgjklmnpqstvwxz',
?w => 'bcdfgjklmnpqstvwxz',
?x => 'abcdfgjklmnopqrtusvwxz',
?y => 'bcdfghjkmnopqtvwxyz',
?z => 'cfkjpqstvwx'
} |> Map.new(fn {k, v} -> {k, MapSet.new(v)} end),
:sequential => %{
?a => '',
?b => 'qx',
?c => 'x',
?d => 'x',
?e => '',
?f => 'vx',
?g => 'q',
?h => 'hqx',
?i => 'iwy',
?j => 'bcjklpsxz',
?k => 'cqx',
?l => '',
?m => 'x',
?n => '',
?o => 'h',
?p => 'bx',
?q => 'acghjkoquwxy',
?r => '',
?s => 'x',
?t => 'x',
?u => 'w',
?v => 'cpsvwx',
?w => 'qx',
?x => 'gsz',
?y => 'hiqy',
?z => 'jsx'
} |> Map.new(fn {k, v} -> {k, MapSet.new(v)} end),
:final => %{
?a => '',
?b => 'cjkjpqwxv',
?c => 'bgjnqwxv',
?d => 'ckjqvx',
?e => '',
?f => 'bdjvwxz',
?g => 'bfjpqw',
?h => 'dhjqxwy',
?i => 'iwy',
?j => '',
?k => 'bcgjnpqwx',
?l => 'w',
?m => 'gjwx',
?n => 'bjpw',
?o => '',
?j => 'bcfghmnpqsvwxz',
?p => 'bgjqvwx',
?q => 'abcdeghjkmnopqtuvwxyz',
?r => '',
?s => 'bdjvx',
?t => 'cdgjkpx',
?u => 'wy',
?v => 'bcfpqsvwx',
?w => 'bghjrqvx',
?x => 'bcdefgjkpqsvwxz',
?y => 'chiqwxy',
?z => 'jsx'
} |> Map.new(fn {k, v} -> {k, MapSet.new(v)} end)
}
def get(rule, char) when rule in [:initial, :sequential, :final] do
@blacklist[rule][char]
end
end