-module(yum@yaml@parser@block_collection).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yum/yaml/parser/block_collection.gleam").
-export([parser/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/yum/yaml/parser/block_collection.gleam", 42).
?DOC(false).
-spec nested_collection_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
nested_collection_parser(Parent_indent) ->
nibble:do(
yum@yaml@parser@indentation:greater_than_parser(Parent_indent),
fun(Indent) -> block_collection_parser(Indent) end
).
-file("src/yum/yaml/parser/block_collection.gleam", 38).
?DOC(false).
-spec compact_collection_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
compact_collection_parser(Indent) ->
block_collection_parser(Indent + 2).
-file("src/yum/yaml/parser/block_collection.gleam", 61).
?DOC(false).
-spec bare_block_node_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
bare_block_node_parser(Indent) ->
nibble:one_of(
[yum@yaml@parser@flow_collection:parser(),
yum@yaml@parser@block_scalar:parser(),
yum@yaml@parser@double_quoted:parser(),
yum@yaml@parser@single_quoted:parser(),
nibble:backtrackable(compact_collection_parser(Indent)),
nested_collection_parser(Indent),
yum@yaml@parser@scalar:block_plain_parser(Indent)]
).
-file("src/yum/yaml/parser/block_collection.gleam", 57).
?DOC(false).
-spec block_node_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
block_node_parser(Indent) ->
yum@yaml@parser@node_property:parser(bare_block_node_parser(Indent)).
-file("src/yum/yaml/parser/block_collection.gleam", 23).
?DOC(false).
-spec block_sequence_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
block_sequence_parser(Indent) ->
yum@yaml@parser@block_sequence:parser(Indent, fun block_node_parser/1).
-file("src/yum/yaml/parser/block_collection.gleam", 50).
?DOC(false).
-spec indentless_sequence_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
indentless_sequence_parser(Parent_indent) ->
nibble:do(
yum@yaml@parser@indentation:same_amount_parser(Parent_indent),
fun(_use0) ->
nil = _use0,
block_sequence_parser(Parent_indent)
end
).
-file("src/yum/yaml/parser/block_collection.gleam", 77).
?DOC(false).
-spec bare_mapping_value_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
bare_mapping_value_parser(Indent) ->
nibble:one_of(
[yum@yaml@parser@flow_collection:parser(),
yum@yaml@parser@block_scalar:parser(),
yum@yaml@parser@double_quoted:parser(),
yum@yaml@parser@single_quoted:parser(),
nibble:backtrackable(compact_collection_parser(Indent)),
nested_collection_parser(Indent),
nibble:backtrackable(indentless_sequence_parser(Indent)),
yum@yaml@parser@scalar:block_plain_parser(Indent)]
).
-file("src/yum/yaml/parser/block_collection.gleam", 73).
?DOC(false).
-spec mapping_value_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
mapping_value_parser(Indent) ->
yum@yaml@parser@node_property:parser(bare_mapping_value_parser(Indent)).
-file("src/yum/yaml/parser/block_collection.gleam", 27).
?DOC(false).
-spec block_mapping_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
block_mapping_parser(Indent) ->
yum@yaml@parser@block_mapping:parser(Indent, fun mapping_value_parser/1).
-file("src/yum/yaml/parser/block_collection.gleam", 31).
?DOC(false).
-spec block_collection_parser(integer()) -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
block_collection_parser(Indent) ->
nibble:one_of([block_sequence_parser(Indent), block_mapping_parser(Indent)]).
-file("src/yum/yaml/parser/block_collection.gleam", 16).
?DOC(false).
-spec parser() -> nibble:parser(yum@yaml@node:node_(), yum@yaml@token:token(), yum@yaml@lexer@context:context()).
parser() ->
nibble:do(
nibble:optional(yum@yaml@parser@indentation:value_parser()),
fun(Indent) ->
Indent@1 = begin
_pipe = Indent,
gleam@option:unwrap(_pipe, 0)
end,
block_collection_parser(Indent@1)
end
).