# Generated from lib/cldr/language_tag/rfc5646_parser.ex.exs, do not edit.
# Generated at 2021-08-20 10:43:22Z.
defmodule Cldr.Rfc5646.Parser do
@moduledoc """
Implements parsing for [RFC5646](https://datatracker.ietf.org/doc/html/rfc5646) language
tags with [BCP47](https://tools.ietf.org/search/bcp47) extensions.
The primary interface to this module is the function
`Cldr.LanguageTag.parse/1`.
"""
alias Cldr.LanguageTag
import Cldr.Rfc5646.Helpers
def parse(rule \\ :language_tag, input) when is_atom(rule) and is_binary(input) do
apply(__MODULE__, rule, [input])
|> unwrap
end
defp unwrap({:ok, acc, "", _, _, _}) when is_list(acc),
do: {:ok, acc}
defp unwrap({:error, <<first::binary-size(1), reason::binary>>, rest, _, _, offset}),
do:
{:error,
{LanguageTag.ParseError,
"#{String.capitalize(first)}#{reason}. Could not parse the remaining #{inspect(rest)} " <>
"starting at position #{offset + 1}"}}
@doc """
Parses the given `binary` as language_tag.
Returns `{:ok, [token], rest, context, position, byte_offset}` or
`{:error, reason, rest, context, line, byte_offset}` where `position`
describes the location of the language_tag (start position) as `{line, column_on_line}`.
## Options
* `:byte_offset` - the byte offset for the whole binary, defaults to 0
* `:line` - the line and the byte offset into that line, defaults to `{1, byte_offset}`
* `:context` - the initial context value. It will be converted to a map
"""
@spec language_tag(binary, keyword) ::
{:ok, [term], rest, context, line, byte_offset}
| {:error, reason, rest, context, line, byte_offset}
when line: {pos_integer, byte_offset},
byte_offset: pos_integer,
rest: binary,
reason: String.t(),
context: map()
def language_tag(binary, opts \\ []) when is_binary(binary) do
context = Map.new(Keyword.get(opts, :context, []))
byte_offset = Keyword.get(opts, :byte_offset, 0)
line =
case(Keyword.get(opts, :line, 1)) do
{_, _} = line ->
line
line ->
{line, byte_offset}
end
case(language_tag__0(binary, [], [], context, line, byte_offset)) do
{:ok, acc, rest, context, line, offset} ->
{:ok, :lists.reverse(acc), rest, context, line, offset}
{:error, _, _, _, _, _} = error ->
error
end
end
defp language_tag__0(rest, acc, stack, context, line, offset) do
language_tag__39(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__2(rest, acc, stack, context, line, offset) do
language_tag__3(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__3(rest, acc, stack, context, line, offset) do
language_tag__10(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__5(rest, acc, stack, context, line, offset) do
language_tag__6(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__6(
<<"art-lojban", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["art-lojban"] ++ acc, stack, context, comb__line, comb__offset + 10)
end
defp language_tag__6(
<<"cel-gaulish", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["cel-gaulish"] ++ acc, stack, context, comb__line, comb__offset + 11)
end
defp language_tag__6(<<"no-bok", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__7(rest, ["no-bok"] ++ acc, stack, context, comb__line, comb__offset + 6)
end
defp language_tag__6(<<"no-nyn", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__7(rest, ["no-nyn"] ++ acc, stack, context, comb__line, comb__offset + 6)
end
defp language_tag__6(
<<"zh-guoyu", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["zh-guoyu"] ++ acc, stack, context, comb__line, comb__offset + 8)
end
defp language_tag__6(
<<"zh-hakka", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["zh-hakka"] ++ acc, stack, context, comb__line, comb__offset + 8)
end
defp language_tag__6(<<"zh-min", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__7(rest, ["zh-min"] ++ acc, stack, context, comb__line, comb__offset + 6)
end
defp language_tag__6(
<<"zh-min-nan", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["zh-min-nan"] ++ acc, stack, context, comb__line, comb__offset + 10)
end
defp language_tag__6(
<<"zh-xiang", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__7(rest, ["zh-xiang"] ++ acc, stack, context, comb__line, comb__offset + 8)
end
defp language_tag__6(rest, _acc, _stack, context, line, offset) do
{:error,
"expected one of the regular language tags in BCP-47 while processing a grandfathered language tag inside a BCP47 language tag",
rest, context, line, offset}
end
defp language_tag__7(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__8(
rest,
[
regular:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__8(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__4(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__9(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__5(rest, [], stack, context, line, offset)
end
defp language_tag__10(rest, acc, stack, context, line, offset) do
language_tag__11(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__11(
<<"en-GB-oed", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["en-GB-oed"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(<<"i-ami", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-ami"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(<<"i-bnn", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-bnn"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(
<<"i-default", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["i-default"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(
<<"i-enochian", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["i-enochian"] ++ acc, stack, context, comb__line, comb__offset + 10)
end
defp language_tag__11(<<"i-hak", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-hak"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(
<<"i-klingon", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["i-klingon"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(<<"i-lux", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-lux"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(
<<"i-mingo", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["i-mingo"] ++ acc, stack, context, comb__line, comb__offset + 7)
end
defp language_tag__11(
<<"i-navajo", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["i-navajo"] ++ acc, stack, context, comb__line, comb__offset + 8)
end
defp language_tag__11(<<"i-pwn", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-pwn"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(<<"i-tao", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-tao"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(<<"i-tay", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-tay"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(<<"i-tsu", rest::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__12(rest, ["i-tsu"] ++ acc, stack, context, comb__line, comb__offset + 5)
end
defp language_tag__11(
<<"sgn-BE-FR", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["sgn-BE-FR"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(
<<"sgn-BE-NL", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["sgn-BE-NL"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(
<<"sgn-CH-DE", rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
) do
language_tag__12(rest, ["sgn-CH-DE"] ++ acc, stack, context, comb__line, comb__offset + 9)
end
defp language_tag__11(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__9(rest, acc, stack, context, line, offset)
end
defp language_tag__12(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__13(
rest,
[
irregular:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__13(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__4(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__4(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__14(
rest,
[grandfathered: :lists.reverse(user_acc)] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__14(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__1(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__15(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__2(rest, [], stack, context, line, offset)
end
defp language_tag__16(rest, acc, stack, context, line, offset) do
language_tag__17(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__17(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 === 120 or x0 === 88) and x1 === 45 do
language_tag__18(rest, [] ++ acc, stack, context, comb__line, comb__offset + 2)
end
defp language_tag__17(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__15(rest, acc, stack, context, line, offset)
end
defp language_tag__18(rest, acc, stack, context, line, offset) do
language_tag__19(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__19(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__20(rest, [<<x0::integer>>] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__19(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__15(rest, acc, stack, context, line, offset)
end
defp language_tag__20(rest, acc, stack, context, line, offset) do
language_tag__22(rest, acc, [7 | stack], context, line, offset)
end
defp language_tag__22(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__23(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__22(rest, acc, stack, context, line, offset) do
language_tag__21(rest, acc, stack, context, line, offset)
end
defp language_tag__21(rest, acc, [_ | stack], context, line, offset) do
language_tag__24(rest, acc, stack, context, line, offset)
end
defp language_tag__23(rest, acc, [1 | stack], context, line, offset) do
language_tag__24(rest, acc, stack, context, line, offset)
end
defp language_tag__23(rest, acc, [count | stack], context, line, offset) do
language_tag__22(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__24(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__25(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__25(rest, acc, stack, context, line, offset) do
language_tag__27(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__27(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__28(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__27(rest, acc, stack, context, line, offset) do
language_tag__26(rest, acc, stack, context, line, offset)
end
defp language_tag__28(rest, acc, stack, context, line, offset) do
language_tag__29(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__29(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__30(rest, [<<x0::integer>>] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__29(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__26(rest, acc, stack, context, line, offset)
end
defp language_tag__30(rest, acc, stack, context, line, offset) do
language_tag__32(rest, acc, [7 | stack], context, line, offset)
end
defp language_tag__32(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__33(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__32(rest, acc, stack, context, line, offset) do
language_tag__31(rest, acc, stack, context, line, offset)
end
defp language_tag__31(rest, acc, [_ | stack], context, line, offset) do
language_tag__34(rest, acc, stack, context, line, offset)
end
defp language_tag__33(rest, acc, [1 | stack], context, line, offset) do
language_tag__34(rest, acc, stack, context, line, offset)
end
defp language_tag__33(rest, acc, [count | stack], context, line, offset) do
language_tag__32(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__34(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__35(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__26(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__36(rest, acc, stack, context, line, offset)
end
defp language_tag__35(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__27(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__36(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__37(
rest,
[private_use: :lists.reverse(user_acc)] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__37(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__1(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__38(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__16(rest, [], stack, context, line, offset)
end
defp language_tag__39(rest, acc, stack, context, line, offset) do
language_tag__40(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__40(rest, acc, stack, context, line, offset) do
language_tag__41(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__41(rest, acc, stack, context, line, offset) do
language_tag__42(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__42(rest, acc, stack, context, line, offset) do
language_tag__180(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__44(rest, acc, stack, context, line, offset) do
language_tag__45(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__45(rest, acc, stack, context, line, offset) do
language_tag__46(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__46(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) do
language_tag__47(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__46(rest, _acc, stack, context, line, offset) do
[_, _, _, _, _, _, acc | stack] = stack
language_tag__38(rest, acc, stack, context, line, offset)
end
defp language_tag__47(rest, acc, stack, context, line, offset) do
language_tag__49(rest, acc, [1 | stack], context, line, offset)
end
defp language_tag__49(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) do
language_tag__50(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__49(rest, acc, stack, context, line, offset) do
language_tag__48(rest, acc, stack, context, line, offset)
end
defp language_tag__48(rest, acc, [_ | stack], context, line, offset) do
language_tag__51(rest, acc, stack, context, line, offset)
end
defp language_tag__50(rest, acc, [1 | stack], context, line, offset) do
language_tag__51(rest, acc, stack, context, line, offset)
end
defp language_tag__50(rest, acc, [count | stack], context, line, offset) do
language_tag__49(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__51(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__52(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__52(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__53(
rest,
[
language:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__53(rest, acc, stack, context, line, offset) do
language_tag__57(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__55(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__54(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__56(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__55(rest, [], stack, context, line, offset)
end
defp language_tag__57(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__58(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__57(rest, acc, stack, context, line, offset) do
language_tag__56(rest, acc, stack, context, line, offset)
end
defp language_tag__58(rest, acc, stack, context, line, offset) do
language_tag__59(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__59(rest, acc, stack, context, line, offset) do
language_tag__61(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__61(rest, acc, stack, context, line, offset) do
language_tag__66(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__63(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__64(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__63(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__60(rest, acc, stack, context, line, offset)
end
defp language_tag__64(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__62(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__65(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__63(rest, [], stack, context, line, offset)
end
defp language_tag__66(rest, acc, stack, context, line, offset) do
language_tag__67(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__67(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__68(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__67(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__65(rest, acc, stack, context, line, offset)
end
defp language_tag__68(rest, acc, stack, context, line, offset) do
language_tag__70(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__70(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__71(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__70(rest, acc, stack, context, line, offset) do
language_tag__69(rest, acc, stack, context, line, offset)
end
defp language_tag__69(rest, acc, [_ | stack], context, line, offset) do
language_tag__72(rest, acc, stack, context, line, offset)
end
defp language_tag__71(rest, acc, [1 | stack], context, line, offset) do
language_tag__72(rest, acc, stack, context, line, offset)
end
defp language_tag__71(rest, acc, [count | stack], context, line, offset) do
language_tag__70(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__72(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__73(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__73(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__62(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__62(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__74(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__74(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__56(rest, acc, stack, context, line, offset)
end
defp language_tag__60(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__75(rest, acc, stack, context, line, offset)
end
defp language_tag__75(rest, acc, stack, context, line, offset) do
language_tag__155(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__77(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) do
language_tag__78(
rest,
[language_subtags: [<<x0::integer, x1::integer, x2::integer>>]] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__77(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__56(rest, acc, stack, context, line, offset)
end
defp language_tag__78(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__79(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__77(rest, [], stack, context, line, offset)
end
defp language_tag__80(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) do
language_tag__81(
rest,
[<<x4::integer, x5::integer, x6::integer>>, <<x0::integer, x1::integer, x2::integer>>] ++
acc,
stack,
context,
comb__line,
comb__offset + 7
)
end
defp language_tag__80(rest, acc, stack, context, line, offset) do
language_tag__79(rest, acc, stack, context, line, offset)
end
defp language_tag__81(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__82(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__80(rest, [], stack, context, line, offset)
end
defp language_tag__83(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, x8::integer, x9::integer, x10::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 and
((x8 >= 97 and x8 <= 122) or (x8 >= 65 and x8 <= 90)) and
((x9 >= 97 and x9 <= 122) or (x9 >= 65 and x9 <= 90)) and
((x10 >= 97 and x10 <= 122) or (x10 >= 65 and x10 <= 90)) do
language_tag__84(
rest,
[
<<x8::integer, x9::integer, x10::integer>>,
<<x4::integer, x5::integer, x6::integer>>,
<<x0::integer, x1::integer, x2::integer>>
] ++ acc,
stack,
context,
comb__line,
comb__offset + 11
)
end
defp language_tag__83(rest, acc, stack, context, line, offset) do
language_tag__82(rest, acc, stack, context, line, offset)
end
defp language_tag__84(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__85(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__83(rest, [], stack, context, line, offset)
end
defp language_tag__86(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 do
language_tag__87(
rest,
[language_subtags: [<<x0::integer, x1::integer, x2::integer>>]] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__86(rest, acc, stack, context, line, offset) do
language_tag__85(rest, acc, stack, context, line, offset)
end
defp language_tag__87(rest, acc, stack, context, line, offset) do
language_tag__88(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__88(rest, acc, stack, context, line, offset) do
language_tag__89(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__89(rest, acc, stack, context, line, offset) do
language_tag__91(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__91(rest, acc, stack, context, line, offset) do
language_tag__96(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__93(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__94(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__93(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__90(rest, acc, stack, context, line, offset)
end
defp language_tag__94(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__92(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__95(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__93(rest, [], stack, context, line, offset)
end
defp language_tag__96(rest, acc, stack, context, line, offset) do
language_tag__97(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__97(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__98(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__97(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__95(rest, acc, stack, context, line, offset)
end
defp language_tag__98(rest, acc, stack, context, line, offset) do
language_tag__100(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__100(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__101(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__100(rest, acc, stack, context, line, offset) do
language_tag__99(rest, acc, stack, context, line, offset)
end
defp language_tag__99(rest, acc, [_ | stack], context, line, offset) do
language_tag__102(rest, acc, stack, context, line, offset)
end
defp language_tag__101(rest, acc, [1 | stack], context, line, offset) do
language_tag__102(rest, acc, stack, context, line, offset)
end
defp language_tag__101(rest, acc, [count | stack], context, line, offset) do
language_tag__100(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__102(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__103(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__103(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__92(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__92(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__104(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__104(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__85(rest, acc, stack, context, line, offset)
end
defp language_tag__90(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__105(rest, acc, stack, context, line, offset)
end
defp language_tag__105(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__106(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__105(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__85(rest, acc, stack, context, line, offset)
end
defp language_tag__106(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__107(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__107(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__108(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__86(rest, [], stack, context, line, offset)
end
defp language_tag__109(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 do
language_tag__110(
rest,
[
language_subtags: [
<<x0::integer, x1::integer, x2::integer>>,
<<x4::integer, x5::integer, x6::integer>>
]
] ++ acc,
stack,
context,
comb__line,
comb__offset + 8
)
end
defp language_tag__109(rest, acc, stack, context, line, offset) do
language_tag__108(rest, acc, stack, context, line, offset)
end
defp language_tag__110(rest, acc, stack, context, line, offset) do
language_tag__111(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__111(rest, acc, stack, context, line, offset) do
language_tag__112(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__112(rest, acc, stack, context, line, offset) do
language_tag__114(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__114(rest, acc, stack, context, line, offset) do
language_tag__119(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__116(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__117(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__116(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__113(rest, acc, stack, context, line, offset)
end
defp language_tag__117(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__115(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__118(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__116(rest, [], stack, context, line, offset)
end
defp language_tag__119(rest, acc, stack, context, line, offset) do
language_tag__120(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__120(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__121(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__120(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__118(rest, acc, stack, context, line, offset)
end
defp language_tag__121(rest, acc, stack, context, line, offset) do
language_tag__123(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__123(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__124(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__123(rest, acc, stack, context, line, offset) do
language_tag__122(rest, acc, stack, context, line, offset)
end
defp language_tag__122(rest, acc, [_ | stack], context, line, offset) do
language_tag__125(rest, acc, stack, context, line, offset)
end
defp language_tag__124(rest, acc, [1 | stack], context, line, offset) do
language_tag__125(rest, acc, stack, context, line, offset)
end
defp language_tag__124(rest, acc, [count | stack], context, line, offset) do
language_tag__123(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__125(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__126(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__126(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__115(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__115(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__127(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__127(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__108(rest, acc, stack, context, line, offset)
end
defp language_tag__113(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__128(rest, acc, stack, context, line, offset)
end
defp language_tag__128(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__129(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__128(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__108(rest, acc, stack, context, line, offset)
end
defp language_tag__129(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__130(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__130(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__131(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__109(rest, [], stack, context, line, offset)
end
defp language_tag__132(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, x8::integer, x9::integer, x10::integer, x11::integer,
rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 and
((x8 >= 97 and x8 <= 122) or (x8 >= 65 and x8 <= 90)) and
((x9 >= 97 and x9 <= 122) or (x9 >= 65 and x9 <= 90)) and
((x10 >= 97 and x10 <= 122) or (x10 >= 65 and x10 <= 90)) and x11 === 45 do
language_tag__133(
rest,
[
language_subtags: [
<<x0::integer, x1::integer, x2::integer>>,
<<x4::integer, x5::integer, x6::integer>>,
<<x8::integer, x9::integer, x10::integer>>
]
] ++ acc,
stack,
context,
comb__line,
comb__offset + 12
)
end
defp language_tag__132(rest, acc, stack, context, line, offset) do
language_tag__131(rest, acc, stack, context, line, offset)
end
defp language_tag__133(rest, acc, stack, context, line, offset) do
language_tag__134(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__134(rest, acc, stack, context, line, offset) do
language_tag__135(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__135(rest, acc, stack, context, line, offset) do
language_tag__137(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__137(rest, acc, stack, context, line, offset) do
language_tag__142(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__139(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__140(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__139(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__136(rest, acc, stack, context, line, offset)
end
defp language_tag__140(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__138(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__141(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__139(rest, [], stack, context, line, offset)
end
defp language_tag__142(rest, acc, stack, context, line, offset) do
language_tag__143(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__143(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__144(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__143(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__141(rest, acc, stack, context, line, offset)
end
defp language_tag__144(rest, acc, stack, context, line, offset) do
language_tag__146(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__146(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__147(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__146(rest, acc, stack, context, line, offset) do
language_tag__145(rest, acc, stack, context, line, offset)
end
defp language_tag__145(rest, acc, [_ | stack], context, line, offset) do
language_tag__148(rest, acc, stack, context, line, offset)
end
defp language_tag__147(rest, acc, [1 | stack], context, line, offset) do
language_tag__148(rest, acc, stack, context, line, offset)
end
defp language_tag__147(rest, acc, [count | stack], context, line, offset) do
language_tag__146(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__148(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__149(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__149(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__138(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__138(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__150(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__150(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__131(rest, acc, stack, context, line, offset)
end
defp language_tag__136(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__151(rest, acc, stack, context, line, offset)
end
defp language_tag__151(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__152(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__151(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__131(rest, acc, stack, context, line, offset)
end
defp language_tag__152(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__153(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__153(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__154(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__132(rest, [], stack, context, line, offset)
end
defp language_tag__155(rest, acc, stack, context, line, offset) do
language_tag__156(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__156(rest, acc, stack, context, line, offset) do
language_tag__157(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__157(rest, acc, stack, context, line, offset) do
language_tag__159(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__159(rest, acc, stack, context, line, offset) do
language_tag__164(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__161(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__162(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__161(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__158(rest, acc, stack, context, line, offset)
end
defp language_tag__162(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__160(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__163(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__161(rest, [], stack, context, line, offset)
end
defp language_tag__164(rest, acc, stack, context, line, offset) do
language_tag__165(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__165(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__166(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__165(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__163(rest, acc, stack, context, line, offset)
end
defp language_tag__166(rest, acc, stack, context, line, offset) do
language_tag__168(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__168(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__169(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__168(rest, acc, stack, context, line, offset) do
language_tag__167(rest, acc, stack, context, line, offset)
end
defp language_tag__167(rest, acc, [_ | stack], context, line, offset) do
language_tag__170(rest, acc, stack, context, line, offset)
end
defp language_tag__169(rest, acc, [1 | stack], context, line, offset) do
language_tag__170(rest, acc, stack, context, line, offset)
end
defp language_tag__169(rest, acc, [count | stack], context, line, offset) do
language_tag__168(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__170(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__171(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__171(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__160(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__160(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__172(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__172(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__154(rest, acc, stack, context, line, offset)
end
defp language_tag__158(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__173(rest, acc, stack, context, line, offset)
end
defp language_tag__173(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__174(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__173(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__154(rest, acc, stack, context, line, offset)
end
defp language_tag__174(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__175(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__175(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__76(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__76(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__54(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__54(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__43(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__176(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__44(rest, [], stack, context, line, offset)
end
defp language_tag__177(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__178(
rest,
[language: <<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__177(rest, acc, stack, context, line, offset) do
language_tag__176(rest, acc, stack, context, line, offset)
end
defp language_tag__178(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__43(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__179(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__177(rest, [], stack, context, line, offset)
end
defp language_tag__180(rest, acc, stack, context, line, offset) do
language_tag__181(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__181(rest, acc, stack, context, line, offset) do
language_tag__182(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__182(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) do
language_tag__183(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__182(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__179(rest, acc, stack, context, line, offset)
end
defp language_tag__183(rest, acc, stack, context, line, offset) do
language_tag__185(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__185(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) do
language_tag__186(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__185(rest, acc, stack, context, line, offset) do
language_tag__184(rest, acc, stack, context, line, offset)
end
defp language_tag__184(rest, acc, [_ | stack], context, line, offset) do
language_tag__187(rest, acc, stack, context, line, offset)
end
defp language_tag__186(rest, acc, [1 | stack], context, line, offset) do
language_tag__187(rest, acc, stack, context, line, offset)
end
defp language_tag__186(rest, acc, [count | stack], context, line, offset) do
language_tag__185(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__187(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__188(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__188(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__189(
rest,
[
language:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__189(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__43(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__43(rest, acc, stack, context, line, offset) do
language_tag__193(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__191(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__190(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__192(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__191(rest, [], stack, context, line, offset)
end
defp language_tag__193(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__194(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__193(rest, acc, stack, context, line, offset) do
language_tag__192(rest, acc, stack, context, line, offset)
end
defp language_tag__194(rest, acc, stack, context, line, offset) do
language_tag__195(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__195(rest, acc, stack, context, line, offset) do
language_tag__196(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__196(rest, acc, stack, context, line, offset) do
language_tag__198(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__198(rest, acc, stack, context, line, offset) do
language_tag__203(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__200(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__201(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__200(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__197(rest, acc, stack, context, line, offset)
end
defp language_tag__201(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__199(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__202(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__200(rest, [], stack, context, line, offset)
end
defp language_tag__203(rest, acc, stack, context, line, offset) do
language_tag__204(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__204(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__205(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__204(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__202(rest, acc, stack, context, line, offset)
end
defp language_tag__205(rest, acc, stack, context, line, offset) do
language_tag__207(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__207(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__208(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__207(rest, acc, stack, context, line, offset) do
language_tag__206(rest, acc, stack, context, line, offset)
end
defp language_tag__206(rest, acc, [_ | stack], context, line, offset) do
language_tag__209(rest, acc, stack, context, line, offset)
end
defp language_tag__208(rest, acc, [1 | stack], context, line, offset) do
language_tag__209(rest, acc, stack, context, line, offset)
end
defp language_tag__208(rest, acc, [count | stack], context, line, offset) do
language_tag__207(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__209(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__210(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__210(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__199(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__199(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__211(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__211(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__192(rest, acc, stack, context, line, offset)
end
defp language_tag__197(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__212(rest, acc, stack, context, line, offset)
end
defp language_tag__212(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__213(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__212(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__192(rest, acc, stack, context, line, offset)
end
defp language_tag__213(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__214(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__214(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__190(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__190(rest, acc, stack, context, line, offset) do
language_tag__218(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__216(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__215(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__217(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__216(rest, [], stack, context, line, offset)
end
defp language_tag__218(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__219(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__218(rest, acc, stack, context, line, offset) do
language_tag__217(rest, acc, stack, context, line, offset)
end
defp language_tag__219(rest, acc, stack, context, line, offset) do
language_tag__220(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__220(rest, acc, stack, context, line, offset) do
language_tag__221(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__221(rest, acc, stack, context, line, offset) do
language_tag__223(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__223(rest, acc, stack, context, line, offset) do
language_tag__228(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__225(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__226(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__225(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__222(rest, acc, stack, context, line, offset)
end
defp language_tag__226(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__224(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__227(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__225(rest, [], stack, context, line, offset)
end
defp language_tag__228(rest, acc, stack, context, line, offset) do
language_tag__229(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__229(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__230(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__229(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__227(rest, acc, stack, context, line, offset)
end
defp language_tag__230(rest, acc, stack, context, line, offset) do
language_tag__232(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__232(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__233(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__232(rest, acc, stack, context, line, offset) do
language_tag__231(rest, acc, stack, context, line, offset)
end
defp language_tag__231(rest, acc, [_ | stack], context, line, offset) do
language_tag__234(rest, acc, stack, context, line, offset)
end
defp language_tag__233(rest, acc, [1 | stack], context, line, offset) do
language_tag__234(rest, acc, stack, context, line, offset)
end
defp language_tag__233(rest, acc, [count | stack], context, line, offset) do
language_tag__232(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__234(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__235(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__235(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__224(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__224(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__236(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__236(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__217(rest, acc, stack, context, line, offset)
end
defp language_tag__222(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__237(rest, acc, stack, context, line, offset)
end
defp language_tag__237(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) do
language_tag__238(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__237(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and (x1 >= 48 and x1 <= 57) and (x2 >= 48 and x2 <= 57) do
language_tag__238(
rest,
[x2 - 48 + (x1 - 48) * 10 + (x0 - 48) * 100] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__237(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__217(rest, acc, stack, context, line, offset)
end
defp language_tag__238(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__239(
rest,
[
territory:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__239(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__215(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__215(rest, acc, stack, context, line, offset) do
language_tag__241(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__241(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__242(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__241(rest, acc, stack, context, line, offset) do
language_tag__240(rest, acc, stack, context, line, offset)
end
defp language_tag__242(rest, acc, stack, context, line, offset) do
language_tag__243(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__243(rest, acc, stack, context, line, offset) do
language_tag__248(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__245(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__246(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__245(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__240(rest, acc, stack, context, line, offset)
end
defp language_tag__246(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__244(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__247(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__245(rest, [], stack, context, line, offset)
end
defp language_tag__248(rest, acc, stack, context, line, offset) do
language_tag__249(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__249(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__250(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__249(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__247(rest, acc, stack, context, line, offset)
end
defp language_tag__250(rest, acc, stack, context, line, offset) do
language_tag__252(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__252(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__253(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__252(rest, acc, stack, context, line, offset) do
language_tag__251(rest, acc, stack, context, line, offset)
end
defp language_tag__251(rest, acc, [_ | stack], context, line, offset) do
language_tag__254(rest, acc, stack, context, line, offset)
end
defp language_tag__253(rest, acc, [1 | stack], context, line, offset) do
language_tag__254(rest, acc, stack, context, line, offset)
end
defp language_tag__253(rest, acc, [count | stack], context, line, offset) do
language_tag__252(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__254(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__255(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__255(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__244(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__244(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__256(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__240(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__257(rest, acc, stack, context, line, offset)
end
defp language_tag__256(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__241(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__257(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__258(
rest,
[collapse_variants(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__258(rest, acc, stack, context, line, offset) do
language_tag__260(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__260(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__261(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__260(rest, acc, stack, context, line, offset) do
language_tag__259(rest, acc, stack, context, line, offset)
end
defp language_tag__261(rest, acc, stack, context, line, offset) do
language_tag__555(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__263(rest, acc, stack, context, line, offset) do
language_tag__264(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__264(rest, acc, stack, context, line, offset) do
language_tag__265(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__265(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 48 and x0 <= 57) or (x0 >= 97 and x0 <= 115) or (x0 >= 65 and x0 <= 83) or
(x0 >= 118 and x0 <= 119) or (x0 >= 86 and x0 <= 87) or (x0 >= 121 and x0 <= 122) or
(x0 >= 89 and x0 <= 90) do
language_tag__266(
rest,
[type: <<x0::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 1
)
end
defp language_tag__265(rest, _acc, stack, context, line, offset) do
[_, _, _, acc | stack] = stack
language_tag__259(rest, acc, stack, context, line, offset)
end
defp language_tag__266(rest, acc, stack, context, line, offset) do
language_tag__267(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__267(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__268(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__267(rest, _acc, stack, context, line, offset) do
[_, _, _, _, acc | stack] = stack
language_tag__259(rest, acc, stack, context, line, offset)
end
defp language_tag__268(rest, acc, stack, context, line, offset) do
language_tag__269(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__269(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) do
language_tag__270(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__269(rest, _acc, stack, context, line, offset) do
[_, _, _, _, _, acc | stack] = stack
language_tag__259(rest, acc, stack, context, line, offset)
end
defp language_tag__270(rest, acc, stack, context, line, offset) do
language_tag__272(rest, acc, [6 | stack], context, line, offset)
end
defp language_tag__272(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__273(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__272(rest, acc, stack, context, line, offset) do
language_tag__271(rest, acc, stack, context, line, offset)
end
defp language_tag__271(rest, acc, [_ | stack], context, line, offset) do
language_tag__274(rest, acc, stack, context, line, offset)
end
defp language_tag__273(rest, acc, [1 | stack], context, line, offset) do
language_tag__274(rest, acc, stack, context, line, offset)
end
defp language_tag__273(rest, acc, [count | stack], context, line, offset) do
language_tag__272(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__274(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__275(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__275(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__276(
rest,
[
attribute:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__276(rest, acc, stack, context, line, offset) do
language_tag__278(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__278(rest, acc, stack, context, line, offset) do
language_tag__279(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__279(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__280(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__279(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__277(rest, acc, stack, context, line, offset)
end
defp language_tag__280(rest, acc, stack, context, line, offset) do
language_tag__281(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__281(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) do
language_tag__282(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__281(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__277(rest, acc, stack, context, line, offset)
end
defp language_tag__282(rest, acc, stack, context, line, offset) do
language_tag__284(rest, acc, [6 | stack], context, line, offset)
end
defp language_tag__284(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__285(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__284(rest, acc, stack, context, line, offset) do
language_tag__283(rest, acc, stack, context, line, offset)
end
defp language_tag__283(rest, acc, [_ | stack], context, line, offset) do
language_tag__286(rest, acc, stack, context, line, offset)
end
defp language_tag__285(rest, acc, [1 | stack], context, line, offset) do
language_tag__286(rest, acc, stack, context, line, offset)
end
defp language_tag__285(rest, acc, [count | stack], context, line, offset) do
language_tag__284(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__286(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__287(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__287(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__288(
rest,
[
attribute:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__277(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__289(rest, acc, stack, context, line, offset)
end
defp language_tag__288(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__278(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__289(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__290(
rest,
[collapse_extension(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__290(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__291(
rest,
[
extension:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__291(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__262(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__292(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__263(rest, [], stack, context, line, offset)
end
defp language_tag__293(rest, acc, stack, context, line, offset) do
language_tag__294(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__294(rest, acc, stack, context, line, offset) do
language_tag__295(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__295(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 116 or x0 === 84 do
language_tag__296(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__295(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__292(rest, acc, stack, context, line, offset)
end
defp language_tag__296(rest, acc, stack, context, line, offset) do
language_tag__300(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__298(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__297(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__299(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__298(rest, [], stack, context, line, offset)
end
defp language_tag__300(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__301(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__300(rest, acc, stack, context, line, offset) do
language_tag__299(rest, acc, stack, context, line, offset)
end
defp language_tag__301(rest, acc, stack, context, line, offset) do
language_tag__302(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__302(rest, acc, stack, context, line, offset) do
language_tag__440(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__304(rest, acc, stack, context, line, offset) do
language_tag__305(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__305(rest, acc, stack, context, line, offset) do
language_tag__306(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__306(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) do
language_tag__307(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__306(rest, _acc, stack, context, line, offset) do
[_, _, _, _, acc | stack] = stack
language_tag__299(rest, acc, stack, context, line, offset)
end
defp language_tag__307(rest, acc, stack, context, line, offset) do
language_tag__309(rest, acc, [1 | stack], context, line, offset)
end
defp language_tag__309(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) do
language_tag__310(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__309(rest, acc, stack, context, line, offset) do
language_tag__308(rest, acc, stack, context, line, offset)
end
defp language_tag__308(rest, acc, [_ | stack], context, line, offset) do
language_tag__311(rest, acc, stack, context, line, offset)
end
defp language_tag__310(rest, acc, [1 | stack], context, line, offset) do
language_tag__311(rest, acc, stack, context, line, offset)
end
defp language_tag__310(rest, acc, [count | stack], context, line, offset) do
language_tag__309(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__311(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__312(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__312(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__313(
rest,
[
language:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__313(rest, acc, stack, context, line, offset) do
language_tag__317(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__315(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__314(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__316(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__315(rest, [], stack, context, line, offset)
end
defp language_tag__317(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__318(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__317(rest, acc, stack, context, line, offset) do
language_tag__316(rest, acc, stack, context, line, offset)
end
defp language_tag__318(rest, acc, stack, context, line, offset) do
language_tag__319(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__319(rest, acc, stack, context, line, offset) do
language_tag__321(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__321(rest, acc, stack, context, line, offset) do
language_tag__326(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__323(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__324(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__323(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__320(rest, acc, stack, context, line, offset)
end
defp language_tag__324(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__322(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__325(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__323(rest, [], stack, context, line, offset)
end
defp language_tag__326(rest, acc, stack, context, line, offset) do
language_tag__327(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__327(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__328(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__327(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__325(rest, acc, stack, context, line, offset)
end
defp language_tag__328(rest, acc, stack, context, line, offset) do
language_tag__330(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__330(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__331(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__330(rest, acc, stack, context, line, offset) do
language_tag__329(rest, acc, stack, context, line, offset)
end
defp language_tag__329(rest, acc, [_ | stack], context, line, offset) do
language_tag__332(rest, acc, stack, context, line, offset)
end
defp language_tag__331(rest, acc, [1 | stack], context, line, offset) do
language_tag__332(rest, acc, stack, context, line, offset)
end
defp language_tag__331(rest, acc, [count | stack], context, line, offset) do
language_tag__330(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__332(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__333(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__333(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__322(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__322(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__334(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__334(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__316(rest, acc, stack, context, line, offset)
end
defp language_tag__320(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__335(rest, acc, stack, context, line, offset)
end
defp language_tag__335(rest, acc, stack, context, line, offset) do
language_tag__415(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__337(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) do
language_tag__338(
rest,
[language_subtags: [<<x0::integer, x1::integer, x2::integer>>]] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__337(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__316(rest, acc, stack, context, line, offset)
end
defp language_tag__338(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__339(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__337(rest, [], stack, context, line, offset)
end
defp language_tag__340(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) do
language_tag__341(
rest,
[<<x4::integer, x5::integer, x6::integer>>, <<x0::integer, x1::integer, x2::integer>>] ++
acc,
stack,
context,
comb__line,
comb__offset + 7
)
end
defp language_tag__340(rest, acc, stack, context, line, offset) do
language_tag__339(rest, acc, stack, context, line, offset)
end
defp language_tag__341(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__342(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__340(rest, [], stack, context, line, offset)
end
defp language_tag__343(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, x8::integer, x9::integer, x10::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 and
((x8 >= 97 and x8 <= 122) or (x8 >= 65 and x8 <= 90)) and
((x9 >= 97 and x9 <= 122) or (x9 >= 65 and x9 <= 90)) and
((x10 >= 97 and x10 <= 122) or (x10 >= 65 and x10 <= 90)) do
language_tag__344(
rest,
[
<<x8::integer, x9::integer, x10::integer>>,
<<x4::integer, x5::integer, x6::integer>>,
<<x0::integer, x1::integer, x2::integer>>
] ++ acc,
stack,
context,
comb__line,
comb__offset + 11
)
end
defp language_tag__343(rest, acc, stack, context, line, offset) do
language_tag__342(rest, acc, stack, context, line, offset)
end
defp language_tag__344(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__345(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__343(rest, [], stack, context, line, offset)
end
defp language_tag__346(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 do
language_tag__347(
rest,
[language_subtags: [<<x0::integer, x1::integer, x2::integer>>]] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__346(rest, acc, stack, context, line, offset) do
language_tag__345(rest, acc, stack, context, line, offset)
end
defp language_tag__347(rest, acc, stack, context, line, offset) do
language_tag__348(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__348(rest, acc, stack, context, line, offset) do
language_tag__349(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__349(rest, acc, stack, context, line, offset) do
language_tag__351(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__351(rest, acc, stack, context, line, offset) do
language_tag__356(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__353(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__354(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__353(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__350(rest, acc, stack, context, line, offset)
end
defp language_tag__354(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__352(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__355(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__353(rest, [], stack, context, line, offset)
end
defp language_tag__356(rest, acc, stack, context, line, offset) do
language_tag__357(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__357(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__358(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__357(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__355(rest, acc, stack, context, line, offset)
end
defp language_tag__358(rest, acc, stack, context, line, offset) do
language_tag__360(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__360(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__361(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__360(rest, acc, stack, context, line, offset) do
language_tag__359(rest, acc, stack, context, line, offset)
end
defp language_tag__359(rest, acc, [_ | stack], context, line, offset) do
language_tag__362(rest, acc, stack, context, line, offset)
end
defp language_tag__361(rest, acc, [1 | stack], context, line, offset) do
language_tag__362(rest, acc, stack, context, line, offset)
end
defp language_tag__361(rest, acc, [count | stack], context, line, offset) do
language_tag__360(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__362(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__363(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__363(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__352(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__352(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__364(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__364(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__345(rest, acc, stack, context, line, offset)
end
defp language_tag__350(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__365(rest, acc, stack, context, line, offset)
end
defp language_tag__365(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__366(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__365(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__345(rest, acc, stack, context, line, offset)
end
defp language_tag__366(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__367(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__367(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__368(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__346(rest, [], stack, context, line, offset)
end
defp language_tag__369(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 do
language_tag__370(
rest,
[
language_subtags: [
<<x0::integer, x1::integer, x2::integer>>,
<<x4::integer, x5::integer, x6::integer>>
]
] ++ acc,
stack,
context,
comb__line,
comb__offset + 8
)
end
defp language_tag__369(rest, acc, stack, context, line, offset) do
language_tag__368(rest, acc, stack, context, line, offset)
end
defp language_tag__370(rest, acc, stack, context, line, offset) do
language_tag__371(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__371(rest, acc, stack, context, line, offset) do
language_tag__372(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__372(rest, acc, stack, context, line, offset) do
language_tag__374(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__374(rest, acc, stack, context, line, offset) do
language_tag__379(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__376(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__377(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__376(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__373(rest, acc, stack, context, line, offset)
end
defp language_tag__377(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__375(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__378(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__376(rest, [], stack, context, line, offset)
end
defp language_tag__379(rest, acc, stack, context, line, offset) do
language_tag__380(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__380(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__381(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__380(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__378(rest, acc, stack, context, line, offset)
end
defp language_tag__381(rest, acc, stack, context, line, offset) do
language_tag__383(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__383(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__384(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__383(rest, acc, stack, context, line, offset) do
language_tag__382(rest, acc, stack, context, line, offset)
end
defp language_tag__382(rest, acc, [_ | stack], context, line, offset) do
language_tag__385(rest, acc, stack, context, line, offset)
end
defp language_tag__384(rest, acc, [1 | stack], context, line, offset) do
language_tag__385(rest, acc, stack, context, line, offset)
end
defp language_tag__384(rest, acc, [count | stack], context, line, offset) do
language_tag__383(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__385(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__386(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__386(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__375(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__375(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__387(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__387(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__368(rest, acc, stack, context, line, offset)
end
defp language_tag__373(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__388(rest, acc, stack, context, line, offset)
end
defp language_tag__388(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__389(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__388(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__368(rest, acc, stack, context, line, offset)
end
defp language_tag__389(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__390(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__390(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__391(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__369(rest, [], stack, context, line, offset)
end
defp language_tag__392(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, x5::integer,
x6::integer, x7::integer, x8::integer, x9::integer, x10::integer, x11::integer,
rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and x3 === 45 and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) and
((x5 >= 97 and x5 <= 122) or (x5 >= 65 and x5 <= 90)) and
((x6 >= 97 and x6 <= 122) or (x6 >= 65 and x6 <= 90)) and x7 === 45 and
((x8 >= 97 and x8 <= 122) or (x8 >= 65 and x8 <= 90)) and
((x9 >= 97 and x9 <= 122) or (x9 >= 65 and x9 <= 90)) and
((x10 >= 97 and x10 <= 122) or (x10 >= 65 and x10 <= 90)) and x11 === 45 do
language_tag__393(
rest,
[
language_subtags: [
<<x0::integer, x1::integer, x2::integer>>,
<<x4::integer, x5::integer, x6::integer>>,
<<x8::integer, x9::integer, x10::integer>>
]
] ++ acc,
stack,
context,
comb__line,
comb__offset + 12
)
end
defp language_tag__392(rest, acc, stack, context, line, offset) do
language_tag__391(rest, acc, stack, context, line, offset)
end
defp language_tag__393(rest, acc, stack, context, line, offset) do
language_tag__394(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__394(rest, acc, stack, context, line, offset) do
language_tag__395(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__395(rest, acc, stack, context, line, offset) do
language_tag__397(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__397(rest, acc, stack, context, line, offset) do
language_tag__402(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__399(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__400(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__399(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__396(rest, acc, stack, context, line, offset)
end
defp language_tag__400(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__398(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__401(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__399(rest, [], stack, context, line, offset)
end
defp language_tag__402(rest, acc, stack, context, line, offset) do
language_tag__403(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__403(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__404(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__403(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__401(rest, acc, stack, context, line, offset)
end
defp language_tag__404(rest, acc, stack, context, line, offset) do
language_tag__406(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__406(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__407(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__406(rest, acc, stack, context, line, offset) do
language_tag__405(rest, acc, stack, context, line, offset)
end
defp language_tag__405(rest, acc, [_ | stack], context, line, offset) do
language_tag__408(rest, acc, stack, context, line, offset)
end
defp language_tag__407(rest, acc, [1 | stack], context, line, offset) do
language_tag__408(rest, acc, stack, context, line, offset)
end
defp language_tag__407(rest, acc, [count | stack], context, line, offset) do
language_tag__406(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__408(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__409(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__409(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__398(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__398(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__410(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__410(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__391(rest, acc, stack, context, line, offset)
end
defp language_tag__396(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__411(rest, acc, stack, context, line, offset)
end
defp language_tag__411(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__412(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__411(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__391(rest, acc, stack, context, line, offset)
end
defp language_tag__412(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__413(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__413(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__414(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__392(rest, [], stack, context, line, offset)
end
defp language_tag__415(rest, acc, stack, context, line, offset) do
language_tag__416(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__416(rest, acc, stack, context, line, offset) do
language_tag__417(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__417(rest, acc, stack, context, line, offset) do
language_tag__419(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__419(rest, acc, stack, context, line, offset) do
language_tag__424(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__421(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__422(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__421(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__418(rest, acc, stack, context, line, offset)
end
defp language_tag__422(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__420(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__423(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__421(rest, [], stack, context, line, offset)
end
defp language_tag__424(rest, acc, stack, context, line, offset) do
language_tag__425(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__425(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__426(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__425(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__423(rest, acc, stack, context, line, offset)
end
defp language_tag__426(rest, acc, stack, context, line, offset) do
language_tag__428(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__428(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__429(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__428(rest, acc, stack, context, line, offset) do
language_tag__427(rest, acc, stack, context, line, offset)
end
defp language_tag__427(rest, acc, [_ | stack], context, line, offset) do
language_tag__430(rest, acc, stack, context, line, offset)
end
defp language_tag__429(rest, acc, [1 | stack], context, line, offset) do
language_tag__430(rest, acc, stack, context, line, offset)
end
defp language_tag__429(rest, acc, [count | stack], context, line, offset) do
language_tag__428(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__430(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__431(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__431(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__420(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__420(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__432(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__432(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__414(rest, acc, stack, context, line, offset)
end
defp language_tag__418(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__433(rest, acc, stack, context, line, offset)
end
defp language_tag__433(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__434(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__433(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__414(rest, acc, stack, context, line, offset)
end
defp language_tag__434(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__435(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__435(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__336(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__336(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__314(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__314(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__303(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__436(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__304(rest, [], stack, context, line, offset)
end
defp language_tag__437(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__438(
rest,
[language: <<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__437(rest, acc, stack, context, line, offset) do
language_tag__436(rest, acc, stack, context, line, offset)
end
defp language_tag__438(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__303(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__439(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__437(rest, [], stack, context, line, offset)
end
defp language_tag__440(rest, acc, stack, context, line, offset) do
language_tag__441(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__441(rest, acc, stack, context, line, offset) do
language_tag__442(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__442(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90)) do
language_tag__443(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__442(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__439(rest, acc, stack, context, line, offset)
end
defp language_tag__443(rest, acc, stack, context, line, offset) do
language_tag__445(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__445(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) do
language_tag__446(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__445(rest, acc, stack, context, line, offset) do
language_tag__444(rest, acc, stack, context, line, offset)
end
defp language_tag__444(rest, acc, [_ | stack], context, line, offset) do
language_tag__447(rest, acc, stack, context, line, offset)
end
defp language_tag__446(rest, acc, [1 | stack], context, line, offset) do
language_tag__447(rest, acc, stack, context, line, offset)
end
defp language_tag__446(rest, acc, [count | stack], context, line, offset) do
language_tag__445(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__447(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__448(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__448(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__449(
rest,
[
language:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__449(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__303(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__303(rest, acc, stack, context, line, offset) do
language_tag__453(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__451(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__450(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__452(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__451(rest, [], stack, context, line, offset)
end
defp language_tag__453(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__454(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__453(rest, acc, stack, context, line, offset) do
language_tag__452(rest, acc, stack, context, line, offset)
end
defp language_tag__454(rest, acc, stack, context, line, offset) do
language_tag__455(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__455(rest, acc, stack, context, line, offset) do
language_tag__456(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__456(rest, acc, stack, context, line, offset) do
language_tag__458(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__458(rest, acc, stack, context, line, offset) do
language_tag__463(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__460(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__461(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__460(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__457(rest, acc, stack, context, line, offset)
end
defp language_tag__461(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__459(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__462(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__460(rest, [], stack, context, line, offset)
end
defp language_tag__463(rest, acc, stack, context, line, offset) do
language_tag__464(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__464(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__465(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__464(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__462(rest, acc, stack, context, line, offset)
end
defp language_tag__465(rest, acc, stack, context, line, offset) do
language_tag__467(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__467(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__468(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__467(rest, acc, stack, context, line, offset) do
language_tag__466(rest, acc, stack, context, line, offset)
end
defp language_tag__466(rest, acc, [_ | stack], context, line, offset) do
language_tag__469(rest, acc, stack, context, line, offset)
end
defp language_tag__468(rest, acc, [1 | stack], context, line, offset) do
language_tag__469(rest, acc, stack, context, line, offset)
end
defp language_tag__468(rest, acc, [count | stack], context, line, offset) do
language_tag__467(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__469(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__470(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__470(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__459(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__459(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__471(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__471(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__452(rest, acc, stack, context, line, offset)
end
defp language_tag__457(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__472(rest, acc, stack, context, line, offset)
end
defp language_tag__472(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90)) do
language_tag__473(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__472(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__452(rest, acc, stack, context, line, offset)
end
defp language_tag__473(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__474(
rest,
[
script:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__474(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__450(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__450(rest, acc, stack, context, line, offset) do
language_tag__478(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__476(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__475(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__477(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__476(rest, [], stack, context, line, offset)
end
defp language_tag__478(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__479(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__478(rest, acc, stack, context, line, offset) do
language_tag__477(rest, acc, stack, context, line, offset)
end
defp language_tag__479(rest, acc, stack, context, line, offset) do
language_tag__480(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__480(rest, acc, stack, context, line, offset) do
language_tag__481(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__481(rest, acc, stack, context, line, offset) do
language_tag__483(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__483(rest, acc, stack, context, line, offset) do
language_tag__488(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__485(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__486(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__485(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__482(rest, acc, stack, context, line, offset)
end
defp language_tag__486(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__484(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__487(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__485(rest, [], stack, context, line, offset)
end
defp language_tag__488(rest, acc, stack, context, line, offset) do
language_tag__489(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__489(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__490(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__489(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__487(rest, acc, stack, context, line, offset)
end
defp language_tag__490(rest, acc, stack, context, line, offset) do
language_tag__492(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__492(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__493(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__492(rest, acc, stack, context, line, offset) do
language_tag__491(rest, acc, stack, context, line, offset)
end
defp language_tag__491(rest, acc, [_ | stack], context, line, offset) do
language_tag__494(rest, acc, stack, context, line, offset)
end
defp language_tag__493(rest, acc, [1 | stack], context, line, offset) do
language_tag__494(rest, acc, stack, context, line, offset)
end
defp language_tag__493(rest, acc, [count | stack], context, line, offset) do
language_tag__492(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__494(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__495(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__495(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__484(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__484(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__496(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__496(_, _, [{rest, _acc, context, line, offset} | stack], _, _, _) do
[acc | stack] = stack
language_tag__477(rest, acc, stack, context, line, offset)
end
defp language_tag__482(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__497(rest, acc, stack, context, line, offset)
end
defp language_tag__497(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90)) do
language_tag__498(
rest,
[<<x0::integer, x1::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 2
)
end
defp language_tag__497(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and (x1 >= 48 and x1 <= 57) and (x2 >= 48 and x2 <= 57) do
language_tag__498(
rest,
[x2 - 48 + (x1 - 48) * 10 + (x0 - 48) * 100] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__497(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__477(rest, acc, stack, context, line, offset)
end
defp language_tag__498(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__499(
rest,
[
territory:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__499(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__475(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__475(rest, acc, stack, context, line, offset) do
language_tag__501(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__501(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__502(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__501(rest, acc, stack, context, line, offset) do
language_tag__500(rest, acc, stack, context, line, offset)
end
defp language_tag__502(rest, acc, stack, context, line, offset) do
language_tag__503(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__503(rest, acc, stack, context, line, offset) do
language_tag__508(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__505(
<<x0::integer, x1::integer, x2::integer, x3::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 >= 48 and x0 <= 57 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) do
language_tag__506(
rest,
[Enum.join([<<x0::integer>>, <<x1::integer, x2::integer, x3::integer>>])] ++ acc,
stack,
context,
comb__line,
comb__offset + 4
)
end
defp language_tag__505(rest, _acc, stack, context, line, offset) do
[_, _, acc | stack] = stack
language_tag__500(rest, acc, stack, context, line, offset)
end
defp language_tag__506(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__504(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__507(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__505(rest, [], stack, context, line, offset)
end
defp language_tag__508(rest, acc, stack, context, line, offset) do
language_tag__509(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__509(
<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) and
((x3 >= 97 and x3 <= 122) or (x3 >= 65 and x3 <= 90) or (x3 >= 48 and x3 <= 57)) and
((x4 >= 97 and x4 <= 122) or (x4 >= 65 and x4 <= 90) or (x4 >= 48 and x4 <= 57)) do
language_tag__510(
rest,
[<<x0::integer, x1::integer, x2::integer, x3::integer, x4::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 5
)
end
defp language_tag__509(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__507(rest, acc, stack, context, line, offset)
end
defp language_tag__510(rest, acc, stack, context, line, offset) do
language_tag__512(rest, acc, [3 | stack], context, line, offset)
end
defp language_tag__512(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__513(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__512(rest, acc, stack, context, line, offset) do
language_tag__511(rest, acc, stack, context, line, offset)
end
defp language_tag__511(rest, acc, [_ | stack], context, line, offset) do
language_tag__514(rest, acc, stack, context, line, offset)
end
defp language_tag__513(rest, acc, [1 | stack], context, line, offset) do
language_tag__514(rest, acc, stack, context, line, offset)
end
defp language_tag__513(rest, acc, [count | stack], context, line, offset) do
language_tag__512(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__514(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__515(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__515(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__504(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__504(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__516(
rest,
[
language_variant:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__500(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__517(rest, acc, stack, context, line, offset)
end
defp language_tag__516(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__501(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__517(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__518(
rest,
[collapse_variants(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__518(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__297(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__297(rest, acc, stack, context, line, offset) do
language_tag__519(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__519(rest, acc, stack, context, line, offset) do
language_tag__521(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__521(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__522(
rest,
[key: <<x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__521(rest, acc, stack, context, line, offset) do
language_tag__520(rest, acc, stack, context, line, offset)
end
defp language_tag__522(rest, acc, stack, context, line, offset) do
language_tag__526(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__524(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__523(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__525(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__524(rest, [], stack, context, line, offset)
end
defp language_tag__526(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__527(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__526(rest, acc, stack, context, line, offset) do
language_tag__525(rest, acc, stack, context, line, offset)
end
defp language_tag__527(rest, acc, stack, context, line, offset) do
language_tag__528(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__528(rest, acc, stack, context, line, offset) do
language_tag__529(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__529(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__530(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__529(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__525(rest, acc, stack, context, line, offset)
end
defp language_tag__530(rest, acc, stack, context, line, offset) do
language_tag__532(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__532(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__533(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__532(rest, acc, stack, context, line, offset) do
language_tag__531(rest, acc, stack, context, line, offset)
end
defp language_tag__531(rest, acc, [_ | stack], context, line, offset) do
language_tag__534(rest, acc, stack, context, line, offset)
end
defp language_tag__533(rest, acc, [1 | stack], context, line, offset) do
language_tag__534(rest, acc, stack, context, line, offset)
end
defp language_tag__533(rest, acc, [count | stack], context, line, offset) do
language_tag__532(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__534(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__535(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__535(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__536(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__536(rest, acc, stack, context, line, offset) do
language_tag__538(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__538(rest, acc, stack, context, line, offset) do
language_tag__539(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__539(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__540(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__539(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__537(rest, acc, stack, context, line, offset)
end
defp language_tag__540(rest, acc, stack, context, line, offset) do
language_tag__541(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__541(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__542(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__541(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__537(rest, acc, stack, context, line, offset)
end
defp language_tag__542(rest, acc, stack, context, line, offset) do
language_tag__544(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__544(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__545(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__544(rest, acc, stack, context, line, offset) do
language_tag__543(rest, acc, stack, context, line, offset)
end
defp language_tag__543(rest, acc, [_ | stack], context, line, offset) do
language_tag__546(rest, acc, stack, context, line, offset)
end
defp language_tag__545(rest, acc, [1 | stack], context, line, offset) do
language_tag__546(rest, acc, stack, context, line, offset)
end
defp language_tag__545(rest, acc, [count | stack], context, line, offset) do
language_tag__544(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__546(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__547(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__547(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__548(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__537(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__549(rest, acc, stack, context, line, offset)
end
defp language_tag__548(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__538(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__549(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__523(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__520(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__550(rest, acc, stack, context, line, offset)
end
defp language_tag__523(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__521(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__550(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__551(
rest,
[collapse_keywords(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__551(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__552(
rest,
[merge_langtag_and_transform(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__552(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__553(
rest,
[
transform:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__553(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__262(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__554(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__293(rest, [], stack, context, line, offset)
end
defp language_tag__555(rest, acc, stack, context, line, offset) do
language_tag__556(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__556(rest, acc, stack, context, line, offset) do
language_tag__557(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__557(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 117 or x0 === 85 do
language_tag__558(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__557(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__554(rest, acc, stack, context, line, offset)
end
defp language_tag__558(rest, acc, stack, context, line, offset) do
language_tag__595(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__560(rest, acc, stack, context, line, offset) do
language_tag__561(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__561(rest, acc, stack, context, line, offset) do
language_tag__563(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__563(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__564(
rest,
[key: <<x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__563(rest, acc, stack, context, line, offset) do
language_tag__562(rest, acc, stack, context, line, offset)
end
defp language_tag__564(rest, acc, stack, context, line, offset) do
language_tag__568(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__566(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__565(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__567(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__566(rest, [], stack, context, line, offset)
end
defp language_tag__568(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__569(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__568(rest, acc, stack, context, line, offset) do
language_tag__567(rest, acc, stack, context, line, offset)
end
defp language_tag__569(rest, acc, stack, context, line, offset) do
language_tag__570(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__570(rest, acc, stack, context, line, offset) do
language_tag__571(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__571(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__572(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__571(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__567(rest, acc, stack, context, line, offset)
end
defp language_tag__572(rest, acc, stack, context, line, offset) do
language_tag__574(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__574(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__575(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__574(rest, acc, stack, context, line, offset) do
language_tag__573(rest, acc, stack, context, line, offset)
end
defp language_tag__573(rest, acc, [_ | stack], context, line, offset) do
language_tag__576(rest, acc, stack, context, line, offset)
end
defp language_tag__575(rest, acc, [1 | stack], context, line, offset) do
language_tag__576(rest, acc, stack, context, line, offset)
end
defp language_tag__575(rest, acc, [count | stack], context, line, offset) do
language_tag__574(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__576(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__577(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__577(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__578(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__578(rest, acc, stack, context, line, offset) do
language_tag__580(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__580(rest, acc, stack, context, line, offset) do
language_tag__581(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__581(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__582(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__581(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__579(rest, acc, stack, context, line, offset)
end
defp language_tag__582(rest, acc, stack, context, line, offset) do
language_tag__583(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__583(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__584(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__583(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__579(rest, acc, stack, context, line, offset)
end
defp language_tag__584(rest, acc, stack, context, line, offset) do
language_tag__586(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__586(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__587(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__586(rest, acc, stack, context, line, offset) do
language_tag__585(rest, acc, stack, context, line, offset)
end
defp language_tag__585(rest, acc, [_ | stack], context, line, offset) do
language_tag__588(rest, acc, stack, context, line, offset)
end
defp language_tag__587(rest, acc, [1 | stack], context, line, offset) do
language_tag__588(rest, acc, stack, context, line, offset)
end
defp language_tag__587(rest, acc, [count | stack], context, line, offset) do
language_tag__586(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__588(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__589(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__589(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__590(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__579(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__591(rest, acc, stack, context, line, offset)
end
defp language_tag__590(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__580(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__591(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__565(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__562(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__592(rest, acc, stack, context, line, offset)
end
defp language_tag__565(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__563(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__592(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__593(
rest,
[collapse_keywords(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__593(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__559(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__594(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__560(rest, [], stack, context, line, offset)
end
defp language_tag__595(rest, acc, stack, context, line, offset) do
language_tag__596(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__596(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__597(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__596(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__594(rest, acc, stack, context, line, offset)
end
defp language_tag__597(rest, acc, stack, context, line, offset) do
language_tag__598(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__598(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__599(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__598(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__594(rest, acc, stack, context, line, offset)
end
defp language_tag__599(rest, acc, stack, context, line, offset) do
language_tag__601(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__601(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__602(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__601(rest, acc, stack, context, line, offset) do
language_tag__600(rest, acc, stack, context, line, offset)
end
defp language_tag__600(rest, acc, [_ | stack], context, line, offset) do
language_tag__603(rest, acc, stack, context, line, offset)
end
defp language_tag__602(rest, acc, [1 | stack], context, line, offset) do
language_tag__603(rest, acc, stack, context, line, offset)
end
defp language_tag__602(rest, acc, [count | stack], context, line, offset) do
language_tag__601(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__603(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__604(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__604(rest, acc, stack, context, line, offset) do
language_tag__606(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__606(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__607(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__606(rest, acc, stack, context, line, offset) do
language_tag__605(rest, acc, stack, context, line, offset)
end
defp language_tag__607(rest, acc, stack, context, line, offset) do
language_tag__608(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__608(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__609(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__608(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__605(rest, acc, stack, context, line, offset)
end
defp language_tag__609(rest, acc, stack, context, line, offset) do
language_tag__611(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__611(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__612(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__611(rest, acc, stack, context, line, offset) do
language_tag__610(rest, acc, stack, context, line, offset)
end
defp language_tag__610(rest, acc, [_ | stack], context, line, offset) do
language_tag__613(rest, acc, stack, context, line, offset)
end
defp language_tag__612(rest, acc, [1 | stack], context, line, offset) do
language_tag__613(rest, acc, stack, context, line, offset)
end
defp language_tag__612(rest, acc, [count | stack], context, line, offset) do
language_tag__611(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__613(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__614(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__605(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__615(rest, acc, stack, context, line, offset)
end
defp language_tag__614(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__606(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__615(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__616(
rest,
[attributes: :lists.reverse(user_acc)] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__616(rest, acc, stack, context, line, offset) do
language_tag__617(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__617(rest, acc, stack, context, line, offset) do
language_tag__619(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__619(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__620(
rest,
[key: <<x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__619(rest, acc, stack, context, line, offset) do
language_tag__618(rest, acc, stack, context, line, offset)
end
defp language_tag__620(rest, acc, stack, context, line, offset) do
language_tag__624(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__622(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__621(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__623(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__622(rest, [], stack, context, line, offset)
end
defp language_tag__624(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__625(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__624(rest, acc, stack, context, line, offset) do
language_tag__623(rest, acc, stack, context, line, offset)
end
defp language_tag__625(rest, acc, stack, context, line, offset) do
language_tag__626(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__626(rest, acc, stack, context, line, offset) do
language_tag__627(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__627(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__628(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__627(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__623(rest, acc, stack, context, line, offset)
end
defp language_tag__628(rest, acc, stack, context, line, offset) do
language_tag__630(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__630(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__631(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__630(rest, acc, stack, context, line, offset) do
language_tag__629(rest, acc, stack, context, line, offset)
end
defp language_tag__629(rest, acc, [_ | stack], context, line, offset) do
language_tag__632(rest, acc, stack, context, line, offset)
end
defp language_tag__631(rest, acc, [1 | stack], context, line, offset) do
language_tag__632(rest, acc, stack, context, line, offset)
end
defp language_tag__631(rest, acc, [count | stack], context, line, offset) do
language_tag__630(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__632(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__633(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__633(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__634(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__634(rest, acc, stack, context, line, offset) do
language_tag__636(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__636(rest, acc, stack, context, line, offset) do
language_tag__637(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__637(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__638(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__637(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__635(rest, acc, stack, context, line, offset)
end
defp language_tag__638(rest, acc, stack, context, line, offset) do
language_tag__639(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__639(
<<x0::integer, x1::integer, x2::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when ((x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57)) and
((x1 >= 97 and x1 <= 122) or (x1 >= 65 and x1 <= 90) or (x1 >= 48 and x1 <= 57)) and
((x2 >= 97 and x2 <= 122) or (x2 >= 65 and x2 <= 90) or (x2 >= 48 and x2 <= 57)) do
language_tag__640(
rest,
[<<x0::integer, x1::integer, x2::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 3
)
end
defp language_tag__639(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__635(rest, acc, stack, context, line, offset)
end
defp language_tag__640(rest, acc, stack, context, line, offset) do
language_tag__642(rest, acc, [5 | stack], context, line, offset)
end
defp language_tag__642(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__643(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__642(rest, acc, stack, context, line, offset) do
language_tag__641(rest, acc, stack, context, line, offset)
end
defp language_tag__641(rest, acc, [_ | stack], context, line, offset) do
language_tag__644(rest, acc, stack, context, line, offset)
end
defp language_tag__643(rest, acc, [1 | stack], context, line, offset) do
language_tag__644(rest, acc, stack, context, line, offset)
end
defp language_tag__643(rest, acc, [count | stack], context, line, offset) do
language_tag__642(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__644(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__645(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__645(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__646(
rest,
[
type:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__635(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__647(rest, acc, stack, context, line, offset)
end
defp language_tag__646(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__636(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__647(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__621(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__618(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__648(rest, acc, stack, context, line, offset)
end
defp language_tag__621(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__619(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__648(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__649(
rest,
[collapse_keywords(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__649(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__559(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__559(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__650(
rest,
[combine_attributes_and_keywords(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__650(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__651(
rest,
[
locale:
case(:lists.reverse(user_acc)) do
[one] ->
one
many ->
raise("unwrap_and_tag/3 expected a single token, got: #{inspect(many)}")
end
] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__651(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__262(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__259(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__652(rest, acc, stack, context, line, offset)
end
defp language_tag__262(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__260(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__652(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__653(
rest,
[collapse_extensions(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__653(rest, acc, stack, context, line, offset) do
language_tag__657(
rest,
[],
[{rest, context, line, offset}, acc | stack],
context,
line,
offset
)
end
defp language_tag__655(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__654(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__656(_, _, [{rest, context, line, offset} | _] = stack, _, _, _) do
language_tag__655(rest, [], stack, context, line, offset)
end
defp language_tag__657(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__658(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__657(rest, acc, stack, context, line, offset) do
language_tag__656(rest, acc, stack, context, line, offset)
end
defp language_tag__658(rest, acc, stack, context, line, offset) do
language_tag__659(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__659(
<<x0::integer, x1::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 === 120 or x0 === 88) and x1 === 45 do
language_tag__660(rest, [] ++ acc, stack, context, comb__line, comb__offset + 2)
end
defp language_tag__659(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__656(rest, acc, stack, context, line, offset)
end
defp language_tag__660(rest, acc, stack, context, line, offset) do
language_tag__661(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__661(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__662(
rest,
[<<x0::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 1
)
end
defp language_tag__661(rest, _acc, stack, context, line, offset) do
[_, acc | stack] = stack
language_tag__656(rest, acc, stack, context, line, offset)
end
defp language_tag__662(rest, acc, stack, context, line, offset) do
language_tag__664(rest, acc, [7 | stack], context, line, offset)
end
defp language_tag__664(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__665(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__664(rest, acc, stack, context, line, offset) do
language_tag__663(rest, acc, stack, context, line, offset)
end
defp language_tag__663(rest, acc, [_ | stack], context, line, offset) do
language_tag__666(rest, acc, stack, context, line, offset)
end
defp language_tag__665(rest, acc, [1 | stack], context, line, offset) do
language_tag__666(rest, acc, stack, context, line, offset)
end
defp language_tag__665(rest, acc, [count | stack], context, line, offset) do
language_tag__664(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__666(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__667(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__667(rest, acc, stack, context, line, offset) do
language_tag__669(
rest,
[],
[{rest, acc, context, line, offset} | stack],
context,
line,
offset
)
end
defp language_tag__669(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when x0 === 45 do
language_tag__670(rest, [] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__669(rest, acc, stack, context, line, offset) do
language_tag__668(rest, acc, stack, context, line, offset)
end
defp language_tag__670(rest, acc, stack, context, line, offset) do
language_tag__671(rest, [], [acc | stack], context, line, offset)
end
defp language_tag__671(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__672(
rest,
[<<x0::integer>>] ++ acc,
stack,
context,
comb__line,
comb__offset + 1
)
end
defp language_tag__671(rest, _acc, stack, context, line, offset) do
[acc | stack] = stack
language_tag__668(rest, acc, stack, context, line, offset)
end
defp language_tag__672(rest, acc, stack, context, line, offset) do
language_tag__674(rest, acc, [7 | stack], context, line, offset)
end
defp language_tag__674(
<<x0::integer, rest::binary>>,
acc,
stack,
context,
comb__line,
comb__offset
)
when (x0 >= 97 and x0 <= 122) or (x0 >= 65 and x0 <= 90) or (x0 >= 48 and x0 <= 57) do
language_tag__675(rest, [x0] ++ acc, stack, context, comb__line, comb__offset + 1)
end
defp language_tag__674(rest, acc, stack, context, line, offset) do
language_tag__673(rest, acc, stack, context, line, offset)
end
defp language_tag__673(rest, acc, [_ | stack], context, line, offset) do
language_tag__676(rest, acc, stack, context, line, offset)
end
defp language_tag__675(rest, acc, [1 | stack], context, line, offset) do
language_tag__676(rest, acc, stack, context, line, offset)
end
defp language_tag__675(rest, acc, [count | stack], context, line, offset) do
language_tag__674(rest, acc, [count - 1 | stack], context, line, offset)
end
defp language_tag__676(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__677(
rest,
[List.to_string(:lists.reverse(user_acc))] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__668(_, _, [{rest, acc, context, line, offset} | stack], _, _, _) do
language_tag__678(rest, acc, stack, context, line, offset)
end
defp language_tag__677(
inner_rest,
inner_acc,
[{rest, acc, context, line, offset} | stack],
inner_context,
inner_line,
inner_offset
) do
_ = {rest, acc, context, line, offset}
language_tag__669(
inner_rest,
[],
[{inner_rest, inner_acc ++ acc, inner_context, inner_line, inner_offset} | stack],
inner_context,
inner_line,
inner_offset
)
end
defp language_tag__678(rest, user_acc, [acc | stack], context, line, offset) do
_ = user_acc
language_tag__679(
rest,
[private_use: :lists.reverse(user_acc)] ++ acc,
stack,
context,
line,
offset
)
end
defp language_tag__679(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__654(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__654(rest, user_acc, [acc | stack], context, line, offset) do
case(flatten(rest, user_acc, context, line, offset)) do
{user_acc, context} when is_list(user_acc) ->
language_tag__680(rest, user_acc ++ acc, stack, context, line, offset)
{:error, reason} ->
{:error, reason, rest, context, line, offset}
end
end
defp language_tag__680(rest, acc, [_, previous_acc | stack], context, line, offset) do
language_tag__1(rest, acc ++ previous_acc, stack, context, line, offset)
end
defp language_tag__1(<<""::binary>>, acc, stack, context, comb__line, comb__offset) do
language_tag__681("", [] ++ acc, stack, context, comb__line, comb__offset)
end
defp language_tag__1(rest, _acc, _stack, context, line, offset) do
{:error, "expected a BCP47 language tag", rest, context, line, offset}
end
defp language_tag__681(rest, acc, _stack, context, line, offset) do
{:ok, acc, rest, context, line, offset}
end
def error_on_remaining("", context, _line, _offset) do
{[], context}
end
def error_on_remaining(_rest, _context, _line, _offset) do
{:error, "invalid language tag"}
end
end