def scan_punctuation_char

qasim-bend-kit@0.1.0.2 · proof/JSON_LexWhitespaceProof.bend:166

import qasim-bend-kit@0.1.0.2/proof/JSON_LexWhitespaceProof.bend as JSONLexWhitespaceProof
import Base
import qasim-bend-kit@0.1.0.2/libs/JSON.bend as J

166def scan_punctuation_char(+character: Char,
167                          +tail: String,
168                          +reversed: String,
169                          +acc: List<&2, J.Lexeme>,
170                          action: {J.lex_seed_action(SCon{character, tail}, J.Outside{}) == J.LexPunctuation{character} : J.LexAction}) -> {J.lex_scan(SCon{character, tail}, J.Outside{}, reversed, acc) == J.lex_scan(tail, J.Outside{}, SNil{}, J.Punctuation{character} <> J.flush_lexeme(reversed, acc)) : List<&2, J.Lexeme>}:
171    Equal.trans(List<&2, J.Lexeme>, J.lex_scan(SCon{character, tail}, J.Outside{}, reversed, acc),
172        J.lex_scan(tail, after_mode(J.LexPunctuation{character}, J.Outside{}),
173            after_reversed(J.LexPunctuation{character}, character, reversed),
174            after_acc(J.LexPunctuation{character}, character, reversed, acc)),
175        J.lex_scan(tail, J.Outside{}, SNil{}, J.Punctuation{character} <> J.flush_lexeme(reversed, acc)),
176        Equal.trans(List<&2, J.Lexeme>, J.lex_scan(SCon{character, tail}, J.Outside{}, reversed, acc),
177            J.lex_scan(tail, after_mode(J.lex_seed_action(SCon{character, tail}, J.Outside{}), J.Outside{}),
178                after_reversed(J.lex_seed_action(SCon{character, tail}, J.Outside{}), character, reversed),
179                after_acc(J.lex_seed_action(SCon{character, tail}, J.Outside{}), character, reversed, acc)),
180            J.lex_scan(tail, after_mode(J.LexPunctuation{character}, J.Outside{}),
181                after_reversed(J.LexPunctuation{character}, character, reversed),
182                after_acc(J.LexPunctuation{character}, character, reversed, acc)),
183            lex_scan_step(character, tail, J.Outside{}, reversed, acc),
184            Equal.cong(J.LexAction, List<&2, J.Lexeme>, action => J.lex_scan(tail, after_mode(action, J.Outside{}),
185                after_reversed(action, character, reversed), after_acc(action, character, reversed, acc)),
186                J.lex_seed_action(SCon{character, tail}, J.Outside{}), J.LexPunctuation{character}, action)),
187        {==})

Uses (15)

Used by (14)