Sigv4.lex: def of bend-kit-sigv4@0.11.0.1 Import: import bend-kit-sigv4@0.11.0.1/sigv4.bend as Sigv4 Lines 662-786 of bend-kit-sigv4@0.11.0.1/sigv4.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&start_line=662&end_line=786 import Base # One pass over the text. Each step takes one char, so it ends. def lex(s: String, m: Lx, st: St) -> St: match s: case SNil{}: st.end(m, st) case SCon{h, t}: match h m: case '<' LText{}: lex(t, LOpen{}, st.nm0(st)) case '&' LText{}: lex(t, LEnt{}, st.nm0(st)) case c LText{}: lex(t, LText{}, st.txt(st, c)) case '/' LOpen{}: lex(t, LEnd{}, st) case '?' LOpen{}: lex(t, LPi{}, st) case '!' LOpen{}: lex(t, LBang{}, st) case c LOpen{}: lex(t, LName{}, st.nm(st, c)) case '>' LName{}: lex(t, LText{}, st.open(st)) case '/' LName{}: lex(t, LSelf{}, st.open(st)) case ' ' LName{}: lex(t, LAttr{}, st.open(st)) case Chr{9} LName{}: lex(t, LAttr{}, st.open(st)) case Chr{10} LName{}: lex(t, LAttr{}, st.open(st)) case Chr{13} LName{}: lex(t, LAttr{}, st.open(st)) case c LName{}: lex(t, LName{}, st.nm(st, c)) case '"' LAttr{}: lex(t, LDq{}, st) case Chr{39} LAttr{}: lex(t, LSq{}, st) case '>' LAttr{}: lex(t, LText{}, st) case '/' LAttr{}: lex(t, LSelf{}, st) case c LAttr{}: lex(t, LAttr{}, st) case '"' LDq{}: lex(t, LAttr{}, st) case c LDq{}: lex(t, LDq{}, st) case Chr{39} LSq{}: lex(t, LAttr{}, st) case c LSq{}: lex(t, LSq{}, st) case '>' LSelf{}: lex(t, LText{}, st.close.top(st)) case c LSelf{}: lex(t, LAttr{}, st) case '>' LEnd{}: lex(t, LText{}, st.close(st)) case ' ' LEnd{}: lex(t, LEnd{}, st) case Chr{9} LEnd{}: lex(t, LEnd{}, st) case Chr{10} LEnd{}: lex(t, LEnd{}, st) case Chr{13} LEnd{}: lex(t, LEnd{}, st) case c LEnd{}: lex(t, LEnd{}, st.nm(st, c)) case '?' LPi{}: lex(t, LPiQ{}, st) case c LPi{}: lex(t, LPi{}, st) case '>' LPiQ{}: lex(t, LText{}, st) case '?' LPiQ{}: lex(t, LPiQ{}, st) case c LPiQ{}: lex(t, LPi{}, st) case '-' LBang{}: lex(t, LCom{}, st) case '[' LBang{}: lex(t, LCdHead{}, st) case c LBang{}: lex(t, LDecl{}, st) case '-' LCom{}: lex(t, LCom1{}, st) case c LCom{}: lex(t, LCom{}, st) case '-' LCom1{}: lex(t, LCom2{}, st) case c LCom1{}: lex(t, LCom{}, st) case '>' LCom2{}: lex(t, LText{}, st) case '-' LCom2{}: lex(t, LCom2{}, st) case c LCom2{}: lex(t, LCom{}, st) case '[' LCdHead{}: lex(t, LCd{}, st) case c LCdHead{}: lex(t, LCdHead{}, st) case ']' LCd{}: lex(t, LCd1{}, st) case c LCd{}: lex(t, LCd{}, st.txt(st, c)) case ']' LCd1{}: lex(t, LCd2{}, st) case c LCd1{}: lex(t, LCd{}, st.txt(st.txt(st, ']'), c)) case '>' LCd2{}: lex(t, LText{}, st) case ']' LCd2{}: lex(t, LCd2{}, st.txt(st, ']')) case c LCd2{}: lex(t, LCd{}, st.txt(st.txt(st.txt(st, ']'), ']'), c)) case ';' LEnt{}: lex(t, LText{}, st.ent(st)) case c LEnt{}: lex(t, LEnt{}, st.nm(st, c)) case '>' LDecl{}: lex(t, LText{}, st) case c LDecl{}: lex(t, LDecl{}, st) Uses (16): 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=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-kit-sigv4@0.11.0.1/sigv4.bend&name=Lx https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=St https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.close https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.close.top https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.end https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.ent https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.nm https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.nm0 https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.open https://jend.leeeet.dev/definition.txt?path=bend-kit-sigv4@0.11.0.1/sigv4.bend&name=st.txt