Format.lex.token: def of bend-lint-rules@0.2.0.0 Import: import bend-lint-rules@0.2.0.0/layout/format.bend as Format Lines 749-785 of bend-lint-rules@0.2.0.0/layout/format.bend: https://jend.leeeet.dev/read.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&start_line=749&end_line=785 import Base # The token at the start of s; prev is the character before it. Literals # and comment text are kept verbatim: a quote or # inside a string is not # syntax. Successor notation (1n+) and quantities (&2) are single tokens. def lex.token(s: String, keep: String, prev: Char) -> Scan: match s: case SNil{}: Eof{} case SCon{' ', +rest}: blanks(rest, rest, 1, ' ') case SCon{'\n', rest}: Tok{"\n", 1, rest, '\n', Newline{}, Word{}, False{}, None{}} case SCon{'#', +rest}: comment(scan(~is_not_line_end, rest, rest, is_not_line_end(rest), "#", 1, '#')) case SCon{'"', +rest}: literal(rest, rest, '"', Inside{}, "\"", 1, '"', None{}) case SCon{'\'', +rest}: literal(rest, rest, '\'', Inside{}, "'", 1, '\'', None{}) case SCon{'<', +rest}: lex.lt(rest, rest, prev) case SCon{'>', +rest}: lex.gt(rest, rest, prev) case SCon{'.', +rest}: lex.dot(rest, rest) case SCon{'-', +rest}: lex.minus(rest, rest) case SCon{'=', +rest}: lex.eq(rest, rest) case SCon{'!', +rest}: lex.bang(rest, rest) case SCon{'&', +rest}: lex.amp(rest, rest) case SCon{'|', +rest}: lex.bar(rest, rest) case SCon{'+', +rest}: lex.plus(rest, rest) case _: lex.char(keep) Uses (26): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Char https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Con https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Nil https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=Lex https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=Quote https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=Scan https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=Sym https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=blanks https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=comment https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=is_not_line_end https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.amp https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.bang https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.bar https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.char https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.dot https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.eq https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.gt https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.lt https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.minus https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=lex.plus https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=literal https://jend.leeeet.dev/definition.txt?path=bend-lint-rules@0.2.0.0/layout/format.bend&name=scan