def q.char
yaml-for-bend@0.1.1.0 · scan.bend:877
import yaml-for-bend@0.1.1.0/scan.bend as Scan
import Base
import yaml-for-bend@0.1.1.0/token.bend as T
877def q.char(double: Bool, c: Char, +c1: Char, +cur: Cur, +acc: String, start: T.Mark) -> Qs:
878 match double:
879 case False{}:
880 match c:
881 case '\'':
882 Bool.pick(Qs, Char.is_eq(c1, '\''), q.text(adv.n(2n, cur), SCon{'\'', acc}), QsDone{adv(cur), acc})
883 case _:
884 q.text(adv(cur), SCon{c, acc})
885 case True{}:
886 match c:
887 case '"':
888 QsDone{adv(cur), acc}
889 case '\\':
890 q.escape(c1, cur, acc, start)
891 case _:
892 q.text(adv(cur), SCon{c, acc})