Packages

An ABNF parser generator updated from the original developed by @vanstee.

Current section

Files

Jump to
abnf2 lib abnf core.ex
Raw

lib/abnf/core.ex

# WARNING: This file was generated with by following command:
# mix abnf.generate priv/core.abnf lib/abnf/core.ex Abnf.Core
defmodule(Abnf.Core) do
import(Abnf.Operators)
def(parse(rule, input) when is_binary(input)) do
parse(rule, String.to_charlist(input))
end
def(parse(rule, input)) do
parse(rule).(input)
end
defrule(:ALPHA) do
alternate([range(65, 90), range(97, 122)])
end
defrule(:BIT) do
alternate([literal('0'), literal('1')])
end
defrule(:CHAR) do
range(1, 127)
end
defrule(:CR) do
literal('\r')
end
defrule(:CRLF) do
alternate([concatenate([parse(:CR), parse(:LF)]), parse(:LF)])
end
defrule(:CTL) do
alternate([range(0, 31), literal([127])])
end
defrule(:DIGIT) do
range(48, 57)
end
defrule(:DQUOTE) do
literal('"')
end
defrule(:HEXDIG) do
alternate([parse(:DIGIT), literal('A'), literal('B'), literal('C'), literal('D'), literal('E'), literal('F')])
end
defrule(:HTAB) do
literal('\t')
end
defrule(:LF) do
literal('\n')
end
defrule(:LWSP) do
repeat(0, :infinity, alternate([parse(:WSP), concatenate([parse(:CRLF), parse(:WSP)])]))
end
defrule(:OCTET) do
range(0, 255)
end
defrule(:SP) do
literal(' ')
end
defrule(:VCHAR) do
range(33, 126)
end
defrule(:WSP) do
alternate([parse(:SP), parse(:HTAB)])
end
end