def lex_array_after_separator_single_source

qasim-bend-kit@0.1.0.2 · proof/JSON_SourceProof.bend:1117

import qasim-bend-kit@0.1.0.2/proof/JSON_SourceProof.bend as JSONSourceProof
import Base
import qasim-bend-kit@0.1.0.2/libs/JSON.bend as J

1117def lex_array_after_separator_single_source(+head: J.Value,
1118                                            +punctuation: Char,
1119                                            +suffix: String,
1120                                            +acc: List<&2, J.Lexeme>,
1121                                            action: {J.lex_seed_action(SCon{punctuation, suffix}, J.Outside{}) == J.LexPunctuation{punctuation} : J.LexAction},
1122                                            head_lex: {J.lex_scan(render_task(head, RenderWhole{}, "]" ++ (SCon{punctuation, SNil{}} ++ suffix)), J.Outside{}, SNil{}, acc) == J.lex_scan(SCon{punctuation, SNil{}} ++ suffix, J.Outside{}, SNil{}, J.Punctuation{']'} <> List.append(&2, J.Lexeme, reverse_source_task(head, RenderWhole{}), acc)) : List<&2,
1123                                            J.Lexeme>}) -> {J.lex_scan(render_after_separator(J.Arr{head <> Nil{}}, SCon{punctuation, SNil{}} ++ suffix), J.Outside{}, SNil{}, acc) == J.lex_scan(suffix, J.Outside{}, SNil{}, J.Punctuation{punctuation} <> List.append(&2, J.Lexeme, reverse_source_task(J.Arr{head <> Nil{}}, RenderAfterSeparator{}), acc)) : List<&2, J.Lexeme>}:
1124    Equal.trans(List<&2, J.Lexeme>,
1125        J.lex_scan(render_after_separator(J.Arr{head <> Nil{}}, SCon{punctuation, SNil{}} ++ suffix), J.Outside{}, SNil{}, acc),
1126        J.lex_scan(suffix, J.Outside{}, SNil{}, J.Punctuation{punctuation} <>
1127            J.Punctuation{']'} <> List.append(&2, J.Lexeme, reverse_source_task(head, RenderWhole{}), acc)),
1128        J.lex_scan(suffix, J.Outside{}, SNil{}, J.Punctuation{punctuation} <>
1129            List.append(&2, J.Lexeme, reverse_source_task(J.Arr{head <> Nil{}}, RenderAfterSeparator{}), acc)),
1130        lex_array_after_separator_single(head, punctuation, suffix, acc, action, head_lex),
1131        Equal.cong(List<&2, J.Lexeme>, List<&2, J.Lexeme>, items => J.lex_scan(suffix, J.Outside{}, SNil{},
1132            J.Punctuation{punctuation} <> List.append(&2, J.Lexeme, items, acc)),
1133            J.Punctuation{']'} <> reverse_source_task(head, RenderWhole{}),
1134            reverse_source_task(J.Arr{head <> Nil{}}, RenderAfterSeparator{}),
1135            Equal.sym(List<&2, J.Lexeme>, reverse_source_task(J.Arr{head <> Nil{}}, RenderAfterSeparator{}),
1136                J.Punctuation{']'} <> reverse_source_task(head, RenderWhole{}),
1137                reverse_source_array_after_separator(head, Nil{}))))

Uses (20)

Used by (1)