From 42c8b2ab154fa3ec2a853c9c421a413949e2c862 Mon Sep 17 00:00:00 2001 From: eilvelia Date: Wed, 15 Jan 2025 16:18:57 +0000 Subject: [PATCH] lexer: use ^ from a newer version of re2c --- src/lexer.ml | 6665 ++++++++++++++++++++++++----------------------- src/lexer.ml.re | 91 +- test/parse.ml | 2 +- 3 files changed, 3468 insertions(+), 3290 deletions(-) diff --git a/src/lexer.ml b/src/lexer.ml index e1272f1..3d34d61 100644 --- a/src/lexer.ml +++ b/src/lexer.ml @@ -1554,7 +1554,13 @@ let escape_string = function (* Tokenizer *) + + let rec yy83 (st : tokenizer_state) (depth : int) : unit = + save_start_position st; + (yy84 [@tailcall]) st depth + +and yy84 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -1563,314 +1569,314 @@ let rec yy83 (st : tokenizer_state) (depth : int) : unit = | '+'..'.' | '0'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy83 [@tailcall]) st depth - else (yy108 [@tailcall]) st depth + if (st.refill st) then (yy84 [@tailcall]) st depth + else (yy109 [@tailcall]) st depth ) else ( st.yycursor <- st.yycursor + 1; - (yy84 [@tailcall]) st depth + (yy85 [@tailcall]) st depth ) | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy86 [@tailcall]) st depth + (yy87 [@tailcall]) st depth | '\r' -> st.yycursor <- st.yycursor + 1; - (yy88 [@tailcall]) st depth + (yy89 [@tailcall]) st depth | '*' -> st.yycursor <- st.yycursor + 1; - (yy89 [@tailcall]) st depth + (yy90 [@tailcall]) st depth | '/' -> st.yycursor <- st.yycursor + 1; - (yy90 [@tailcall]) st depth + (yy91 [@tailcall]) st depth | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy93 [@tailcall]) st depth + (yy94 [@tailcall]) st depth | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy94 [@tailcall]) st depth + (yy95 [@tailcall]) st depth | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy95 [@tailcall]) st depth + (yy96 [@tailcall]) st depth | '\xE1' | '\xE3'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy96 [@tailcall]) st depth + (yy97 [@tailcall]) st depth | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy97 [@tailcall]) st depth + (yy98 [@tailcall]) st depth | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy98 [@tailcall]) st depth + (yy99 [@tailcall]) st depth | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy99 [@tailcall]) st depth + (yy100 [@tailcall]) st depth | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy100 [@tailcall]) st depth + (yy101 [@tailcall]) st depth | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy101 [@tailcall]) st depth + (yy102 [@tailcall]) st depth | _ -> st.yycursor <- st.yycursor + 1; - (yy91 [@tailcall]) st depth - -and yy84 (st : tokenizer_state) (depth : int) : unit = - (yy85 [@tailcall]) st depth + (yy92 [@tailcall]) st depth and yy85 (st : tokenizer_state) (depth : int) : unit = - multiline_comment st depth + (yy86 [@tailcall]) st depth and yy86 (st : tokenizer_state) (depth : int) : unit = - (yy87 [@tailcall]) st depth + multiline_comment st depth and yy87 (st : tokenizer_state) (depth : int) : unit = - newline st; multiline_comment st depth + (yy88 [@tailcall]) st depth and yy88 (st : tokenizer_state) (depth : int) : unit = + newline st; multiline_comment st depth + +and yy89 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy86 [@tailcall]) st depth + (yy87 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy88 [@tailcall]) st depth - else (yy87 [@tailcall]) st depth + if (st.refill st) then (yy89 [@tailcall]) st depth + else (yy88 [@tailcall]) st depth ) else ( - (yy87 [@tailcall]) st depth + (yy88 [@tailcall]) st depth ) -and yy89 (st : tokenizer_state) (depth : int) : unit = +and yy90 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '/' -> st.yycursor <- st.yycursor + 1; - (yy102 [@tailcall]) st depth + (yy103 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy89 [@tailcall]) st depth - else (yy85 [@tailcall]) st depth + if (st.refill st) then (yy90 [@tailcall]) st depth + else (yy86 [@tailcall]) st depth ) else ( - (yy85 [@tailcall]) st depth + (yy86 [@tailcall]) st depth ) -and yy90 (st : tokenizer_state) (depth : int) : unit = +and yy91 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '*' -> st.yycursor <- st.yycursor + 1; - (yy103 [@tailcall]) st depth + (yy104 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy90 [@tailcall]) st depth - else (yy85 [@tailcall]) st depth + if (st.refill st) then (yy91 [@tailcall]) st depth + else (yy86 [@tailcall]) st depth ) else ( - (yy85 [@tailcall]) st depth + (yy86 [@tailcall]) st depth ) -and yy91 (st : tokenizer_state) (depth : int) : unit = - (yy92 [@tailcall]) st depth - and yy92 (st : tokenizer_state) (depth : int) : unit = - malformed_utf8 st + (yy93 [@tailcall]) st depth and yy93 (st : tokenizer_state) (depth : int) : unit = + malformed_utf8 st + +and yy94 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy84 [@tailcall]) st depth + (yy85 [@tailcall]) st depth | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy86 [@tailcall]) st depth + (yy87 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy93 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy94 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy94 (st : tokenizer_state) (depth : int) : unit = +and yy95 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy84 [@tailcall]) st depth + (yy85 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy94 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy95 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy95 (st : tokenizer_state) (depth : int) : unit = +and yy96 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy104 [@tailcall]) st depth + (yy105 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy95 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy96 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy96 (st : tokenizer_state) (depth : int) : unit = +and yy97 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy104 [@tailcall]) st depth + (yy105 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy96 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy97 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy97 (st : tokenizer_state) (depth : int) : unit = +and yy98 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy106 [@tailcall]) st depth + (yy107 [@tailcall]) st depth | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy104 [@tailcall]) st depth + (yy105 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy97 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy98 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy98 (st : tokenizer_state) (depth : int) : unit = +and yy99 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy104 [@tailcall]) st depth + (yy105 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy98 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy99 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy99 (st : tokenizer_state) (depth : int) : unit = +and yy100 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy107 [@tailcall]) st depth + (yy108 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy99 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy100 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy100 (st : tokenizer_state) (depth : int) : unit = +and yy101 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy107 [@tailcall]) st depth + (yy108 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy100 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy101 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy101 (st : tokenizer_state) (depth : int) : unit = +and yy102 (st : tokenizer_state) (depth : int) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy107 [@tailcall]) st depth + (yy108 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy101 [@tailcall]) st depth - else (yy92 [@tailcall]) st depth + if (st.refill st) then (yy102 [@tailcall]) st depth + else (yy93 [@tailcall]) st depth ) else ( - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth ) -and yy102 (st : tokenizer_state) (depth : int) : unit = +and yy103 (st : tokenizer_state) (depth : int) : unit = if depth <= 0 then () else multiline_comment st (depth - 1) -and yy103 (st : tokenizer_state) (depth : int) : unit = +and yy104 (st : tokenizer_state) (depth : int) : unit = multiline_comment st (depth + 1) -and yy104 (st : tokenizer_state) (depth : int) : unit = +and yy105 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy84 [@tailcall]) st depth + (yy85 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy104 [@tailcall]) st depth - else (yy105 [@tailcall]) st depth + if (st.refill st) then (yy105 [@tailcall]) st depth + else (yy106 [@tailcall]) st depth ) else ( - (yy105 [@tailcall]) st depth + (yy106 [@tailcall]) st depth ) -and yy105 (st : tokenizer_state) (depth : int) : unit = +and yy106 (st : tokenizer_state) (depth : int) : unit = st.yycursor <- st.yymarker; - (yy92 [@tailcall]) st depth + (yy93 [@tailcall]) st depth -and yy106 (st : tokenizer_state) (depth : int) : unit = +and yy107 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA7' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy84 [@tailcall]) st depth + (yy85 [@tailcall]) st depth | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy86 [@tailcall]) st depth + (yy87 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy106 [@tailcall]) st depth - else (yy105 [@tailcall]) st depth + if (st.refill st) then (yy107 [@tailcall]) st depth + else (yy106 [@tailcall]) st depth ) else ( - (yy105 [@tailcall]) st depth + (yy106 [@tailcall]) st depth ) -and yy107 (st : tokenizer_state) (depth : int) : unit = +and yy108 (st : tokenizer_state) (depth : int) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy104 [@tailcall]) st depth + (yy105 [@tailcall]) st depth | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy107 [@tailcall]) st depth - else (yy105 [@tailcall]) st depth + if (st.refill st) then (yy108 [@tailcall]) st depth + else (yy106 [@tailcall]) st depth ) else ( - (yy105 [@tailcall]) st depth + (yy106 [@tailcall]) st depth ) -and yy108 (st : tokenizer_state) (depth : int) : unit = +and yy109 (st : tokenizer_state) (depth : int) : unit = error st "Unterminated comment" and multiline_comment (st : tokenizer_state) (depth : int) : unit = @@ -1879,59 +1885,63 @@ and multiline_comment (st : tokenizer_state) (depth : int) : unit = -let rec yy109 (st : tokenizer_state) : unit = +let rec yy110 (st : tokenizer_state) : unit = + save_start_position st; + (yy111 [@tailcall]) st + +and yy111 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' | '\x01'..'\t' | '\x0E'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy109 [@tailcall]) st - else (yy138 [@tailcall]) st + if (st.refill st) then (yy111 [@tailcall]) st + else (yy140 [@tailcall]) st ) else ( st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st ) | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy112 [@tailcall]) st + (yy114 [@tailcall]) st | '\r' -> st.yycursor <- st.yycursor + 1; - (yy114 [@tailcall]) st + (yy116 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy117 [@tailcall]) st + (yy119 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy118 [@tailcall]) st + (yy120 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy119 [@tailcall]) st + (yy121 [@tailcall]) st | '\xE1' | '\xE3'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy120 [@tailcall]) st + (yy122 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy121 [@tailcall]) st + (yy123 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy122 [@tailcall]) st + (yy124 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy123 [@tailcall]) st + (yy125 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy124 [@tailcall]) st + (yy126 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy125 [@tailcall]) st + (yy127 [@tailcall]) st | _ -> st.yycursor <- st.yycursor + 1; - (yy115 [@tailcall]) st + (yy117 [@tailcall]) st -and yy110 (st : tokenizer_state) : unit = +and yy112 (st : tokenizer_state) : unit = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -1940,397 +1950,401 @@ and yy110 (st : tokenizer_state) : unit = | '\x01'..'\t' | '\x0E'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy110 [@tailcall]) st - else (yy111 [@tailcall]) st + if (st.refill st) then (yy112 [@tailcall]) st + else (yy113 [@tailcall]) st ) else ( st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st ) | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy126 [@tailcall]) st + (yy128 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy129 [@tailcall]) st + (yy131 [@tailcall]) st | '\xE1' | '\xE3'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy131 [@tailcall]) st + (yy133 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy132 [@tailcall]) st + (yy134 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy133 [@tailcall]) st + (yy135 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy134 [@tailcall]) st + (yy136 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy135 [@tailcall]) st - | _ -> (yy111 [@tailcall]) st + (yy137 [@tailcall]) st + | _ -> (yy113 [@tailcall]) st -and yy111 (st : tokenizer_state) : unit = +and yy113 (st : tokenizer_state) : unit = singleline_comment st -and yy112 (st : tokenizer_state) : unit = - (yy113 [@tailcall]) st +and yy114 (st : tokenizer_state) : unit = + (yy115 [@tailcall]) st -and yy113 (st : tokenizer_state) : unit = +and yy115 (st : tokenizer_state) : unit = newline st -and yy114 (st : tokenizer_state) : unit = +and yy116 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy112 [@tailcall]) st + (yy114 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy114 [@tailcall]) st - else (yy113 [@tailcall]) st + if (st.refill st) then (yy116 [@tailcall]) st + else (yy115 [@tailcall]) st ) else ( - (yy113 [@tailcall]) st + (yy115 [@tailcall]) st ) -and yy115 (st : tokenizer_state) : unit = - (yy116 [@tailcall]) st +and yy117 (st : tokenizer_state) : unit = + (yy118 [@tailcall]) st -and yy116 (st : tokenizer_state) : unit = +and yy118 (st : tokenizer_state) : unit = malformed_utf8 st -and yy117 (st : tokenizer_state) : unit = +and yy119 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy112 [@tailcall]) st + (yy114 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy117 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy119 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy118 (st : tokenizer_state) : unit = +and yy120 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy118 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy120 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy119 (st : tokenizer_state) : unit = +and yy121 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy119 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy121 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy120 (st : tokenizer_state) : unit = +and yy122 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy120 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy122 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy121 (st : tokenizer_state) : unit = +and yy123 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy136 [@tailcall]) st + (yy138 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy121 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy123 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy122 (st : tokenizer_state) : unit = +and yy124 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy122 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy124 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy123 (st : tokenizer_state) : unit = +and yy125 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy123 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy125 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy124 (st : tokenizer_state) : unit = +and yy126 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy124 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy126 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy125 (st : tokenizer_state) : unit = +and yy127 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy125 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.refill st) then (yy127 [@tailcall]) st + else (yy118 [@tailcall]) st ) else ( - (yy116 [@tailcall]) st + (yy118 [@tailcall]) st ) -and yy126 (st : tokenizer_state) : unit = +and yy128 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy126 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy128 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy127 (st : tokenizer_state) : unit = +and yy129 (st : tokenizer_state) : unit = st.yycursor <- st.yymarker; - if (st.yyaccept == 0) then (yy111 [@tailcall]) st - else (yy116 [@tailcall]) st + if (st.yyaccept == 0) then (yy113 [@tailcall]) st + else (yy118 [@tailcall]) st -and yy128 (st : tokenizer_state) : unit = +and yy130 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy128 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy130 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy129 (st : tokenizer_state) : unit = +and yy131 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy129 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy131 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy130 (st : tokenizer_state) : unit = +and yy132 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy130 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy132 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy131 (st : tokenizer_state) : unit = +and yy133 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy137 [@tailcall]) st + (yy139 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy131 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy133 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy132 (st : tokenizer_state) : unit = +and yy134 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy128 [@tailcall]) st + (yy130 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy132 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy134 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy133 (st : tokenizer_state) : unit = +and yy135 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy133 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy135 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy134 (st : tokenizer_state) : unit = +and yy136 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy134 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy136 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy135 (st : tokenizer_state) : unit = +and yy137 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy130 [@tailcall]) st + (yy132 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy135 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy137 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy136 (st : tokenizer_state) : unit = +and yy138 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA7' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy112 [@tailcall]) st + (yy114 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy136 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy138 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy137 (st : tokenizer_state) : unit = +and yy139 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA7' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy110 [@tailcall]) st + (yy112 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy137 [@tailcall]) st - else (yy127 [@tailcall]) st + if (st.refill st) then (yy139 [@tailcall]) st + else (yy129 [@tailcall]) st ) else ( - (yy127 [@tailcall]) st + (yy129 [@tailcall]) st ) -and yy138 (st : tokenizer_state) : unit = +and yy140 (st : tokenizer_state) : unit = () and singleline_comment (st : tokenizer_state) : unit = - (yy109 [@tailcall]) st + (yy110 [@tailcall]) st -let rec yy139 (st : tokenizer_state) : unit = +let rec yy141 (st : tokenizer_state) : unit = + save_start_position st; + (yy142 [@tailcall]) st + +and yy142 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -2339,73 +2353,73 @@ let rec yy139 (st : tokenizer_state) : unit = | '!'..'.' | '0'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy139 [@tailcall]) st - else (yy176 [@tailcall]) st + if (st.refill st) then (yy142 [@tailcall]) st + else (yy179 [@tailcall]) st ) else ( st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy144 [@tailcall]) st + (yy147 [@tailcall]) st | '\r' -> st.yycursor <- st.yycursor + 1; - (yy146 [@tailcall]) st + (yy149 [@tailcall]) st | '/' -> st.yycursor <- st.yycursor + 1; - (yy147 [@tailcall]) st + (yy150 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy150 [@tailcall]) st + (yy153 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy151 [@tailcall]) st + (yy154 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy152 [@tailcall]) st + (yy155 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy153 [@tailcall]) st + (yy156 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy154 [@tailcall]) st + (yy157 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy155 [@tailcall]) st + (yy158 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy156 [@tailcall]) st + (yy159 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy157 [@tailcall]) st + (yy160 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy158 [@tailcall]) st + (yy161 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy159 [@tailcall]) st + (yy162 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy160 [@tailcall]) st + (yy163 [@tailcall]) st | _ -> st.yycursor <- st.yycursor + 1; - (yy148 [@tailcall]) st + (yy151 [@tailcall]) st -and yy140 (st : tokenizer_state) : unit = - (yy141 [@tailcall]) st +and yy143 (st : tokenizer_state) : unit = + (yy144 [@tailcall]) st -and yy141 (st : tokenizer_state) : unit = +and yy144 (st : tokenizer_state) : unit = error st @@ sprintf "Illegal character '%s' after the '\\' line continuation" (lexeme st) -and yy142 (st : tokenizer_state) : unit = +and yy145 (st : tokenizer_state) : unit = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -2413,126 +2427,126 @@ and yy142 (st : tokenizer_state) : unit = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy161 [@tailcall]) st + (yy164 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy163 [@tailcall]) st + (yy166 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy164 [@tailcall]) st + (yy167 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy165 [@tailcall]) st + (yy168 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy142 [@tailcall]) st - else (yy143 [@tailcall]) st + if (st.refill st) then (yy145 [@tailcall]) st + else (yy146 [@tailcall]) st ) else ( - (yy143 [@tailcall]) st + (yy146 [@tailcall]) st ) -and yy143 (st : tokenizer_state) : unit = +and yy146 (st : tokenizer_state) : unit = line_cont st -and yy144 (st : tokenizer_state) : unit = - (yy145 [@tailcall]) st +and yy147 (st : tokenizer_state) : unit = + (yy148 [@tailcall]) st -and yy145 (st : tokenizer_state) : unit = +and yy148 (st : tokenizer_state) : unit = newline st -and yy146 (st : tokenizer_state) : unit = +and yy149 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy144 [@tailcall]) st + (yy147 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy146 [@tailcall]) st - else (yy145 [@tailcall]) st + if (st.refill st) then (yy149 [@tailcall]) st + else (yy148 [@tailcall]) st ) else ( - (yy145 [@tailcall]) st + (yy148 [@tailcall]) st ) -and yy147 (st : tokenizer_state) : unit = +and yy150 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '*' -> st.yycursor <- st.yycursor + 1; - (yy166 [@tailcall]) st + (yy169 [@tailcall]) st | '/' -> st.yycursor <- st.yycursor + 1; - (yy167 [@tailcall]) st + (yy170 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy147 [@tailcall]) st - else (yy141 [@tailcall]) st + if (st.refill st) then (yy150 [@tailcall]) st + else (yy144 [@tailcall]) st ) else ( - (yy141 [@tailcall]) st + (yy144 [@tailcall]) st ) -and yy148 (st : tokenizer_state) : unit = - (yy149 [@tailcall]) st +and yy151 (st : tokenizer_state) : unit = + (yy152 [@tailcall]) st -and yy149 (st : tokenizer_state) : unit = +and yy152 (st : tokenizer_state) : unit = malformed_utf8 st -and yy150 (st : tokenizer_state) : unit = +and yy153 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy144 [@tailcall]) st + (yy147 [@tailcall]) st | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy150 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy153 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy151 (st : tokenizer_state) : unit = +and yy154 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy151 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy154 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy152 (st : tokenizer_state) : unit = +and yy155 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy152 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy155 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy153 (st : tokenizer_state) : unit = +and yy156 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -2540,350 +2554,352 @@ and yy153 (st : tokenizer_state) : unit = | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy169 [@tailcall]) st + (yy172 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy153 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy156 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy154 (st : tokenizer_state) : unit = +and yy157 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy170 [@tailcall]) st + (yy173 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy171 [@tailcall]) st + (yy174 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy154 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy157 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy155 (st : tokenizer_state) : unit = +and yy158 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy169 [@tailcall]) st + (yy172 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy155 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy158 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy156 (st : tokenizer_state) : unit = +and yy159 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy156 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy159 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy157 (st : tokenizer_state) : unit = +and yy160 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy157 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy160 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy158 (st : tokenizer_state) : unit = +and yy161 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy172 [@tailcall]) st + (yy175 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy158 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy161 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy159 (st : tokenizer_state) : unit = +and yy162 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy172 [@tailcall]) st + (yy175 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy159 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy162 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy160 (st : tokenizer_state) : unit = +and yy163 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy172 [@tailcall]) st + (yy175 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy160 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.refill st) then (yy163 [@tailcall]) st + else (yy152 [@tailcall]) st ) else ( - (yy149 [@tailcall]) st + (yy152 [@tailcall]) st ) -and yy161 (st : tokenizer_state) : unit = +and yy164 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy161 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy164 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy162 (st : tokenizer_state) : unit = +and yy165 (st : tokenizer_state) : unit = st.yycursor <- st.yymarker; - if (st.yyaccept == 0) then (yy143 [@tailcall]) st - else (yy149 [@tailcall]) st + if (st.yyaccept == 0) then (yy146 [@tailcall]) st + else (yy152 [@tailcall]) st -and yy163 (st : tokenizer_state) : unit = +and yy166 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy173 [@tailcall]) st + (yy176 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy163 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy166 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy164 (st : tokenizer_state) : unit = +and yy167 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy174 [@tailcall]) st + (yy177 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy175 [@tailcall]) st + (yy178 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy164 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy167 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy165 (st : tokenizer_state) : unit = +and yy168 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy173 [@tailcall]) st + (yy176 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy165 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy168 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy166 (st : tokenizer_state) : unit = +and yy169 (st : tokenizer_state) : unit = multiline_comment st 0; line_cont st -and yy167 (st : tokenizer_state) : unit = +and yy170 (st : tokenizer_state) : unit = singleline_comment st -and yy168 (st : tokenizer_state) : unit = +and yy171 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy168 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy171 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy169 (st : tokenizer_state) : unit = +and yy172 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy169 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy172 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy170 (st : tokenizer_state) : unit = +and yy173 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy144 [@tailcall]) st + (yy147 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy170 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy173 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy171 (st : tokenizer_state) : unit = +and yy174 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy140 [@tailcall]) st + (yy143 [@tailcall]) st | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy171 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy174 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy172 (st : tokenizer_state) : unit = +and yy175 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy168 [@tailcall]) st + (yy171 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy172 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy175 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy173 (st : tokenizer_state) : unit = +and yy176 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy173 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy176 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy174 (st : tokenizer_state) : unit = +and yy177 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy174 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy177 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy175 (st : tokenizer_state) : unit = +and yy178 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy142 [@tailcall]) st + (yy145 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy175 [@tailcall]) st - else (yy162 [@tailcall]) st + if (st.refill st) then (yy178 [@tailcall]) st + else (yy165 [@tailcall]) st ) else ( - (yy162 [@tailcall]) st + (yy165 [@tailcall]) st ) -and yy176 (st : tokenizer_state) : unit = +and yy179 (st : tokenizer_state) : unit = () -and line_cont_body (st : tokenizer_state) : unit = - (yy139 [@tailcall]) st +and line_cont (st : tokenizer_state) : unit = + (yy141 [@tailcall]) st -and line_cont st = save_start_position st; line_cont_body st +let rec yy180 (st : tokenizer_state) : unit = + save_start_position st; + (yy181 [@tailcall]) st -let rec yy177 (st : tokenizer_state) : unit = +and yy181 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -2891,77 +2907,77 @@ let rec yy177 (st : tokenizer_state) : unit = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy177 [@tailcall]) st - else (yy210 [@tailcall]) st + if (st.refill st) then (yy181 [@tailcall]) st + else (yy214 [@tailcall]) st ) else ( st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy181 [@tailcall]) st + (yy185 [@tailcall]) st | '\r' -> st.yycursor <- st.yycursor + 1; - (yy183 [@tailcall]) st + (yy187 [@tailcall]) st | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy186 [@tailcall]) st + (yy190 [@tailcall]) st | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy187 [@tailcall]) st + (yy191 [@tailcall]) st | '\xE0' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy188 [@tailcall]) st + (yy192 [@tailcall]) st | '\xE1' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy189 [@tailcall]) st + (yy193 [@tailcall]) st | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy190 [@tailcall]) st + (yy194 [@tailcall]) st | '\xE3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy191 [@tailcall]) st + (yy195 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy192 [@tailcall]) st + (yy196 [@tailcall]) st | '\xED' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy193 [@tailcall]) st + (yy197 [@tailcall]) st | '\xF0' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy194 [@tailcall]) st + (yy198 [@tailcall]) st | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy195 [@tailcall]) st + (yy199 [@tailcall]) st | '\xF4' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy196 [@tailcall]) st + (yy200 [@tailcall]) st | _ -> st.yycursor <- st.yycursor + 1; - (yy184 [@tailcall]) st + (yy188 [@tailcall]) st -and yy178 (st : tokenizer_state) : unit = +and yy182 (st : tokenizer_state) : unit = st.yycursor <- st.yyt1; () -and yy179 (st : tokenizer_state) : unit = +and yy183 (st : tokenizer_state) : unit = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -2969,109 +2985,109 @@ and yy179 (st : tokenizer_state) : unit = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy197 [@tailcall]) st + (yy201 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy199 [@tailcall]) st + (yy203 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy200 [@tailcall]) st + (yy204 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy201 [@tailcall]) st + (yy205 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy179 [@tailcall]) st - else (yy180 [@tailcall]) st + if (st.refill st) then (yy183 [@tailcall]) st + else (yy184 [@tailcall]) st ) else ( - (yy180 [@tailcall]) st + (yy184 [@tailcall]) st ) -and yy180 (st : tokenizer_state) : unit = +and yy184 (st : tokenizer_state) : unit = whitespace_escape st -and yy181 (st : tokenizer_state) : unit = - (yy182 [@tailcall]) st +and yy185 (st : tokenizer_state) : unit = + (yy186 [@tailcall]) st -and yy182 (st : tokenizer_state) : unit = +and yy186 (st : tokenizer_state) : unit = newline st; whitespace_escape st -and yy183 (st : tokenizer_state) : unit = +and yy187 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy181 [@tailcall]) st + (yy185 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy183 [@tailcall]) st - else (yy182 [@tailcall]) st + if (st.refill st) then (yy187 [@tailcall]) st + else (yy186 [@tailcall]) st ) else ( - (yy182 [@tailcall]) st + (yy186 [@tailcall]) st ) -and yy184 (st : tokenizer_state) : unit = - (yy185 [@tailcall]) st +and yy188 (st : tokenizer_state) : unit = + (yy189 [@tailcall]) st -and yy185 (st : tokenizer_state) : unit = +and yy189 (st : tokenizer_state) : unit = malformed_utf8 st -and yy186 (st : tokenizer_state) : unit = +and yy190 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy181 [@tailcall]) st + (yy185 [@tailcall]) st | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy186 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy190 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy187 (st : tokenizer_state) : unit = +and yy191 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy187 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy191 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy188 (st : tokenizer_state) : unit = +and yy192 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy188 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy192 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy189 (st : tokenizer_state) : unit = +and yy193 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -3079,540 +3095,718 @@ and yy189 (st : tokenizer_state) : unit = | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy203 [@tailcall]) st + (yy207 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy189 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy193 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy190 (st : tokenizer_state) : unit = +and yy194 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy204 [@tailcall]) st + (yy208 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy205 [@tailcall]) st + (yy209 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy190 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy194 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy191 (st : tokenizer_state) : unit = +and yy195 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy203 [@tailcall]) st + (yy207 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy191 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy195 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy192 (st : tokenizer_state) : unit = +and yy196 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy192 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy196 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy193 (st : tokenizer_state) : unit = +and yy197 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy193 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy197 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy194 (st : tokenizer_state) : unit = +and yy198 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy206 [@tailcall]) st + (yy210 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy194 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy198 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy195 (st : tokenizer_state) : unit = +and yy199 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy206 [@tailcall]) st + (yy210 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy195 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy199 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy196 (st : tokenizer_state) : unit = +and yy200 (st : tokenizer_state) : unit = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy206 [@tailcall]) st + (yy210 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy196 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.refill st) then (yy200 [@tailcall]) st + else (yy189 [@tailcall]) st ) else ( - (yy185 [@tailcall]) st + (yy189 [@tailcall]) st ) -and yy197 (st : tokenizer_state) : unit = +and yy201 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy197 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy201 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy198 (st : tokenizer_state) : unit = +and yy202 (st : tokenizer_state) : unit = st.yycursor <- st.yymarker; - if (st.yyaccept == 0) then (yy180 [@tailcall]) st - else (yy185 [@tailcall]) st + if (st.yyaccept == 0) then (yy184 [@tailcall]) st + else (yy189 [@tailcall]) st -and yy199 (st : tokenizer_state) : unit = +and yy203 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy207 [@tailcall]) st + (yy211 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy199 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy203 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy200 (st : tokenizer_state) : unit = +and yy204 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy208 [@tailcall]) st + (yy212 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy209 [@tailcall]) st + (yy213 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy200 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy204 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy201 (st : tokenizer_state) : unit = +and yy205 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy207 [@tailcall]) st + (yy211 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy201 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy205 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy202 (st : tokenizer_state) : unit = +and yy206 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy202 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy206 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy203 (st : tokenizer_state) : unit = +and yy207 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy203 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy207 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy204 (st : tokenizer_state) : unit = +and yy208 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy181 [@tailcall]) st + (yy185 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy204 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy208 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy205 (st : tokenizer_state) : unit = +and yy209 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy178 [@tailcall]) st + (yy182 [@tailcall]) st | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy205 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy209 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy206 (st : tokenizer_state) : unit = +and yy210 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy202 [@tailcall]) st + (yy206 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy206 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy210 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy207 (st : tokenizer_state) : unit = +and yy211 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy207 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy211 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy208 (st : tokenizer_state) : unit = +and yy212 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy208 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy212 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy209 (st : tokenizer_state) : unit = +and yy213 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy179 [@tailcall]) st + (yy183 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy209 [@tailcall]) st - else (yy198 [@tailcall]) st + if (st.refill st) then (yy213 [@tailcall]) st + else (yy202 [@tailcall]) st ) else ( - (yy198 [@tailcall]) st + (yy202 [@tailcall]) st ) -and yy210 (st : tokenizer_state) : unit = +and yy214 (st : tokenizer_state) : unit = () and whitespace_escape (st : tokenizer_state) : unit = - (yy177 [@tailcall]) st + (yy180 [@tailcall]) st -let rec yy211 (st : tokenizer_state) : unit = +let rec yy215 (st : tokenizer_state) : unit = + save_start_position st; + (yy216 [@tailcall]) st + +and yy216 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with + | '\x00' + | '\x01'..'\t' + | '\x0E'..'\x7F' -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy216 [@tailcall]) st + else (yy236 [@tailcall]) st + ) else ( + st.yycursor <- st.yycursor + 1; + (yy217 [@tailcall]) st + ) | '\n'..'\x0C' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy214 [@tailcall]) st + (yy218 [@tailcall]) st | '\r' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy216 [@tailcall]) st + (yy220 [@tailcall]) st | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy217 [@tailcall]) st + (yy223 [@tailcall]) st + | '\xC3'..'\xDF' -> + st.yycursor <- st.yycursor + 1; + (yy224 [@tailcall]) st + | '\xE0' -> + st.yycursor <- st.yycursor + 1; + (yy225 [@tailcall]) st + | '\xE1' + | '\xE3'..'\xEC' + | '\xEE'..'\xEF' -> + st.yycursor <- st.yycursor + 1; + (yy226 [@tailcall]) st | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy218 [@tailcall]) st + (yy227 [@tailcall]) st + | '\xED' -> + st.yycursor <- st.yycursor + 1; + (yy228 [@tailcall]) st + | '\xF0' -> + st.yycursor <- st.yycursor + 1; + (yy229 [@tailcall]) st + | '\xF1'..'\xF3' -> + st.yycursor <- st.yycursor + 1; + (yy230 [@tailcall]) st + | '\xF4' -> + st.yycursor <- st.yycursor + 1; + (yy231 [@tailcall]) st | _ -> - if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy211 [@tailcall]) st - else (yy221 [@tailcall]) st - ) else ( - st.yycursor <- st.yycursor + 1; - (yy212 [@tailcall]) st - ) - -and yy212 (st : tokenizer_state) : unit = - (yy213 [@tailcall]) st + st.yycursor <- st.yycursor + 1; + (yy221 [@tailcall]) st -and yy213 (st : tokenizer_state) : unit = +and yy217 (st : tokenizer_state) : unit = error st "A multiline string must start with newline" -and yy214 (st : tokenizer_state) : unit = - (yy215 [@tailcall]) st +and yy218 (st : tokenizer_state) : unit = + (yy219 [@tailcall]) st -and yy215 (st : tokenizer_state) : unit = +and yy219 (st : tokenizer_state) : unit = st.yycursor <- st.yyt1; () -and yy216 (st : tokenizer_state) : unit = +and yy220 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy214 [@tailcall]) st + (yy218 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy216 [@tailcall]) st - else (yy215 [@tailcall]) st + if (st.refill st) then (yy220 [@tailcall]) st + else (yy219 [@tailcall]) st ) else ( - (yy215 [@tailcall]) st + (yy219 [@tailcall]) st ) -and yy217 (st : tokenizer_state) : unit = +and yy221 (st : tokenizer_state) : unit = + (yy222 [@tailcall]) st + +and yy222 (st : tokenizer_state) : unit = + malformed_utf8 st + +and yy223 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with + | '\x80'..'\x84' + | '\x86'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy217 [@tailcall]) st | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy214 [@tailcall]) st + (yy218 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy217 [@tailcall]) st - else (yy213 [@tailcall]) st + if (st.refill st) then (yy223 [@tailcall]) st + else (yy222 [@tailcall]) st ) else ( - (yy213 [@tailcall]) st + (yy222 [@tailcall]) st ) -and yy218 (st : tokenizer_state) : unit = - st.yymarker <- st.yycursor; +and yy224 (st : tokenizer_state) : unit = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with - | '\x80' -> + | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy219 [@tailcall]) st + (yy217 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy218 [@tailcall]) st - else (yy213 [@tailcall]) st + if (st.refill st) then (yy224 [@tailcall]) st + else (yy222 [@tailcall]) st ) else ( - (yy213 [@tailcall]) st + (yy222 [@tailcall]) st ) -and yy219 (st : tokenizer_state) : unit = +and yy225 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with - | '\xA8'..'\xA9' -> + | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy214 [@tailcall]) st + (yy232 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy219 [@tailcall]) st - else (yy220 [@tailcall]) st + if (st.refill st) then (yy225 [@tailcall]) st + else (yy222 [@tailcall]) st ) else ( - (yy220 [@tailcall]) st + (yy222 [@tailcall]) st ) -and yy220 (st : tokenizer_state) : unit = - st.yycursor <- st.yymarker; - (yy213 [@tailcall]) st - -and yy221 (st : tokenizer_state) : unit = - error st "A multiline string must start with newline" - -and validate_multiline_start (st : tokenizer_state) : unit = - (yy211 [@tailcall]) st - - - -let validate_multiline_start st = - save_start_position st; - validate_multiline_start st - - -let rec yy222 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy226 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with - | '\n'..'\x0C' -> - st.yycursor <- st.yycursor + 1; - (yy225 [@tailcall]) st rollback_pos - | '\r' -> - st.yycursor <- st.yycursor + 1; - (yy227 [@tailcall]) st rollback_pos - | '"' -> - st.yycursor <- st.yycursor + 1; - (yy228 [@tailcall]) st rollback_pos - | '\\' -> + | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy229 [@tailcall]) st rollback_pos - | '\xC2' -> + (yy232 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy226 [@tailcall]) st + else (yy222 [@tailcall]) st + ) else ( + (yy222 [@tailcall]) st + ) + +and yy227 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy230 [@tailcall]) st rollback_pos - | '\xE2' -> + (yy234 [@tailcall]) st + | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy231 [@tailcall]) st rollback_pos + (yy232 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy222 [@tailcall]) st rollback_pos - else (yy273 [@tailcall]) st rollback_pos + if (st.refill st) then (yy227 [@tailcall]) st + else (yy222 [@tailcall]) st ) else ( - st.yycursor <- st.yycursor + 1; - (yy223 [@tailcall]) st rollback_pos + (yy222 [@tailcall]) st ) -and yy223 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = - (yy224 [@tailcall]) st rollback_pos - -and yy224 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = - detect_multiline_string_prefix st rollback_pos - -and yy225 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = - st.yyaccept <- 0; +and yy228 (st : tokenizer_state) : unit = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with - | '\t' - | ' ' -> - st.yyt1 <- st.yycursor; + | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos - | '"' -> - st.yyt1 <- st.yycursor; + (yy232 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy228 [@tailcall]) st + else (yy222 [@tailcall]) st + ) else ( + (yy222 [@tailcall]) st + ) + +and yy229 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x90'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy235 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy229 [@tailcall]) st + else (yy222 [@tailcall]) st + ) else ( + (yy222 [@tailcall]) st + ) + +and yy230 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy235 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy230 [@tailcall]) st + else (yy222 [@tailcall]) st + ) else ( + (yy222 [@tailcall]) st + ) + +and yy231 (st : tokenizer_state) : unit = + st.yymarker <- st.yycursor; + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80'..'\x8F' -> + st.yycursor <- st.yycursor + 1; + (yy235 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy231 [@tailcall]) st + else (yy222 [@tailcall]) st + ) else ( + (yy222 [@tailcall]) st + ) + +and yy232 (st : tokenizer_state) : unit = + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy217 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy232 [@tailcall]) st + else (yy233 [@tailcall]) st + ) else ( + (yy233 [@tailcall]) st + ) + +and yy233 (st : tokenizer_state) : unit = + st.yycursor <- st.yymarker; + (yy222 [@tailcall]) st + +and yy234 (st : tokenizer_state) : unit = + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80'..'\xA7' + | '\xAA'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy217 [@tailcall]) st + | '\xA8'..'\xA9' -> + st.yycursor <- st.yycursor + 1; + (yy218 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy234 [@tailcall]) st + else (yy233 [@tailcall]) st + ) else ( + (yy233 [@tailcall]) st + ) + +and yy235 (st : tokenizer_state) : unit = + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\x80'..'\xBF' -> + st.yycursor <- st.yycursor + 1; + (yy232 [@tailcall]) st + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy235 [@tailcall]) st + else (yy233 [@tailcall]) st + ) else ( + (yy233 [@tailcall]) st + ) + +and yy236 (st : tokenizer_state) : unit = + error st "A multiline string must start with newline" + +and validate_multiline_start (st : tokenizer_state) : unit = + (yy215 [@tailcall]) st + + + + +let rec yy237 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + save_start_position st; + (yy238 [@tailcall]) st rollback_pos + +and yy238 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\n'..'\x0C' -> + st.yycursor <- st.yycursor + 1; + (yy241 [@tailcall]) st rollback_pos + | '\r' -> + st.yycursor <- st.yycursor + 1; + (yy243 [@tailcall]) st rollback_pos + | '"' -> + st.yycursor <- st.yycursor + 1; + (yy244 [@tailcall]) st rollback_pos + | '\\' -> + st.yycursor <- st.yycursor + 1; + (yy245 [@tailcall]) st rollback_pos + | '\xC2' -> + st.yycursor <- st.yycursor + 1; + (yy246 [@tailcall]) st rollback_pos + | '\xE2' -> + st.yycursor <- st.yycursor + 1; + (yy247 [@tailcall]) st rollback_pos + | _ -> + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy238 [@tailcall]) st rollback_pos + else (yy289 [@tailcall]) st rollback_pos + ) else ( + st.yycursor <- st.yycursor + 1; + (yy239 [@tailcall]) st rollback_pos + ) + +and yy239 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + (yy240 [@tailcall]) st rollback_pos + +and yy240 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + detect_multiline_string_prefix st rollback_pos + +and yy241 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + st.yyaccept <- 0; + st.yymarker <- st.yycursor; + let yych = Bytes.unsafe_get st.yyinput st.yycursor in + match yych with + | '\t' + | ' ' -> + st.yyt1 <- st.yycursor; + st.yycursor <- st.yycursor + 1; + (yy248 [@tailcall]) st rollback_pos + | '"' -> + st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy234 [@tailcall]) st rollback_pos + (yy250 [@tailcall]) st rollback_pos | '\\' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy235 [@tailcall]) st rollback_pos + (yy251 [@tailcall]) st rollback_pos | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy236 [@tailcall]) st rollback_pos + (yy252 [@tailcall]) st rollback_pos | '\xE1' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy237 [@tailcall]) st rollback_pos + (yy253 [@tailcall]) st rollback_pos | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy238 [@tailcall]) st rollback_pos + (yy254 [@tailcall]) st rollback_pos | '\xE3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy239 [@tailcall]) st rollback_pos + (yy255 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy225 [@tailcall]) st rollback_pos - else (yy226 [@tailcall]) st rollback_pos + if (st.refill st) then (yy241 [@tailcall]) st rollback_pos + else (yy242 [@tailcall]) st rollback_pos ) else ( - (yy226 [@tailcall]) st rollback_pos + (yy242 [@tailcall]) st rollback_pos ) -and yy226 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy242 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = newline st; detect_multiline_string_prefix st rollback_pos -and yy227 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy243 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -3621,61 +3815,61 @@ and yy227 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | '\n' -> st.yycursor <- st.yycursor + 1; - (yy225 [@tailcall]) st rollback_pos + (yy241 [@tailcall]) st rollback_pos | '"' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy234 [@tailcall]) st rollback_pos + (yy250 [@tailcall]) st rollback_pos | '\\' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy235 [@tailcall]) st rollback_pos + (yy251 [@tailcall]) st rollback_pos | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy236 [@tailcall]) st rollback_pos + (yy252 [@tailcall]) st rollback_pos | '\xE1' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy237 [@tailcall]) st rollback_pos + (yy253 [@tailcall]) st rollback_pos | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy238 [@tailcall]) st rollback_pos + (yy254 [@tailcall]) st rollback_pos | '\xE3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy239 [@tailcall]) st rollback_pos + (yy255 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy227 [@tailcall]) st rollback_pos - else (yy226 [@tailcall]) st rollback_pos + if (st.refill st) then (yy243 [@tailcall]) st rollback_pos + else (yy242 [@tailcall]) st rollback_pos ) else ( - (yy226 [@tailcall]) st rollback_pos + (yy242 [@tailcall]) st rollback_pos ) -and yy228 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy244 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy240 [@tailcall]) st rollback_pos + (yy256 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy228 [@tailcall]) st rollback_pos - else (yy224 [@tailcall]) st rollback_pos + if (st.refill st) then (yy244 [@tailcall]) st rollback_pos + else (yy240 [@tailcall]) st rollback_pos ) else ( - (yy224 [@tailcall]) st rollback_pos + (yy240 [@tailcall]) st rollback_pos ) -and yy229 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy245 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -3683,210 +3877,210 @@ and yy229 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy243 [@tailcall]) st rollback_pos + (yy259 [@tailcall]) st rollback_pos | '\r' -> st.yycursor <- st.yycursor + 1; - (yy245 [@tailcall]) st rollback_pos + (yy261 [@tailcall]) st rollback_pos | '"' | '\\' -> st.yycursor <- st.yycursor + 1; - (yy246 [@tailcall]) st rollback_pos + (yy262 [@tailcall]) st rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy247 [@tailcall]) st rollback_pos + (yy263 [@tailcall]) st rollback_pos | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy248 [@tailcall]) st rollback_pos + (yy264 [@tailcall]) st rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy249 [@tailcall]) st rollback_pos + (yy265 [@tailcall]) st rollback_pos | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy250 [@tailcall]) st rollback_pos + (yy266 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy229 [@tailcall]) st rollback_pos - else (yy224 [@tailcall]) st rollback_pos + if (st.refill st) then (yy245 [@tailcall]) st rollback_pos + else (yy240 [@tailcall]) st rollback_pos ) else ( - (yy224 [@tailcall]) st rollback_pos + (yy240 [@tailcall]) st rollback_pos ) -and yy230 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy246 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy225 [@tailcall]) st rollback_pos + (yy241 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy230 [@tailcall]) st rollback_pos - else (yy224 [@tailcall]) st rollback_pos + if (st.refill st) then (yy246 [@tailcall]) st rollback_pos + else (yy240 [@tailcall]) st rollback_pos ) else ( - (yy224 [@tailcall]) st rollback_pos + (yy240 [@tailcall]) st rollback_pos ) -and yy231 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy247 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy251 [@tailcall]) st rollback_pos + (yy267 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy231 [@tailcall]) st rollback_pos - else (yy224 [@tailcall]) st rollback_pos + if (st.refill st) then (yy247 [@tailcall]) st rollback_pos + else (yy240 [@tailcall]) st rollback_pos ) else ( - (yy224 [@tailcall]) st rollback_pos + (yy240 [@tailcall]) st rollback_pos ) -and yy232 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy248 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | '"' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy234 [@tailcall]) st rollback_pos + (yy250 [@tailcall]) st rollback_pos | '\\' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy235 [@tailcall]) st rollback_pos + (yy251 [@tailcall]) st rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy236 [@tailcall]) st rollback_pos + (yy252 [@tailcall]) st rollback_pos | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy237 [@tailcall]) st rollback_pos + (yy253 [@tailcall]) st rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy238 [@tailcall]) st rollback_pos + (yy254 [@tailcall]) st rollback_pos | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy239 [@tailcall]) st rollback_pos + (yy255 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy232 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy248 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy233 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy249 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yycursor <- st.yymarker; match st.yyaccept with - | 0 -> (yy226 [@tailcall]) st rollback_pos - | 1 -> (yy224 [@tailcall]) st rollback_pos - | _ -> (yy242 [@tailcall]) st rollback_pos + | 0 -> (yy242 [@tailcall]) st rollback_pos + | 1 -> (yy240 [@tailcall]) st rollback_pos + | _ -> (yy258 [@tailcall]) st rollback_pos -and yy234 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy250 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy252 [@tailcall]) st rollback_pos + (yy268 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy234 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy250 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy235 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy251 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' | '"' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy235 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy251 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) - | _ -> (yy254 [@tailcall]) st rollback_pos yych + | _ -> (yy270 [@tailcall]) st rollback_pos yych -and yy236 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy252 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy236 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy252 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy237 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy253 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy259 [@tailcall]) st rollback_pos + (yy275 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy237 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy253 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy238 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy254 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy260 [@tailcall]) st rollback_pos + (yy276 [@tailcall]) st rollback_pos | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy261 [@tailcall]) st rollback_pos + (yy277 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy238 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy254 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy239 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy255 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy259 [@tailcall]) st rollback_pos + (yy275 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy239 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy255 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy240 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy256 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy262 [@tailcall]) st rollback_pos + (yy278 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy240 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy256 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy241 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy257 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -3894,367 +4088,367 @@ and yy241 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy263 [@tailcall]) st rollback_pos + (yy279 [@tailcall]) st rollback_pos | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy248 [@tailcall]) st rollback_pos + (yy264 [@tailcall]) st rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy264 [@tailcall]) st rollback_pos + (yy280 [@tailcall]) st rollback_pos | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy250 [@tailcall]) st rollback_pos + (yy266 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy241 [@tailcall]) st rollback_pos - else (yy242 [@tailcall]) st rollback_pos + if (st.refill st) then (yy257 [@tailcall]) st rollback_pos + else (yy258 [@tailcall]) st rollback_pos ) else ( - (yy242 [@tailcall]) st rollback_pos + (yy258 [@tailcall]) st rollback_pos ) -and yy242 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy258 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = whitespace_escape st; detect_multiline_string_prefix st rollback_pos -and yy243 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = - (yy244 [@tailcall]) st rollback_pos +and yy259 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + (yy260 [@tailcall]) st rollback_pos -and yy244 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy260 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = newline st; whitespace_escape st; detect_multiline_string_prefix st rollback_pos -and yy245 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy261 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy243 [@tailcall]) st rollback_pos + (yy259 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy245 [@tailcall]) st rollback_pos - else (yy244 [@tailcall]) st rollback_pos + if (st.refill st) then (yy261 [@tailcall]) st rollback_pos + else (yy260 [@tailcall]) st rollback_pos ) else ( - (yy244 [@tailcall]) st rollback_pos + (yy260 [@tailcall]) st rollback_pos ) -and yy246 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy262 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = detect_multiline_string_prefix st rollback_pos -and yy247 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy263 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy243 [@tailcall]) st rollback_pos + (yy259 [@tailcall]) st rollback_pos | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy247 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy263 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy248 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy264 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy265 [@tailcall]) st rollback_pos + (yy281 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy248 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy264 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy249 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy265 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy266 [@tailcall]) st rollback_pos + (yy282 [@tailcall]) st rollback_pos | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy267 [@tailcall]) st rollback_pos + (yy283 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy249 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy265 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy250 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy266 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy265 [@tailcall]) st rollback_pos + (yy281 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy250 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy266 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy251 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy267 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy225 [@tailcall]) st rollback_pos + (yy241 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy251 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy267 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy252 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy268 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy268 [@tailcall]) st rollback_pos + (yy284 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy252 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy268 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy253 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy269 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in - (yy254 [@tailcall]) st rollback_pos yych + (yy270 [@tailcall]) st rollback_pos yych -and yy254 (st : tokenizer_state) (rollback_pos : Lexing.position) (yych : char) : string = +and yy270 (st : tokenizer_state) (rollback_pos : Lexing.position) (yych : char) : string = match yych with | '\t'..'\r' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy253 [@tailcall]) st rollback_pos + (yy269 [@tailcall]) st rollback_pos | '"' -> st.yycursor <- st.yycursor + 1; - (yy234 [@tailcall]) st rollback_pos + (yy250 [@tailcall]) st rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy255 [@tailcall]) st rollback_pos + (yy271 [@tailcall]) st rollback_pos | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy256 [@tailcall]) st rollback_pos + (yy272 [@tailcall]) st rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy257 [@tailcall]) st rollback_pos + (yy273 [@tailcall]) st rollback_pos | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy258 [@tailcall]) st rollback_pos + (yy274 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy253 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy269 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy255 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy271 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x85' | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy253 [@tailcall]) st rollback_pos + (yy269 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy255 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy271 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy256 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy272 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy269 [@tailcall]) st rollback_pos + (yy285 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy256 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy272 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy257 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy273 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy270 [@tailcall]) st rollback_pos + (yy286 [@tailcall]) st rollback_pos | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy271 [@tailcall]) st rollback_pos + (yy287 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy257 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy273 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy258 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy274 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy269 [@tailcall]) st rollback_pos + (yy285 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy258 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy274 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy259 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy275 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy259 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy275 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy260 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy276 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy260 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy276 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy261 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy277 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy232 [@tailcall]) st rollback_pos + (yy248 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy261 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy277 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy262 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy278 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = rollback_start_to_newline st; error st "Invalid multiline string: non-whitespace prefix" -and yy263 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy279 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy263 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy279 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy264 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy280 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy272 [@tailcall]) st rollback_pos + (yy288 [@tailcall]) st rollback_pos | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy267 [@tailcall]) st rollback_pos + (yy283 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy264 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy280 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy265 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy281 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy265 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy281 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy266 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy282 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy243 [@tailcall]) st rollback_pos + (yy259 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy266 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy282 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy267 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy283 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy267 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy283 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy268 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy284 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = st.t1 <- st.yyt1; st.t2 <- st.yyt2; @@ -4262,112 +4456,112 @@ and yy268 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = substr st st.t1 st.t2 -and yy269 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy285 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy253 [@tailcall]) st rollback_pos + (yy269 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy269 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy285 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy270 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy286 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xA8'..'\xA9' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy253 [@tailcall]) st rollback_pos + (yy269 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy270 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy286 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy271 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy287 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy253 [@tailcall]) st rollback_pos + (yy269 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy271 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy287 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy272 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy288 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy241 [@tailcall]) st rollback_pos + (yy257 [@tailcall]) st rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy272 [@tailcall]) st rollback_pos - else (yy233 [@tailcall]) st rollback_pos + if (st.refill st) then (yy288 [@tailcall]) st rollback_pos + else (yy249 [@tailcall]) st rollback_pos ) else ( - (yy233 [@tailcall]) st rollback_pos + (yy249 [@tailcall]) st rollback_pos ) -and yy273 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = +and yy289 (st : tokenizer_state) (rollback_pos : Lexing.position) : string = error st "Unterminated multiline string" -and detect_multiline_string_prefix_body (st : tokenizer_state) (rollback_pos : Lexing.position) : string = - (yy222 [@tailcall]) st rollback_pos +and detect_multiline_string_prefix (st : tokenizer_state) (rollback_pos : Lexing.position) : string = + (yy237 [@tailcall]) st rollback_pos -and detect_multiline_string_prefix st rollback_pos = - save_start_position st; - detect_multiline_string_prefix_body st rollback_pos +let rec yy290 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = + save_start_position st; + (yy291 [@tailcall]) st exp_hashlen rollback_pos -let rec yy274 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy291 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy277 [@tailcall]) st exp_hashlen rollback_pos + (yy294 [@tailcall]) st exp_hashlen rollback_pos | '\r' -> st.yycursor <- st.yycursor + 1; - (yy279 [@tailcall]) st exp_hashlen rollback_pos + (yy296 [@tailcall]) st exp_hashlen rollback_pos | '"' -> st.yycursor <- st.yycursor + 1; - (yy280 [@tailcall]) st exp_hashlen rollback_pos + (yy297 [@tailcall]) st exp_hashlen rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy281 [@tailcall]) st exp_hashlen rollback_pos + (yy298 [@tailcall]) st exp_hashlen rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy282 [@tailcall]) st exp_hashlen rollback_pos + (yy299 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy274 [@tailcall]) st exp_hashlen rollback_pos - else (yy302 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy291 [@tailcall]) st exp_hashlen rollback_pos + else (yy319 [@tailcall]) st exp_hashlen rollback_pos ) else ( st.yycursor <- st.yycursor + 1; - (yy275 [@tailcall]) st exp_hashlen rollback_pos + (yy292 [@tailcall]) st exp_hashlen rollback_pos ) -and yy275 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = - (yy276 [@tailcall]) st exp_hashlen rollback_pos +and yy292 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = + (yy293 [@tailcall]) st exp_hashlen rollback_pos -and yy276 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy293 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = detect_raw_multiline_string_prefix st exp_hashlen rollback_pos -and yy277 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy294 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -4376,39 +4570,39 @@ and yy277 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.posi | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | '"' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy285 [@tailcall]) st exp_hashlen rollback_pos + (yy302 [@tailcall]) st exp_hashlen rollback_pos | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy286 [@tailcall]) st exp_hashlen rollback_pos + (yy303 [@tailcall]) st exp_hashlen rollback_pos | '\xE1' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy287 [@tailcall]) st exp_hashlen rollback_pos + (yy304 [@tailcall]) st exp_hashlen rollback_pos | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy288 [@tailcall]) st exp_hashlen rollback_pos + (yy305 [@tailcall]) st exp_hashlen rollback_pos | '\xE3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy289 [@tailcall]) st exp_hashlen rollback_pos + (yy306 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy277 [@tailcall]) st exp_hashlen rollback_pos - else (yy278 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy294 [@tailcall]) st exp_hashlen rollback_pos + else (yy295 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy278 [@tailcall]) st exp_hashlen rollback_pos + (yy295 [@tailcall]) st exp_hashlen rollback_pos ) -and yy278 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy295 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = newline st; detect_raw_multiline_string_prefix st exp_hashlen rollback_pos -and yy279 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy296 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -4417,322 +4611,322 @@ and yy279 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.posi | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | '\n' -> st.yycursor <- st.yycursor + 1; - (yy277 [@tailcall]) st exp_hashlen rollback_pos + (yy294 [@tailcall]) st exp_hashlen rollback_pos | '"' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy285 [@tailcall]) st exp_hashlen rollback_pos + (yy302 [@tailcall]) st exp_hashlen rollback_pos | '\xC2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy286 [@tailcall]) st exp_hashlen rollback_pos + (yy303 [@tailcall]) st exp_hashlen rollback_pos | '\xE1' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy287 [@tailcall]) st exp_hashlen rollback_pos + (yy304 [@tailcall]) st exp_hashlen rollback_pos | '\xE2' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy288 [@tailcall]) st exp_hashlen rollback_pos + (yy305 [@tailcall]) st exp_hashlen rollback_pos | '\xE3' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy289 [@tailcall]) st exp_hashlen rollback_pos + (yy306 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy279 [@tailcall]) st exp_hashlen rollback_pos - else (yy278 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy296 [@tailcall]) st exp_hashlen rollback_pos + else (yy295 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy278 [@tailcall]) st exp_hashlen rollback_pos + (yy295 [@tailcall]) st exp_hashlen rollback_pos ) -and yy280 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy297 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy290 [@tailcall]) st exp_hashlen rollback_pos + (yy307 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy280 [@tailcall]) st exp_hashlen rollback_pos - else (yy276 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy297 [@tailcall]) st exp_hashlen rollback_pos + else (yy293 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy276 [@tailcall]) st exp_hashlen rollback_pos + (yy293 [@tailcall]) st exp_hashlen rollback_pos ) -and yy281 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy298 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy277 [@tailcall]) st exp_hashlen rollback_pos + (yy294 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy281 [@tailcall]) st exp_hashlen rollback_pos - else (yy276 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy298 [@tailcall]) st exp_hashlen rollback_pos + else (yy293 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy276 [@tailcall]) st exp_hashlen rollback_pos + (yy293 [@tailcall]) st exp_hashlen rollback_pos ) -and yy282 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy299 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy291 [@tailcall]) st exp_hashlen rollback_pos + (yy308 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy282 [@tailcall]) st exp_hashlen rollback_pos - else (yy276 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy299 [@tailcall]) st exp_hashlen rollback_pos + else (yy293 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy276 [@tailcall]) st exp_hashlen rollback_pos + (yy293 [@tailcall]) st exp_hashlen rollback_pos ) -and yy283 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy300 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | '"' -> st.yycursor <- st.yycursor + 1; - (yy285 [@tailcall]) st exp_hashlen rollback_pos + (yy302 [@tailcall]) st exp_hashlen rollback_pos | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy286 [@tailcall]) st exp_hashlen rollback_pos + (yy303 [@tailcall]) st exp_hashlen rollback_pos | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy287 [@tailcall]) st exp_hashlen rollback_pos + (yy304 [@tailcall]) st exp_hashlen rollback_pos | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy288 [@tailcall]) st exp_hashlen rollback_pos + (yy305 [@tailcall]) st exp_hashlen rollback_pos | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy289 [@tailcall]) st exp_hashlen rollback_pos + (yy306 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy283 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy300 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy284 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy301 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.yycursor <- st.yymarker; - if (st.yyaccept == 0) then (yy278 [@tailcall]) st exp_hashlen rollback_pos - else (yy276 [@tailcall]) st exp_hashlen rollback_pos + if (st.yyaccept == 0) then (yy295 [@tailcall]) st exp_hashlen rollback_pos + else (yy293 [@tailcall]) st exp_hashlen rollback_pos -and yy285 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy302 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy292 [@tailcall]) st exp_hashlen rollback_pos + (yy309 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy285 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy302 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy286 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy303 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy286 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy303 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy287 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy304 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy293 [@tailcall]) st exp_hashlen rollback_pos + (yy310 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy287 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy304 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy288 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy305 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy294 [@tailcall]) st exp_hashlen rollback_pos + (yy311 [@tailcall]) st exp_hashlen rollback_pos | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy295 [@tailcall]) st exp_hashlen rollback_pos + (yy312 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy288 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy305 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy289 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy306 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy293 [@tailcall]) st exp_hashlen rollback_pos + (yy310 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy289 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy306 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy290 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy307 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy296 [@tailcall]) st exp_hashlen rollback_pos + (yy313 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy290 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy307 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy291 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy308 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy277 [@tailcall]) st exp_hashlen rollback_pos + (yy294 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy291 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy308 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy292 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy309 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy297 [@tailcall]) st exp_hashlen rollback_pos + (yy314 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy292 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy309 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy293 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy310 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy293 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy310 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy294 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy311 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy294 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy311 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy295 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy312 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy283 [@tailcall]) st exp_hashlen rollback_pos + (yy300 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy295 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy312 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy296 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy313 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy298 [@tailcall]) st exp_hashlen rollback_pos + (yy315 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy296 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy313 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy297 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy314 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy300 [@tailcall]) st exp_hashlen rollback_pos + (yy317 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy297 [@tailcall]) st exp_hashlen rollback_pos - else (yy284 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy314 [@tailcall]) st exp_hashlen rollback_pos + else (yy301 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy284 [@tailcall]) st exp_hashlen rollback_pos + (yy301 [@tailcall]) st exp_hashlen rollback_pos ) -and yy298 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy315 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yycursor <- st.yycursor + 1; - (yy298 [@tailcall]) st exp_hashlen rollback_pos + (yy315 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy298 [@tailcall]) st exp_hashlen rollback_pos - else (yy299 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy315 [@tailcall]) st exp_hashlen rollback_pos + else (yy316 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy299 [@tailcall]) st exp_hashlen rollback_pos + (yy316 [@tailcall]) st exp_hashlen rollback_pos ) -and yy299 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy316 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.t1 <- st.yyt1; if st.yycursor - st.t1 >= exp_hashlen then begin @@ -4741,21 +4935,21 @@ and yy299 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.posi end else detect_raw_multiline_string_prefix st exp_hashlen rollback_pos -and yy300 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy317 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yycursor <- st.yycursor + 1; - (yy300 [@tailcall]) st exp_hashlen rollback_pos + (yy317 [@tailcall]) st exp_hashlen rollback_pos | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy300 [@tailcall]) st exp_hashlen rollback_pos - else (yy301 [@tailcall]) st exp_hashlen rollback_pos + if (st.refill st) then (yy317 [@tailcall]) st exp_hashlen rollback_pos + else (yy318 [@tailcall]) st exp_hashlen rollback_pos ) else ( - (yy301 [@tailcall]) st exp_hashlen rollback_pos + (yy318 [@tailcall]) st exp_hashlen rollback_pos ) -and yy301 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy318 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = st.t1 <- st.yyt1; st.t3 <- st.yyt2; st.t2 <- st.yyt2; @@ -4767,18 +4961,14 @@ and yy301 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.posi end else detect_raw_multiline_string_prefix st exp_hashlen rollback_pos -and yy302 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = +and yy319 (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = error st "Unterminated raw multiline string" -and detect_raw_multiline_string_prefix_body (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = - (yy274 [@tailcall]) st exp_hashlen rollback_pos +and detect_raw_multiline_string_prefix (st : tokenizer_state) (exp_hashlen : int) (rollback_pos : Lexing.position) : string = + (yy290 [@tailcall]) st exp_hashlen rollback_pos -and detect_raw_multiline_string_prefix st exp_hashlen rollback_pos = - save_start_position st; - detect_raw_multiline_string_prefix_body st exp_hashlen rollback_pos - let multiline_prefix_check st prefix = let { t1; t2; yyinput; _ } = st in newline ~pos:t1 st; @@ -4801,7 +4991,11 @@ let multiline_contents strbuf = if len <= 1 then "" else Buffer.sub strbuf 1 (len - 2) -let rec yy304 (st : tokenizer_state) (prefix : string) : token = +let rec yy321 (st : tokenizer_state) (prefix : string) : token = + save_start_position st; + (yy322 [@tailcall]) st prefix + +and yy322 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -4809,76 +5003,76 @@ let rec yy304 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy304 [@tailcall]) st prefix - else (yy393 [@tailcall]) st prefix + if (st.refill st) then (yy322 [@tailcall]) st prefix + else (yy411 [@tailcall]) st prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy305 [@tailcall]) st prefix + (yy323 [@tailcall]) st prefix ) | '\t' | ' '..'!' | '#'..'[' | ']'..'~' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy308 [@tailcall]) st prefix + (yy326 [@tailcall]) st prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy310 [@tailcall]) st prefix + (yy328 [@tailcall]) st prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy311 [@tailcall]) st prefix + (yy329 [@tailcall]) st prefix | '\\' -> st.yycursor <- st.yycursor + 1; - (yy312 [@tailcall]) st prefix + (yy330 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy315 [@tailcall]) st prefix + (yy333 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy316 [@tailcall]) st prefix + (yy334 [@tailcall]) st prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy317 [@tailcall]) st prefix + (yy335 [@tailcall]) st prefix | '\xE1' | '\xE3'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy318 [@tailcall]) st prefix + (yy336 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy319 [@tailcall]) st prefix + (yy337 [@tailcall]) st prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy320 [@tailcall]) st prefix + (yy338 [@tailcall]) st prefix | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy321 [@tailcall]) st prefix + (yy339 [@tailcall]) st prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy322 [@tailcall]) st prefix + (yy340 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy323 [@tailcall]) st prefix + (yy341 [@tailcall]) st prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy324 [@tailcall]) st prefix + (yy342 [@tailcall]) st prefix | _ -> st.yycursor <- st.yycursor + 1; - (yy313 [@tailcall]) st prefix + (yy331 [@tailcall]) st prefix -and yy305 (st : tokenizer_state) (prefix : string) : token = +and yy323 (st : tokenizer_state) (prefix : string) : token = error st "Illegal character" -and yy306 (st : tokenizer_state) (prefix : string) : token = - (yy307 [@tailcall]) st prefix +and yy324 (st : tokenizer_state) (prefix : string) : token = + (yy325 [@tailcall]) st prefix -and yy307 (st : tokenizer_state) (prefix : string) : token = - add_lexeme_to_buf st st.info.strbuf; yyfnmulti' st prefix +and yy325 (st : tokenizer_state) (prefix : string) : token = + add_lexeme_to_buf st st.info.strbuf; yyfnmulti st prefix -and yy308 (st : tokenizer_state) (prefix : string) : token = +and yy326 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -4888,91 +5082,91 @@ and yy308 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy308 [@tailcall]) st prefix - else (yy309 [@tailcall]) st prefix + if (st.refill st) then (yy326 [@tailcall]) st prefix + else (yy327 [@tailcall]) st prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy330 [@tailcall]) st prefix + (yy348 [@tailcall]) st prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy331 [@tailcall]) st prefix + (yy349 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy333 [@tailcall]) st prefix + (yy351 [@tailcall]) st prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy334 [@tailcall]) st prefix + (yy352 [@tailcall]) st prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy335 [@tailcall]) st prefix + (yy353 [@tailcall]) st prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy336 [@tailcall]) st prefix + (yy354 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy338 [@tailcall]) st prefix + (yy356 [@tailcall]) st prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy339 [@tailcall]) st prefix + (yy357 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy340 [@tailcall]) st prefix + (yy358 [@tailcall]) st prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy341 [@tailcall]) st prefix - | _ -> (yy309 [@tailcall]) st prefix + (yy359 [@tailcall]) st prefix + | _ -> (yy327 [@tailcall]) st prefix -and yy309 (st : tokenizer_state) (prefix : string) : token = - newline st; yyfnmulti' st prefix +and yy327 (st : tokenizer_state) (prefix : string) : token = + newline st; yyfnmulti st prefix -and yy310 (st : tokenizer_state) (prefix : string) : token = +and yy328 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -4982,109 +5176,109 @@ and yy310 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy310 [@tailcall]) st prefix - else (yy309 [@tailcall]) st prefix + if (st.refill st) then (yy328 [@tailcall]) st prefix + else (yy327 [@tailcall]) st prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\n' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy342 [@tailcall]) st prefix + (yy360 [@tailcall]) st prefix | '\x0B'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy330 [@tailcall]) st prefix + (yy348 [@tailcall]) st prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy331 [@tailcall]) st prefix + (yy349 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy333 [@tailcall]) st prefix + (yy351 [@tailcall]) st prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy334 [@tailcall]) st prefix + (yy352 [@tailcall]) st prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy335 [@tailcall]) st prefix + (yy353 [@tailcall]) st prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy336 [@tailcall]) st prefix + (yy354 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy338 [@tailcall]) st prefix + (yy356 [@tailcall]) st prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy339 [@tailcall]) st prefix + (yy357 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy340 [@tailcall]) st prefix + (yy358 [@tailcall]) st prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy341 [@tailcall]) st prefix - | _ -> (yy309 [@tailcall]) st prefix + (yy359 [@tailcall]) st prefix + | _ -> (yy327 [@tailcall]) st prefix -and yy311 (st : tokenizer_state) (prefix : string) : token = +and yy329 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy343 [@tailcall]) st prefix + (yy361 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy311 [@tailcall]) st prefix - else (yy307 [@tailcall]) st prefix + if (st.refill st) then (yy329 [@tailcall]) st prefix + else (yy325 [@tailcall]) st prefix ) else ( - (yy307 [@tailcall]) st prefix + (yy325 [@tailcall]) st prefix ) -and yy312 (st : tokenizer_state) (prefix : string) : token = +and yy330 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -5100,194 +5294,194 @@ and yy312 (st : tokenizer_state) (prefix : string) : token = | 'o'..'q' | 'v'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy312 [@tailcall]) st prefix - else (yy307 [@tailcall]) st prefix + if (st.refill st) then (yy330 [@tailcall]) st prefix + else (yy325 [@tailcall]) st prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy348 [@tailcall]) st prefix + (yy366 [@tailcall]) st prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy350 [@tailcall]) st prefix + (yy368 [@tailcall]) st prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy351 [@tailcall]) st prefix + (yy369 [@tailcall]) st prefix | '\\' -> st.yycursor <- st.yycursor + 1; - (yy352 [@tailcall]) st prefix + (yy370 [@tailcall]) st prefix | 'b' -> st.yycursor <- st.yycursor + 1; - (yy353 [@tailcall]) st prefix + (yy371 [@tailcall]) st prefix | 'f' -> st.yycursor <- st.yycursor + 1; - (yy354 [@tailcall]) st prefix + (yy372 [@tailcall]) st prefix | 'n' -> st.yycursor <- st.yycursor + 1; - (yy355 [@tailcall]) st prefix + (yy373 [@tailcall]) st prefix | 'r' -> st.yycursor <- st.yycursor + 1; - (yy356 [@tailcall]) st prefix + (yy374 [@tailcall]) st prefix | 's' -> st.yycursor <- st.yycursor + 1; - (yy357 [@tailcall]) st prefix + (yy375 [@tailcall]) st prefix | 't' -> st.yycursor <- st.yycursor + 1; - (yy358 [@tailcall]) st prefix + (yy376 [@tailcall]) st prefix | 'u' -> st.yycursor <- st.yycursor + 1; - (yy359 [@tailcall]) st prefix + (yy377 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy360 [@tailcall]) st prefix + (yy378 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy362 [@tailcall]) st prefix + (yy380 [@tailcall]) st prefix | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy363 [@tailcall]) st prefix + (yy381 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy364 [@tailcall]) st prefix + (yy382 [@tailcall]) st prefix | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy365 [@tailcall]) st prefix + (yy383 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy366 [@tailcall]) st prefix + (yy384 [@tailcall]) st prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy367 [@tailcall]) st prefix + (yy385 [@tailcall]) st prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy368 [@tailcall]) st prefix + (yy386 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy369 [@tailcall]) st prefix + (yy387 [@tailcall]) st prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy370 [@tailcall]) st prefix - | _ -> (yy307 [@tailcall]) st prefix + (yy388 [@tailcall]) st prefix + | _ -> (yy325 [@tailcall]) st prefix -and yy313 (st : tokenizer_state) (prefix : string) : token = - (yy314 [@tailcall]) st prefix +and yy331 (st : tokenizer_state) (prefix : string) : token = + (yy332 [@tailcall]) st prefix -and yy314 (st : tokenizer_state) (prefix : string) : token = +and yy332 (st : tokenizer_state) (prefix : string) : token = malformed_utf8 st -and yy315 (st : tokenizer_state) (prefix : string) : token = +and yy333 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy308 [@tailcall]) st prefix + (yy326 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy315 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy333 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy316 (st : tokenizer_state) (prefix : string) : token = +and yy334 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy316 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy334 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy317 (st : tokenizer_state) (prefix : string) : token = +and yy335 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy317 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy335 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy318 (st : tokenizer_state) (prefix : string) : token = +and yy336 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy318 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy336 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy319 (st : tokenizer_state) (prefix : string) : token = +and yy337 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy372 [@tailcall]) st prefix + (yy390 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy373 [@tailcall]) st prefix + (yy391 [@tailcall]) st prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy319 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy337 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy320 (st : tokenizer_state) (prefix : string) : token = +and yy338 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy320 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy338 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy321 (st : tokenizer_state) (prefix : string) : token = +and yy339 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -5295,76 +5489,76 @@ and yy321 (st : tokenizer_state) (prefix : string) : token = | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy374 [@tailcall]) st prefix + (yy392 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy321 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy339 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy322 (st : tokenizer_state) (prefix : string) : token = +and yy340 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy375 [@tailcall]) st prefix + (yy393 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy322 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy340 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy323 (st : tokenizer_state) (prefix : string) : token = +and yy341 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy375 [@tailcall]) st prefix + (yy393 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy323 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy341 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy324 (st : tokenizer_state) (prefix : string) : token = +and yy342 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy375 [@tailcall]) st prefix + (yy393 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy324 [@tailcall]) st prefix - else (yy314 [@tailcall]) st prefix + if (st.refill st) then (yy342 [@tailcall]) st prefix + else (yy332 [@tailcall]) st prefix ) else ( - (yy314 [@tailcall]) st prefix + (yy332 [@tailcall]) st prefix ) -and yy325 (st : tokenizer_state) (prefix : string) : token = +and yy343 (st : tokenizer_state) (prefix : string) : token = st.t1 <- st.yyt1; st.t2 <- st.yyt2; st.yycursor <- st.yyt2; multiline_prefix_check st prefix; - yyfnmulti' st prefix + yyfnmulti st prefix -and yy326 (st : tokenizer_state) (prefix : string) : token = +and yy344 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -5372,86 +5566,86 @@ and yy326 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy326 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy344 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | '\r' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy330 [@tailcall]) st prefix + (yy348 [@tailcall]) st prefix | '\xC2' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy331 [@tailcall]) st prefix + (yy349 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | '\xE0' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy333 [@tailcall]) st prefix + (yy351 [@tailcall]) st prefix | '\xE1' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy334 [@tailcall]) st prefix + (yy352 [@tailcall]) st prefix | '\xE2' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy335 [@tailcall]) st prefix + (yy353 [@tailcall]) st prefix | '\xE3' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy336 [@tailcall]) st prefix + (yy354 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | '\xED' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy338 [@tailcall]) st prefix + (yy356 [@tailcall]) st prefix | '\xF0' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy339 [@tailcall]) st prefix + (yy357 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy340 [@tailcall]) st prefix + (yy358 [@tailcall]) st prefix | '\xF4' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy341 [@tailcall]) st prefix - | _ -> (yy327 [@tailcall]) st prefix + (yy359 [@tailcall]) st prefix + | _ -> (yy345 [@tailcall]) st prefix -and yy327 (st : tokenizer_state) (prefix : string) : token = +and yy345 (st : tokenizer_state) (prefix : string) : token = st.yycursor <- st.yymarker; match st.yyaccept with - | 0 -> (yy309 [@tailcall]) st prefix - | 1 -> (yy307 [@tailcall]) st prefix - | 2 -> (yy314 [@tailcall]) st prefix - | 3 -> (yy329 [@tailcall]) st prefix - | 4 -> (yy347 [@tailcall]) st prefix - | _ -> (yy345 [@tailcall]) st prefix + | 0 -> (yy327 [@tailcall]) st prefix + | 1 -> (yy325 [@tailcall]) st prefix + | 2 -> (yy332 [@tailcall]) st prefix + | 3 -> (yy347 [@tailcall]) st prefix + | 4 -> (yy365 [@tailcall]) st prefix + | _ -> (yy363 [@tailcall]) st prefix -and yy328 (st : tokenizer_state) (prefix : string) : token = - (yy329 [@tailcall]) st prefix +and yy346 (st : tokenizer_state) (prefix : string) : token = + (yy347 [@tailcall]) st prefix -and yy329 (st : tokenizer_state) (prefix : string) : token = +and yy347 (st : tokenizer_state) (prefix : string) : token = st.t1 <- st.yyt1; st.yycursor <- st.yyt2; @@ -5459,199 +5653,199 @@ and yy329 (st : tokenizer_state) (prefix : string) : token = (* Any newline is normalized to \n *) Buffer.add_char st.info.strbuf '\n'; (* Skip lines consisting of any whitespace only (do not check the prefix) *) - yyfnmulti' st prefix + yyfnmulti st prefix -and yy330 (st : tokenizer_state) (prefix : string) : token = +and yy348 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy330 [@tailcall]) st prefix - else (yy329 [@tailcall]) st prefix + if (st.refill st) then (yy348 [@tailcall]) st prefix + else (yy347 [@tailcall]) st prefix ) else ( - (yy329 [@tailcall]) st prefix + (yy347 [@tailcall]) st prefix ) -and yy331 (st : tokenizer_state) (prefix : string) : token = +and yy349 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy331 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy349 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy332 (st : tokenizer_state) (prefix : string) : token = +and yy350 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy332 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy350 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy333 (st : tokenizer_state) (prefix : string) : token = +and yy351 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy333 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy351 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy334 (st : tokenizer_state) (prefix : string) : token = +and yy352 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy376 [@tailcall]) st prefix + (yy394 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy334 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy352 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy335 (st : tokenizer_state) (prefix : string) : token = +and yy353 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy377 [@tailcall]) st prefix + (yy395 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy378 [@tailcall]) st prefix + (yy396 [@tailcall]) st prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy335 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy353 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy336 (st : tokenizer_state) (prefix : string) : token = +and yy354 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy376 [@tailcall]) st prefix + (yy394 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy336 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy354 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy337 (st : tokenizer_state) (prefix : string) : token = +and yy355 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy337 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy355 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy338 (st : tokenizer_state) (prefix : string) : token = +and yy356 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy338 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy356 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy339 (st : tokenizer_state) (prefix : string) : token = +and yy357 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy339 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy357 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy340 (st : tokenizer_state) (prefix : string) : token = +and yy358 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy340 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy358 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy341 (st : tokenizer_state) (prefix : string) : token = +and yy359 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy341 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy359 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy342 (st : tokenizer_state) (prefix : string) : token = +and yy360 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 3; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -5661,108 +5855,108 @@ and yy342 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy342 [@tailcall]) st prefix - else (yy329 [@tailcall]) st prefix + if (st.refill st) then (yy360 [@tailcall]) st prefix + else (yy347 [@tailcall]) st prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy330 [@tailcall]) st prefix + (yy348 [@tailcall]) st prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy331 [@tailcall]) st prefix + (yy349 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy332 [@tailcall]) st prefix + (yy350 [@tailcall]) st prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy333 [@tailcall]) st prefix + (yy351 [@tailcall]) st prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy334 [@tailcall]) st prefix + (yy352 [@tailcall]) st prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy335 [@tailcall]) st prefix + (yy353 [@tailcall]) st prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy336 [@tailcall]) st prefix + (yy354 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy337 [@tailcall]) st prefix + (yy355 [@tailcall]) st prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy338 [@tailcall]) st prefix + (yy356 [@tailcall]) st prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy339 [@tailcall]) st prefix + (yy357 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy340 [@tailcall]) st prefix + (yy358 [@tailcall]) st prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy341 [@tailcall]) st prefix - | _ -> (yy329 [@tailcall]) st prefix + (yy359 [@tailcall]) st prefix + | _ -> (yy347 [@tailcall]) st prefix -and yy343 (st : tokenizer_state) (prefix : string) : token = +and yy361 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy379 [@tailcall]) st prefix + (yy397 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy343 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy361 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy344 (st : tokenizer_state) (prefix : string) : token = - (yy345 [@tailcall]) st prefix +and yy362 (st : tokenizer_state) (prefix : string) : token = + (yy363 [@tailcall]) st prefix -and yy345 (st : tokenizer_state) (prefix : string) : token = +and yy363 (st : tokenizer_state) (prefix : string) : token = error st "Invalid escape sequence" -and yy346 (st : tokenizer_state) (prefix : string) : token = +and yy364 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -5770,476 +5964,476 @@ and yy346 (st : tokenizer_state) (prefix : string) : token = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy380 [@tailcall]) st prefix + (yy398 [@tailcall]) st prefix | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy381 [@tailcall]) st prefix + (yy399 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy382 [@tailcall]) st prefix + (yy400 [@tailcall]) st prefix | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy383 [@tailcall]) st prefix + (yy401 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy346 [@tailcall]) st prefix - else (yy347 [@tailcall]) st prefix + if (st.refill st) then (yy364 [@tailcall]) st prefix + else (yy365 [@tailcall]) st prefix ) else ( - (yy347 [@tailcall]) st prefix + (yy365 [@tailcall]) st prefix ) -and yy347 (st : tokenizer_state) (prefix : string) : token = +and yy365 (st : tokenizer_state) (prefix : string) : token = whitespace_escape st; string st prefix -and yy348 (st : tokenizer_state) (prefix : string) : token = - (yy349 [@tailcall]) st prefix +and yy366 (st : tokenizer_state) (prefix : string) : token = + (yy367 [@tailcall]) st prefix -and yy349 (st : tokenizer_state) (prefix : string) : token = +and yy367 (st : tokenizer_state) (prefix : string) : token = newline st; whitespace_escape st; string st prefix -and yy350 (st : tokenizer_state) (prefix : string) : token = +and yy368 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy348 [@tailcall]) st prefix + (yy366 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy350 [@tailcall]) st prefix - else (yy349 [@tailcall]) st prefix + if (st.refill st) then (yy368 [@tailcall]) st prefix + else (yy367 [@tailcall]) st prefix ) else ( - (yy349 [@tailcall]) st prefix + (yy367 [@tailcall]) st prefix ) -and yy351 (st : tokenizer_state) (prefix : string) : token = +and yy369 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '"'; string st prefix -and yy352 (st : tokenizer_state) (prefix : string) : token = +and yy370 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\\'; string st prefix -and yy353 (st : tokenizer_state) (prefix : string) : token = +and yy371 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\b'; string st prefix -and yy354 (st : tokenizer_state) (prefix : string) : token = +and yy372 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\012'; string st prefix -and yy355 (st : tokenizer_state) (prefix : string) : token = +and yy373 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\n'; string st prefix -and yy356 (st : tokenizer_state) (prefix : string) : token = +and yy374 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\r'; string st prefix -and yy357 (st : tokenizer_state) (prefix : string) : token = +and yy375 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf ' '; string st prefix -and yy358 (st : tokenizer_state) (prefix : string) : token = +and yy376 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\t'; string st prefix -and yy359 (st : tokenizer_state) (prefix : string) : token = +and yy377 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '{' -> st.yycursor <- st.yycursor + 1; - (yy384 [@tailcall]) st prefix + (yy402 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy359 [@tailcall]) st prefix - else (yy345 [@tailcall]) st prefix + if (st.refill st) then (yy377 [@tailcall]) st prefix + else (yy363 [@tailcall]) st prefix ) else ( - (yy345 [@tailcall]) st prefix + (yy363 [@tailcall]) st prefix ) -and yy360 (st : tokenizer_state) (prefix : string) : token = +and yy378 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy348 [@tailcall]) st prefix + (yy366 [@tailcall]) st prefix | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy360 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy378 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy361 (st : tokenizer_state) (prefix : string) : token = +and yy379 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy361 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy379 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy362 (st : tokenizer_state) (prefix : string) : token = +and yy380 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy362 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy380 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy363 (st : tokenizer_state) (prefix : string) : token = +and yy381 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy385 [@tailcall]) st prefix + (yy403 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy363 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy381 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy364 (st : tokenizer_state) (prefix : string) : token = +and yy382 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy386 [@tailcall]) st prefix + (yy404 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy387 [@tailcall]) st prefix + (yy405 [@tailcall]) st prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy364 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy382 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy365 (st : tokenizer_state) (prefix : string) : token = +and yy383 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy385 [@tailcall]) st prefix + (yy403 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy365 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy383 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy366 (st : tokenizer_state) (prefix : string) : token = +and yy384 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy366 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy384 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy367 (st : tokenizer_state) (prefix : string) : token = +and yy385 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy361 [@tailcall]) st prefix + (yy379 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy367 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy385 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy368 (st : tokenizer_state) (prefix : string) : token = +and yy386 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy366 [@tailcall]) st prefix + (yy384 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy368 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy386 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy369 (st : tokenizer_state) (prefix : string) : token = +and yy387 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy366 [@tailcall]) st prefix + (yy384 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy369 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy387 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy370 (st : tokenizer_state) (prefix : string) : token = +and yy388 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy366 [@tailcall]) st prefix + (yy384 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy370 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy388 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy371 (st : tokenizer_state) (prefix : string) : token = +and yy389 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy371 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy389 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy372 (st : tokenizer_state) (prefix : string) : token = +and yy390 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8D' | '\x90'..'\xA7' | '\xAF'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | '\x8E'..'\x8F' | '\xAA'..'\xAE' -> st.yycursor <- st.yycursor + 1; - (yy305 [@tailcall]) st prefix + (yy323 [@tailcall]) st prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy308 [@tailcall]) st prefix + (yy326 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy372 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy390 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy373 (st : tokenizer_state) (prefix : string) : token = +and yy391 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | '\xA6'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy305 [@tailcall]) st prefix + (yy323 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy373 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy391 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy374 (st : tokenizer_state) (prefix : string) : token = +and yy392 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy306 [@tailcall]) st prefix + (yy324 [@tailcall]) st prefix | '\xBF' -> st.yycursor <- st.yycursor + 1; - (yy305 [@tailcall]) st prefix + (yy323 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy374 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy392 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy375 (st : tokenizer_state) (prefix : string) : token = +and yy393 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy371 [@tailcall]) st prefix + (yy389 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy375 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy393 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy376 (st : tokenizer_state) (prefix : string) : token = +and yy394 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy376 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy394 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy377 (st : tokenizer_state) (prefix : string) : token = +and yy395 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy328 [@tailcall]) st prefix + (yy346 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy377 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy395 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy378 (st : tokenizer_state) (prefix : string) : token = +and yy396 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy325 [@tailcall]) st prefix + (yy343 [@tailcall]) st prefix | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy326 [@tailcall]) st prefix + (yy344 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy378 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy396 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy379 (st : tokenizer_state) (prefix : string) : token = +and yy397 (st : tokenizer_state) (prefix : string) : token = QUOTED_STRING (multiline_contents st.info.strbuf) -and yy380 (st : tokenizer_state) (prefix : string) : token = +and yy398 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy380 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy398 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy381 (st : tokenizer_state) (prefix : string) : token = +and yy399 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy388 [@tailcall]) st prefix + (yy406 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy381 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy399 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy382 (st : tokenizer_state) (prefix : string) : token = +and yy400 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy389 [@tailcall]) st prefix + (yy407 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy390 [@tailcall]) st prefix + (yy408 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy382 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy400 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy383 (st : tokenizer_state) (prefix : string) : token = +and yy401 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy388 [@tailcall]) st prefix + (yy406 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy383 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy401 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy384 (st : tokenizer_state) (prefix : string) : token = +and yy402 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '0'..'9' @@ -6247,136 +6441,136 @@ and yy384 (st : tokenizer_state) (prefix : string) : token = | 'a'..'f' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy391 [@tailcall]) st prefix + (yy409 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy384 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy402 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy385 (st : tokenizer_state) (prefix : string) : token = +and yy403 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy385 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy403 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy386 (st : tokenizer_state) (prefix : string) : token = +and yy404 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy348 [@tailcall]) st prefix + (yy366 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy386 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy404 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy387 (st : tokenizer_state) (prefix : string) : token = +and yy405 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy344 [@tailcall]) st prefix + (yy362 [@tailcall]) st prefix | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy387 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy405 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy388 (st : tokenizer_state) (prefix : string) : token = +and yy406 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy388 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy406 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy389 (st : tokenizer_state) (prefix : string) : token = +and yy407 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy389 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy407 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy390 (st : tokenizer_state) (prefix : string) : token = +and yy408 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy346 [@tailcall]) st prefix + (yy364 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy390 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy408 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy391 (st : tokenizer_state) (prefix : string) : token = +and yy409 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '0'..'9' | 'A'..'F' | 'a'..'f' -> st.yycursor <- st.yycursor + 1; - (yy391 [@tailcall]) st prefix + (yy409 [@tailcall]) st prefix | '}' -> st.yycursor <- st.yycursor + 1; - (yy392 [@tailcall]) st prefix + (yy410 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy391 [@tailcall]) st prefix - else (yy327 [@tailcall]) st prefix + if (st.refill st) then (yy409 [@tailcall]) st prefix + else (yy345 [@tailcall]) st prefix ) else ( - (yy327 [@tailcall]) st prefix + (yy345 [@tailcall]) st prefix ) -and yy392 (st : tokenizer_state) (prefix : string) : token = +and yy410 (st : tokenizer_state) (prefix : string) : token = st.t1 <- st.yyt1; st.t2 <- st.yycursor; st.t2 <- st.t2 - 1; @@ -6392,13 +6586,17 @@ and yy392 (st : tokenizer_state) (prefix : string) : token = string st prefix -and yy393 (st : tokenizer_state) (prefix : string) : token = +and yy411 (st : tokenizer_state) (prefix : string) : token = error st "Unterminated string" and yyfnmulti (st : tokenizer_state) (prefix : string) : token = - (yy304 [@tailcall]) st prefix + (yy321 [@tailcall]) st prefix -and yy394 (st : tokenizer_state) (prefix : string) : token = +and yy412 (st : tokenizer_state) (prefix : string) : token = + save_start_position st; + (yy413 [@tailcall]) st prefix + +and yy413 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -6406,99 +6604,99 @@ and yy394 (st : tokenizer_state) (prefix : string) : token = | '\x0E'..'\x1F' | '\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy394 [@tailcall]) st prefix - else (yy461 [@tailcall]) st prefix + if (st.refill st) then (yy413 [@tailcall]) st prefix + else (yy480 [@tailcall]) st prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy395 [@tailcall]) st prefix + (yy414 [@tailcall]) st prefix ) | '\t' | ' '..'!' | '#'..'[' | ']'..'~' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy398 [@tailcall]) st prefix + (yy417 [@tailcall]) st prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy400 [@tailcall]) st prefix + (yy419 [@tailcall]) st prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy401 [@tailcall]) st prefix + (yy420 [@tailcall]) st prefix | '\\' -> st.yycursor <- st.yycursor + 1; - (yy402 [@tailcall]) st prefix + (yy421 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy405 [@tailcall]) st prefix + (yy424 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy406 [@tailcall]) st prefix + (yy425 [@tailcall]) st prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy407 [@tailcall]) st prefix + (yy426 [@tailcall]) st prefix | '\xE1' | '\xE3'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy408 [@tailcall]) st prefix + (yy427 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy409 [@tailcall]) st prefix + (yy428 [@tailcall]) st prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy410 [@tailcall]) st prefix + (yy429 [@tailcall]) st prefix | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy411 [@tailcall]) st prefix + (yy430 [@tailcall]) st prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy412 [@tailcall]) st prefix + (yy431 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy413 [@tailcall]) st prefix + (yy432 [@tailcall]) st prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy414 [@tailcall]) st prefix + (yy433 [@tailcall]) st prefix | _ -> st.yycursor <- st.yycursor + 1; - (yy403 [@tailcall]) st prefix + (yy422 [@tailcall]) st prefix -and yy395 (st : tokenizer_state) (prefix : string) : token = +and yy414 (st : tokenizer_state) (prefix : string) : token = error st "Illegal character" -and yy396 (st : tokenizer_state) (prefix : string) : token = - (yy397 [@tailcall]) st prefix +and yy415 (st : tokenizer_state) (prefix : string) : token = + (yy416 [@tailcall]) st prefix -and yy397 (st : tokenizer_state) (prefix : string) : token = - add_lexeme_to_buf st st.info.strbuf; yyfnsingle' st prefix +and yy416 (st : tokenizer_state) (prefix : string) : token = + add_lexeme_to_buf st st.info.strbuf; yyfnsingle st prefix -and yy398 (st : tokenizer_state) (prefix : string) : token = - (yy399 [@tailcall]) st prefix +and yy417 (st : tokenizer_state) (prefix : string) : token = + (yy418 [@tailcall]) st prefix -and yy399 (st : tokenizer_state) (prefix : string) : token = +and yy418 (st : tokenizer_state) (prefix : string) : token = newline st; error st "Unterminated string" -and yy400 (st : tokenizer_state) (prefix : string) : token = +and yy419 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy398 [@tailcall]) st prefix + (yy417 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy400 [@tailcall]) st prefix - else (yy399 [@tailcall]) st prefix + if (st.refill st) then (yy419 [@tailcall]) st prefix + else (yy418 [@tailcall]) st prefix ) else ( - (yy399 [@tailcall]) st prefix + (yy418 [@tailcall]) st prefix ) -and yy401 (st : tokenizer_state) (prefix : string) : token = +and yy420 (st : tokenizer_state) (prefix : string) : token = QUOTED_STRING (Buffer.contents st.info.strbuf) -and yy402 (st : tokenizer_state) (prefix : string) : token = +and yy421 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -6514,194 +6712,194 @@ and yy402 (st : tokenizer_state) (prefix : string) : token = | 'o'..'q' | 'v'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy402 [@tailcall]) st prefix - else (yy397 [@tailcall]) st prefix + if (st.refill st) then (yy421 [@tailcall]) st prefix + else (yy416 [@tailcall]) st prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy419 [@tailcall]) st prefix + (yy438 [@tailcall]) st prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy421 [@tailcall]) st prefix + (yy440 [@tailcall]) st prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy422 [@tailcall]) st prefix + (yy441 [@tailcall]) st prefix | '\\' -> st.yycursor <- st.yycursor + 1; - (yy423 [@tailcall]) st prefix + (yy442 [@tailcall]) st prefix | 'b' -> st.yycursor <- st.yycursor + 1; - (yy424 [@tailcall]) st prefix + (yy443 [@tailcall]) st prefix | 'f' -> st.yycursor <- st.yycursor + 1; - (yy425 [@tailcall]) st prefix + (yy444 [@tailcall]) st prefix | 'n' -> st.yycursor <- st.yycursor + 1; - (yy426 [@tailcall]) st prefix + (yy445 [@tailcall]) st prefix | 'r' -> st.yycursor <- st.yycursor + 1; - (yy427 [@tailcall]) st prefix + (yy446 [@tailcall]) st prefix | 's' -> st.yycursor <- st.yycursor + 1; - (yy428 [@tailcall]) st prefix + (yy447 [@tailcall]) st prefix | 't' -> st.yycursor <- st.yycursor + 1; - (yy429 [@tailcall]) st prefix + (yy448 [@tailcall]) st prefix | 'u' -> st.yycursor <- st.yycursor + 1; - (yy430 [@tailcall]) st prefix + (yy449 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy431 [@tailcall]) st prefix + (yy450 [@tailcall]) st prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy434 [@tailcall]) st prefix + (yy453 [@tailcall]) st prefix | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy435 [@tailcall]) st prefix + (yy454 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy436 [@tailcall]) st prefix + (yy455 [@tailcall]) st prefix | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy437 [@tailcall]) st prefix + (yy456 [@tailcall]) st prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yycursor <- st.yycursor + 1; - (yy438 [@tailcall]) st prefix + (yy457 [@tailcall]) st prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy439 [@tailcall]) st prefix + (yy458 [@tailcall]) st prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy440 [@tailcall]) st prefix + (yy459 [@tailcall]) st prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy441 [@tailcall]) st prefix + (yy460 [@tailcall]) st prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy442 [@tailcall]) st prefix - | _ -> (yy397 [@tailcall]) st prefix + (yy461 [@tailcall]) st prefix + | _ -> (yy416 [@tailcall]) st prefix -and yy403 (st : tokenizer_state) (prefix : string) : token = - (yy404 [@tailcall]) st prefix +and yy422 (st : tokenizer_state) (prefix : string) : token = + (yy423 [@tailcall]) st prefix -and yy404 (st : tokenizer_state) (prefix : string) : token = +and yy423 (st : tokenizer_state) (prefix : string) : token = malformed_utf8 st -and yy405 (st : tokenizer_state) (prefix : string) : token = +and yy424 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy398 [@tailcall]) st prefix + (yy417 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy405 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy424 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy406 (st : tokenizer_state) (prefix : string) : token = +and yy425 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy406 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy425 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy407 (st : tokenizer_state) (prefix : string) : token = +and yy426 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy407 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy426 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy408 (st : tokenizer_state) (prefix : string) : token = +and yy427 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy408 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy427 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy409 (st : tokenizer_state) (prefix : string) : token = +and yy428 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy444 [@tailcall]) st prefix + (yy463 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy445 [@tailcall]) st prefix + (yy464 [@tailcall]) st prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy409 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy428 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy410 (st : tokenizer_state) (prefix : string) : token = +and yy429 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy410 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy429 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy411 (st : tokenizer_state) (prefix : string) : token = +and yy430 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -6709,73 +6907,73 @@ and yy411 (st : tokenizer_state) (prefix : string) : token = | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy446 [@tailcall]) st prefix + (yy465 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy411 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy430 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy412 (st : tokenizer_state) (prefix : string) : token = +and yy431 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy447 [@tailcall]) st prefix + (yy466 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy412 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy431 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy413 (st : tokenizer_state) (prefix : string) : token = +and yy432 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy447 [@tailcall]) st prefix + (yy466 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy413 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy432 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy414 (st : tokenizer_state) (prefix : string) : token = +and yy433 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy447 [@tailcall]) st prefix + (yy466 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy414 [@tailcall]) st prefix - else (yy404 [@tailcall]) st prefix + if (st.refill st) then (yy433 [@tailcall]) st prefix + else (yy423 [@tailcall]) st prefix ) else ( - (yy404 [@tailcall]) st prefix + (yy423 [@tailcall]) st prefix ) -and yy415 (st : tokenizer_state) (prefix : string) : token = - (yy416 [@tailcall]) st prefix +and yy434 (st : tokenizer_state) (prefix : string) : token = + (yy435 [@tailcall]) st prefix -and yy416 (st : tokenizer_state) (prefix : string) : token = +and yy435 (st : tokenizer_state) (prefix : string) : token = error st "Invalid escape sequence" -and yy417 (st : tokenizer_state) (prefix : string) : token = +and yy436 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -6783,423 +6981,423 @@ and yy417 (st : tokenizer_state) (prefix : string) : token = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy448 [@tailcall]) st prefix + (yy467 [@tailcall]) st prefix | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy449 [@tailcall]) st prefix + (yy468 [@tailcall]) st prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy450 [@tailcall]) st prefix + (yy469 [@tailcall]) st prefix | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy451 [@tailcall]) st prefix + (yy470 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy417 [@tailcall]) st prefix - else (yy418 [@tailcall]) st prefix + if (st.refill st) then (yy436 [@tailcall]) st prefix + else (yy437 [@tailcall]) st prefix ) else ( - (yy418 [@tailcall]) st prefix + (yy437 [@tailcall]) st prefix ) -and yy418 (st : tokenizer_state) (prefix : string) : token = +and yy437 (st : tokenizer_state) (prefix : string) : token = whitespace_escape st; string st prefix -and yy419 (st : tokenizer_state) (prefix : string) : token = - (yy420 [@tailcall]) st prefix +and yy438 (st : tokenizer_state) (prefix : string) : token = + (yy439 [@tailcall]) st prefix -and yy420 (st : tokenizer_state) (prefix : string) : token = +and yy439 (st : tokenizer_state) (prefix : string) : token = newline st; whitespace_escape st; string st prefix -and yy421 (st : tokenizer_state) (prefix : string) : token = +and yy440 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy419 [@tailcall]) st prefix + (yy438 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy421 [@tailcall]) st prefix - else (yy420 [@tailcall]) st prefix + if (st.refill st) then (yy440 [@tailcall]) st prefix + else (yy439 [@tailcall]) st prefix ) else ( - (yy420 [@tailcall]) st prefix + (yy439 [@tailcall]) st prefix ) -and yy422 (st : tokenizer_state) (prefix : string) : token = +and yy441 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '"'; string st prefix -and yy423 (st : tokenizer_state) (prefix : string) : token = +and yy442 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\\'; string st prefix -and yy424 (st : tokenizer_state) (prefix : string) : token = +and yy443 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\b'; string st prefix -and yy425 (st : tokenizer_state) (prefix : string) : token = +and yy444 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\012'; string st prefix -and yy426 (st : tokenizer_state) (prefix : string) : token = +and yy445 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\n'; string st prefix -and yy427 (st : tokenizer_state) (prefix : string) : token = +and yy446 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\r'; string st prefix -and yy428 (st : tokenizer_state) (prefix : string) : token = +and yy447 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf ' '; string st prefix -and yy429 (st : tokenizer_state) (prefix : string) : token = +and yy448 (st : tokenizer_state) (prefix : string) : token = Buffer.add_char st.info.strbuf '\t'; string st prefix -and yy430 (st : tokenizer_state) (prefix : string) : token = +and yy449 (st : tokenizer_state) (prefix : string) : token = st.yyaccept <- 3; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '{' -> st.yycursor <- st.yycursor + 1; - (yy452 [@tailcall]) st prefix + (yy471 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy430 [@tailcall]) st prefix - else (yy416 [@tailcall]) st prefix + if (st.refill st) then (yy449 [@tailcall]) st prefix + else (yy435 [@tailcall]) st prefix ) else ( - (yy416 [@tailcall]) st prefix + (yy435 [@tailcall]) st prefix ) -and yy431 (st : tokenizer_state) (prefix : string) : token = +and yy450 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy419 [@tailcall]) st prefix + (yy438 [@tailcall]) st prefix | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy431 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy450 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy432 (st : tokenizer_state) (prefix : string) : token = +and yy451 (st : tokenizer_state) (prefix : string) : token = st.yycursor <- st.yymarker; match st.yyaccept with - | 0 -> (yy397 [@tailcall]) st prefix - | 1 -> (yy404 [@tailcall]) st prefix - | 2 -> (yy418 [@tailcall]) st prefix - | _ -> (yy416 [@tailcall]) st prefix + | 0 -> (yy416 [@tailcall]) st prefix + | 1 -> (yy423 [@tailcall]) st prefix + | 2 -> (yy437 [@tailcall]) st prefix + | _ -> (yy435 [@tailcall]) st prefix -and yy433 (st : tokenizer_state) (prefix : string) : token = +and yy452 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy433 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy452 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy434 (st : tokenizer_state) (prefix : string) : token = +and yy453 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy434 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy453 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy435 (st : tokenizer_state) (prefix : string) : token = +and yy454 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy453 [@tailcall]) st prefix + (yy472 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy435 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy454 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy436 (st : tokenizer_state) (prefix : string) : token = +and yy455 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy454 [@tailcall]) st prefix + (yy473 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy455 [@tailcall]) st prefix + (yy474 [@tailcall]) st prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy436 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy455 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy437 (st : tokenizer_state) (prefix : string) : token = +and yy456 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy453 [@tailcall]) st prefix + (yy472 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy437 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy456 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy438 (st : tokenizer_state) (prefix : string) : token = +and yy457 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy438 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy457 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy439 (st : tokenizer_state) (prefix : string) : token = +and yy458 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy433 [@tailcall]) st prefix + (yy452 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy439 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy458 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy440 (st : tokenizer_state) (prefix : string) : token = +and yy459 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy438 [@tailcall]) st prefix + (yy457 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy440 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy459 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy441 (st : tokenizer_state) (prefix : string) : token = +and yy460 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy438 [@tailcall]) st prefix + (yy457 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy441 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy460 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy442 (st : tokenizer_state) (prefix : string) : token = +and yy461 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy438 [@tailcall]) st prefix + (yy457 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy442 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy461 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy443 (st : tokenizer_state) (prefix : string) : token = +and yy462 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy443 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy462 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy444 (st : tokenizer_state) (prefix : string) : token = +and yy463 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8D' | '\x90'..'\xA7' | '\xAF'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | '\x8E'..'\x8F' | '\xAA'..'\xAE' -> st.yycursor <- st.yycursor + 1; - (yy395 [@tailcall]) st prefix + (yy414 [@tailcall]) st prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy398 [@tailcall]) st prefix + (yy417 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy444 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy463 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy445 (st : tokenizer_state) (prefix : string) : token = +and yy464 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | '\xA6'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy395 [@tailcall]) st prefix + (yy414 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy445 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy464 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy446 (st : tokenizer_state) (prefix : string) : token = +and yy465 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy396 [@tailcall]) st prefix + (yy415 [@tailcall]) st prefix | '\xBF' -> st.yycursor <- st.yycursor + 1; - (yy395 [@tailcall]) st prefix + (yy414 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy446 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy465 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy447 (st : tokenizer_state) (prefix : string) : token = +and yy466 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy443 [@tailcall]) st prefix + (yy462 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy447 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy466 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy448 (st : tokenizer_state) (prefix : string) : token = +and yy467 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy448 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy467 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy449 (st : tokenizer_state) (prefix : string) : token = +and yy468 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy456 [@tailcall]) st prefix + (yy475 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy449 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy468 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy450 (st : tokenizer_state) (prefix : string) : token = +and yy469 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy457 [@tailcall]) st prefix + (yy476 [@tailcall]) st prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy458 [@tailcall]) st prefix + (yy477 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy450 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy469 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy451 (st : tokenizer_state) (prefix : string) : token = +and yy470 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy456 [@tailcall]) st prefix + (yy475 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy451 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy470 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy452 (st : tokenizer_state) (prefix : string) : token = +and yy471 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '0'..'9' @@ -7207,136 +7405,136 @@ and yy452 (st : tokenizer_state) (prefix : string) : token = | 'a'..'f' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy459 [@tailcall]) st prefix + (yy478 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy452 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy471 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy453 (st : tokenizer_state) (prefix : string) : token = +and yy472 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy453 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy472 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy454 (st : tokenizer_state) (prefix : string) : token = +and yy473 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy419 [@tailcall]) st prefix + (yy438 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy454 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy473 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy455 (st : tokenizer_state) (prefix : string) : token = +and yy474 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy415 [@tailcall]) st prefix + (yy434 [@tailcall]) st prefix | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy455 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy474 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy456 (st : tokenizer_state) (prefix : string) : token = +and yy475 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy456 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy475 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy457 (st : tokenizer_state) (prefix : string) : token = +and yy476 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy457 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy476 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy458 (st : tokenizer_state) (prefix : string) : token = +and yy477 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy417 [@tailcall]) st prefix + (yy436 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy458 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy477 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy459 (st : tokenizer_state) (prefix : string) : token = +and yy478 (st : tokenizer_state) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '0'..'9' | 'A'..'F' | 'a'..'f' -> st.yycursor <- st.yycursor + 1; - (yy459 [@tailcall]) st prefix + (yy478 [@tailcall]) st prefix | '}' -> st.yycursor <- st.yycursor + 1; - (yy460 [@tailcall]) st prefix + (yy479 [@tailcall]) st prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy459 [@tailcall]) st prefix - else (yy432 [@tailcall]) st prefix + if (st.refill st) then (yy478 [@tailcall]) st prefix + else (yy451 [@tailcall]) st prefix ) else ( - (yy432 [@tailcall]) st prefix + (yy451 [@tailcall]) st prefix ) -and yy460 (st : tokenizer_state) (prefix : string) : token = +and yy479 (st : tokenizer_state) (prefix : string) : token = st.t1 <- st.yyt1; st.t2 <- st.yycursor; st.t2 <- st.t2 - 1; @@ -7352,26 +7550,22 @@ and yy460 (st : tokenizer_state) (prefix : string) : token = string st prefix -and yy461 (st : tokenizer_state) (prefix : string) : token = +and yy480 (st : tokenizer_state) (prefix : string) : token = error st "Unterminated string" and yyfnsingle (st : tokenizer_state) (prefix : string) : token = - (yy394 [@tailcall]) st prefix + (yy412 [@tailcall]) st prefix -and yy303 (st : tokenizer_state) (prefix : string) : token = +and yy320 (st : tokenizer_state) (prefix : string) : token = match st.yycond with | YYC_multi -> (yyfnmulti [@tailcall]) st prefix | YYC_single -> (yyfnsingle [@tailcall]) st prefix -and string_body (st : tokenizer_state) (prefix : string) : token = - (yy303 [@tailcall]) st prefix +and string (st : tokenizer_state) (prefix : string) : token = + (yy320 [@tailcall]) st prefix -and yyfnsingle' st prefix = save_start_position st; yyfnsingle st prefix -and yyfnmulti' st prefix = save_start_position st; yyfnmulti st prefix -and string st prefix = save_start_position st; string_body st prefix - let string_multiline st = validate_multiline_start st; let prefix = detect_multiline_string_prefix st (make_lexing_end_pos st) in @@ -7391,7 +7585,11 @@ let check_hashlen st exp_hashlen = true -let rec yy463 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +let rec yy482 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + save_start_position st; + (yy483 [@tailcall]) st exp_hashlen prefix + +and yy483 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -7399,72 +7597,72 @@ let rec yy463 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : tok | '\x0E'..'\x1F' | '\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy463 [@tailcall]) st exp_hashlen prefix - else (yy513 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy483 [@tailcall]) st exp_hashlen prefix + else (yy533 [@tailcall]) st exp_hashlen prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy464 [@tailcall]) st exp_hashlen prefix + (yy484 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' '..'!' | '#'..'~' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy467 [@tailcall]) st exp_hashlen prefix + (yy487 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy469 [@tailcall]) st exp_hashlen prefix + (yy489 [@tailcall]) st exp_hashlen prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy470 [@tailcall]) st exp_hashlen prefix + (yy490 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy473 [@tailcall]) st exp_hashlen prefix + (yy493 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy474 [@tailcall]) st exp_hashlen prefix + (yy494 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy475 [@tailcall]) st exp_hashlen prefix + (yy495 [@tailcall]) st exp_hashlen prefix | '\xE1' | '\xE3'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy476 [@tailcall]) st exp_hashlen prefix + (yy496 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy477 [@tailcall]) st exp_hashlen prefix + (yy497 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy478 [@tailcall]) st exp_hashlen prefix + (yy498 [@tailcall]) st exp_hashlen prefix | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy479 [@tailcall]) st exp_hashlen prefix + (yy499 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy480 [@tailcall]) st exp_hashlen prefix + (yy500 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy481 [@tailcall]) st exp_hashlen prefix + (yy501 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy482 [@tailcall]) st exp_hashlen prefix + (yy502 [@tailcall]) st exp_hashlen prefix | _ -> st.yycursor <- st.yycursor + 1; - (yy471 [@tailcall]) st exp_hashlen prefix + (yy491 [@tailcall]) st exp_hashlen prefix -and yy464 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy484 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = error st "Illegal character" -and yy465 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy466 [@tailcall]) st exp_hashlen prefix +and yy485 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy486 [@tailcall]) st exp_hashlen prefix -and yy466 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - add_lexeme_to_buf st st.info.strbuf; yyfnrmulti' st exp_hashlen prefix +and yy486 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + add_lexeme_to_buf st st.info.strbuf; yyfnrmulti st exp_hashlen prefix -and yy467 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy487 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -7474,91 +7672,91 @@ and yy467 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy467 [@tailcall]) st exp_hashlen prefix - else (yy468 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy487 [@tailcall]) st exp_hashlen prefix + else (yy488 [@tailcall]) st exp_hashlen prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\n'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy488 [@tailcall]) st exp_hashlen prefix + (yy508 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy489 [@tailcall]) st exp_hashlen prefix + (yy509 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy491 [@tailcall]) st exp_hashlen prefix + (yy511 [@tailcall]) st exp_hashlen prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy492 [@tailcall]) st exp_hashlen prefix + (yy512 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy493 [@tailcall]) st exp_hashlen prefix + (yy513 [@tailcall]) st exp_hashlen prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy494 [@tailcall]) st exp_hashlen prefix + (yy514 [@tailcall]) st exp_hashlen prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy496 [@tailcall]) st exp_hashlen prefix + (yy516 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy497 [@tailcall]) st exp_hashlen prefix + (yy517 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy498 [@tailcall]) st exp_hashlen prefix + (yy518 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy499 [@tailcall]) st exp_hashlen prefix - | _ -> (yy468 [@tailcall]) st exp_hashlen prefix + (yy519 [@tailcall]) st exp_hashlen prefix + | _ -> (yy488 [@tailcall]) st exp_hashlen prefix -and yy468 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - newline st; yyfnrmulti' st exp_hashlen prefix +and yy488 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + newline st; yyfnrmulti st exp_hashlen prefix -and yy469 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy489 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -7568,217 +7766,217 @@ and yy469 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy469 [@tailcall]) st exp_hashlen prefix - else (yy468 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy489 [@tailcall]) st exp_hashlen prefix + else (yy488 [@tailcall]) st exp_hashlen prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\n' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy500 [@tailcall]) st exp_hashlen prefix + (yy520 [@tailcall]) st exp_hashlen prefix | '\x0B'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy488 [@tailcall]) st exp_hashlen prefix + (yy508 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy489 [@tailcall]) st exp_hashlen prefix + (yy509 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy491 [@tailcall]) st exp_hashlen prefix + (yy511 [@tailcall]) st exp_hashlen prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy492 [@tailcall]) st exp_hashlen prefix + (yy512 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy493 [@tailcall]) st exp_hashlen prefix + (yy513 [@tailcall]) st exp_hashlen prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy494 [@tailcall]) st exp_hashlen prefix + (yy514 [@tailcall]) st exp_hashlen prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy496 [@tailcall]) st exp_hashlen prefix + (yy516 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy497 [@tailcall]) st exp_hashlen prefix + (yy517 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy498 [@tailcall]) st exp_hashlen prefix + (yy518 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy499 [@tailcall]) st exp_hashlen prefix - | _ -> (yy468 [@tailcall]) st exp_hashlen prefix + (yy519 [@tailcall]) st exp_hashlen prefix + | _ -> (yy488 [@tailcall]) st exp_hashlen prefix -and yy470 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy490 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy501 [@tailcall]) st exp_hashlen prefix + (yy521 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy470 [@tailcall]) st exp_hashlen prefix - else (yy466 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy490 [@tailcall]) st exp_hashlen prefix + else (yy486 [@tailcall]) st exp_hashlen prefix ) else ( - (yy466 [@tailcall]) st exp_hashlen prefix + (yy486 [@tailcall]) st exp_hashlen prefix ) -and yy471 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy472 [@tailcall]) st exp_hashlen prefix +and yy491 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy492 [@tailcall]) st exp_hashlen prefix -and yy472 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy492 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = malformed_utf8 st -and yy473 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy493 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy467 [@tailcall]) st exp_hashlen prefix + (yy487 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy473 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy493 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy474 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy494 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy474 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy494 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy475 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy495 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy475 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy495 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy476 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy496 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy476 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy496 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy477 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy497 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy503 [@tailcall]) st exp_hashlen prefix + (yy523 [@tailcall]) st exp_hashlen prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy504 [@tailcall]) st exp_hashlen prefix + (yy524 [@tailcall]) st exp_hashlen prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy477 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy497 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy478 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy498 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy478 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy498 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy479 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy499 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -7786,76 +7984,76 @@ and yy479 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy505 [@tailcall]) st exp_hashlen prefix + (yy525 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy479 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy499 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy480 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy500 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy506 [@tailcall]) st exp_hashlen prefix + (yy526 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy480 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy500 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy481 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy501 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy506 [@tailcall]) st exp_hashlen prefix + (yy526 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy481 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy501 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy482 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy502 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy506 [@tailcall]) st exp_hashlen prefix + (yy526 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy482 [@tailcall]) st exp_hashlen prefix - else (yy472 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy502 [@tailcall]) st exp_hashlen prefix + else (yy492 [@tailcall]) st exp_hashlen prefix ) else ( - (yy472 [@tailcall]) st exp_hashlen prefix + (yy492 [@tailcall]) st exp_hashlen prefix ) -and yy483 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy503 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.t1 <- st.yyt1; st.t2 <- st.yyt2; st.yycursor <- st.yyt2; multiline_prefix_check st prefix; - yyfnrmulti' st exp_hashlen prefix + yyfnrmulti st exp_hashlen prefix -and yy484 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy504 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -7863,282 +8061,282 @@ and yy484 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy484 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy504 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\n'..'\x0C' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy488 [@tailcall]) st exp_hashlen prefix + (yy508 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy489 [@tailcall]) st exp_hashlen prefix + (yy509 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy491 [@tailcall]) st exp_hashlen prefix + (yy511 [@tailcall]) st exp_hashlen prefix | '\xE1' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy492 [@tailcall]) st exp_hashlen prefix + (yy512 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy493 [@tailcall]) st exp_hashlen prefix + (yy513 [@tailcall]) st exp_hashlen prefix | '\xE3' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy494 [@tailcall]) st exp_hashlen prefix + (yy514 [@tailcall]) st exp_hashlen prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy496 [@tailcall]) st exp_hashlen prefix + (yy516 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy497 [@tailcall]) st exp_hashlen prefix + (yy517 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy498 [@tailcall]) st exp_hashlen prefix + (yy518 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy499 [@tailcall]) st exp_hashlen prefix - | _ -> (yy485 [@tailcall]) st exp_hashlen prefix + (yy519 [@tailcall]) st exp_hashlen prefix + | _ -> (yy505 [@tailcall]) st exp_hashlen prefix -and yy485 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy505 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yycursor <- st.yymarker; match st.yyaccept with - | 0 -> (yy468 [@tailcall]) st exp_hashlen prefix - | 1 -> (yy466 [@tailcall]) st exp_hashlen prefix - | 2 -> (yy472 [@tailcall]) st exp_hashlen prefix - | _ -> (yy487 [@tailcall]) st exp_hashlen prefix + | 0 -> (yy488 [@tailcall]) st exp_hashlen prefix + | 1 -> (yy486 [@tailcall]) st exp_hashlen prefix + | 2 -> (yy492 [@tailcall]) st exp_hashlen prefix + | _ -> (yy507 [@tailcall]) st exp_hashlen prefix -and yy486 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy487 [@tailcall]) st exp_hashlen prefix +and yy506 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy507 [@tailcall]) st exp_hashlen prefix -and yy487 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy507 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.t1 <- st.yyt1; st.yycursor <- st.yyt2; newline ~pos:st.t1 st; Buffer.add_char st.info.strbuf '\n'; - yyfnrmulti' st exp_hashlen prefix + yyfnrmulti st exp_hashlen prefix -and yy488 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy508 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy488 [@tailcall]) st exp_hashlen prefix - else (yy487 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy508 [@tailcall]) st exp_hashlen prefix + else (yy507 [@tailcall]) st exp_hashlen prefix ) else ( - (yy487 [@tailcall]) st exp_hashlen prefix + (yy507 [@tailcall]) st exp_hashlen prefix ) -and yy489 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy509 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy489 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy509 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy490 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy510 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy490 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy510 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy491 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy511 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy491 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy511 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy492 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy512 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy507 [@tailcall]) st exp_hashlen prefix + (yy527 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy492 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy512 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy493 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy513 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy508 [@tailcall]) st exp_hashlen prefix + (yy528 [@tailcall]) st exp_hashlen prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy509 [@tailcall]) st exp_hashlen prefix + (yy529 [@tailcall]) st exp_hashlen prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy493 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy513 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy494 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy514 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy507 [@tailcall]) st exp_hashlen prefix + (yy527 [@tailcall]) st exp_hashlen prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy494 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy514 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy495 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy515 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy495 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy515 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy496 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy516 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy496 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy516 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy497 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy517 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy497 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy517 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy498 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy518 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy498 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy518 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy499 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy519 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy499 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy519 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy500 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy520 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yyaccept <- 3; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -8148,289 +8346,293 @@ and yy500 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x0E'..'\x1F' | '!'..'\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy500 [@tailcall]) st exp_hashlen prefix - else (yy487 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy520 [@tailcall]) st exp_hashlen prefix + else (yy507 [@tailcall]) st exp_hashlen prefix ) else ( st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' ' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\n'..'\x0C' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy488 [@tailcall]) st exp_hashlen prefix + (yy508 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy489 [@tailcall]) st exp_hashlen prefix + (yy509 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy490 [@tailcall]) st exp_hashlen prefix + (yy510 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy491 [@tailcall]) st exp_hashlen prefix + (yy511 [@tailcall]) st exp_hashlen prefix | '\xE1' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy492 [@tailcall]) st exp_hashlen prefix + (yy512 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy493 [@tailcall]) st exp_hashlen prefix + (yy513 [@tailcall]) st exp_hashlen prefix | '\xE3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy494 [@tailcall]) st exp_hashlen prefix + (yy514 [@tailcall]) st exp_hashlen prefix | '\xE4'..'\xEC' | '\xEE'..'\xEF' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy495 [@tailcall]) st exp_hashlen prefix + (yy515 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy496 [@tailcall]) st exp_hashlen prefix + (yy516 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy497 [@tailcall]) st exp_hashlen prefix + (yy517 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy498 [@tailcall]) st exp_hashlen prefix + (yy518 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yyt1 <- st.yycursor; st.yyt2 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy499 [@tailcall]) st exp_hashlen prefix - | _ -> (yy487 [@tailcall]) st exp_hashlen prefix + (yy519 [@tailcall]) st exp_hashlen prefix + | _ -> (yy507 [@tailcall]) st exp_hashlen prefix -and yy501 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy521 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy510 [@tailcall]) st exp_hashlen prefix + (yy530 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy501 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy521 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy502 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy522 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy502 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy522 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy503 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy523 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8D' | '\x90'..'\xA7' | '\xAF'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | '\x8E'..'\x8F' | '\xAA'..'\xAE' -> st.yycursor <- st.yycursor + 1; - (yy464 [@tailcall]) st exp_hashlen prefix + (yy484 [@tailcall]) st exp_hashlen prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy467 [@tailcall]) st exp_hashlen prefix + (yy487 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy503 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy523 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy504 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy524 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | '\xA6'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy464 [@tailcall]) st exp_hashlen prefix + (yy484 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy504 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy524 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy505 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy525 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy465 [@tailcall]) st exp_hashlen prefix + (yy485 [@tailcall]) st exp_hashlen prefix | '\xBF' -> st.yycursor <- st.yycursor + 1; - (yy464 [@tailcall]) st exp_hashlen prefix + (yy484 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy505 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy525 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy506 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy526 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy502 [@tailcall]) st exp_hashlen prefix + (yy522 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy506 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy526 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy507 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy527 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy507 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy527 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy508 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy528 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | '\x8B'..'\xA7' | '\xAA'..'\xAE' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy486 [@tailcall]) st exp_hashlen prefix + (yy506 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy508 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy528 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy509 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy529 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy483 [@tailcall]) st exp_hashlen prefix + (yy503 [@tailcall]) st exp_hashlen prefix | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy484 [@tailcall]) st exp_hashlen prefix + (yy504 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy509 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy529 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy510 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy530 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy511 [@tailcall]) st exp_hashlen prefix + (yy531 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy510 [@tailcall]) st exp_hashlen prefix - else (yy485 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy530 [@tailcall]) st exp_hashlen prefix + else (yy505 [@tailcall]) st exp_hashlen prefix ) else ( - (yy485 [@tailcall]) st exp_hashlen prefix + (yy505 [@tailcall]) st exp_hashlen prefix ) -and yy511 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy531 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yycursor <- st.yycursor + 1; - (yy511 [@tailcall]) st exp_hashlen prefix + (yy531 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy511 [@tailcall]) st exp_hashlen prefix - else (yy512 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy531 [@tailcall]) st exp_hashlen prefix + else (yy532 [@tailcall]) st exp_hashlen prefix ) else ( - (yy512 [@tailcall]) st exp_hashlen prefix + (yy532 [@tailcall]) st exp_hashlen prefix ) -and yy512 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy532 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.t1 <- st.yyt1; if check_hashlen st exp_hashlen then begin RAW_STRING (multiline_contents st.info.strbuf) - end else yyfnrmulti' st exp_hashlen prefix + end else yyfnrmulti st exp_hashlen prefix -and yy513 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy533 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = error st "Unterminated raw string" and yyfnrmulti (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy463 [@tailcall]) st exp_hashlen prefix + (yy482 [@tailcall]) st exp_hashlen prefix -and yy514 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy534 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + save_start_position st; + (yy535 [@tailcall]) st exp_hashlen prefix + +and yy535 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -8438,408 +8640,402 @@ and yy514 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = | '\x0E'..'\x1F' | '\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy514 [@tailcall]) st exp_hashlen prefix - else (yy542 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy535 [@tailcall]) st exp_hashlen prefix + else (yy563 [@tailcall]) st exp_hashlen prefix ) else ( st.yycursor <- st.yycursor + 1; - (yy515 [@tailcall]) st exp_hashlen prefix + (yy536 [@tailcall]) st exp_hashlen prefix ) | '\t' | ' '..'!' | '#'..'~' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy518 [@tailcall]) st exp_hashlen prefix + (yy539 [@tailcall]) st exp_hashlen prefix | '\r' -> st.yycursor <- st.yycursor + 1; - (yy520 [@tailcall]) st exp_hashlen prefix + (yy541 [@tailcall]) st exp_hashlen prefix | '"' -> st.yycursor <- st.yycursor + 1; - (yy521 [@tailcall]) st exp_hashlen prefix + (yy542 [@tailcall]) st exp_hashlen prefix | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy524 [@tailcall]) st exp_hashlen prefix + (yy545 [@tailcall]) st exp_hashlen prefix | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy525 [@tailcall]) st exp_hashlen prefix + (yy546 [@tailcall]) st exp_hashlen prefix | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy526 [@tailcall]) st exp_hashlen prefix + (yy547 [@tailcall]) st exp_hashlen prefix | '\xE1' | '\xE3'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy527 [@tailcall]) st exp_hashlen prefix + (yy548 [@tailcall]) st exp_hashlen prefix | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy528 [@tailcall]) st exp_hashlen prefix + (yy549 [@tailcall]) st exp_hashlen prefix | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy529 [@tailcall]) st exp_hashlen prefix + (yy550 [@tailcall]) st exp_hashlen prefix | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy530 [@tailcall]) st exp_hashlen prefix + (yy551 [@tailcall]) st exp_hashlen prefix | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy531 [@tailcall]) st exp_hashlen prefix + (yy552 [@tailcall]) st exp_hashlen prefix | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy532 [@tailcall]) st exp_hashlen prefix + (yy553 [@tailcall]) st exp_hashlen prefix | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy533 [@tailcall]) st exp_hashlen prefix + (yy554 [@tailcall]) st exp_hashlen prefix | _ -> st.yycursor <- st.yycursor + 1; - (yy522 [@tailcall]) st exp_hashlen prefix + (yy543 [@tailcall]) st exp_hashlen prefix -and yy515 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy536 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = error st "Illegal character" -and yy516 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy517 [@tailcall]) st exp_hashlen prefix +and yy537 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy538 [@tailcall]) st exp_hashlen prefix -and yy517 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - add_lexeme_to_buf st st.info.strbuf; yyfnrsingle' st exp_hashlen prefix +and yy538 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + add_lexeme_to_buf st st.info.strbuf; yyfnrsingle st exp_hashlen prefix -and yy518 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy519 [@tailcall]) st exp_hashlen prefix +and yy539 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy540 [@tailcall]) st exp_hashlen prefix -and yy519 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy540 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = newline st; error st "Unterminated raw string" -and yy520 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy541 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy518 [@tailcall]) st exp_hashlen prefix + (yy539 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy520 [@tailcall]) st exp_hashlen prefix - else (yy519 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy541 [@tailcall]) st exp_hashlen prefix + else (yy540 [@tailcall]) st exp_hashlen prefix ) else ( - (yy519 [@tailcall]) st exp_hashlen prefix + (yy540 [@tailcall]) st exp_hashlen prefix ) -and yy521 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy542 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yyt1 <- st.yycursor; st.yycursor <- st.yycursor + 1; - (yy534 [@tailcall]) st exp_hashlen prefix + (yy555 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy521 [@tailcall]) st exp_hashlen prefix - else (yy517 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy542 [@tailcall]) st exp_hashlen prefix + else (yy538 [@tailcall]) st exp_hashlen prefix ) else ( - (yy517 [@tailcall]) st exp_hashlen prefix + (yy538 [@tailcall]) st exp_hashlen prefix ) -and yy522 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy523 [@tailcall]) st exp_hashlen prefix +and yy543 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy544 [@tailcall]) st exp_hashlen prefix -and yy523 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy544 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = malformed_utf8 st -and yy524 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy545 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy518 [@tailcall]) st exp_hashlen prefix + (yy539 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy524 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy545 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy525 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy546 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy525 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy546 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy526 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy547 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy526 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy547 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy527 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy548 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy527 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy548 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy528 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy549 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy538 [@tailcall]) st exp_hashlen prefix + (yy559 [@tailcall]) st exp_hashlen prefix | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy539 [@tailcall]) st exp_hashlen prefix + (yy560 [@tailcall]) st exp_hashlen prefix | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy528 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy549 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy529 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy550 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy529 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy550 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy530 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy551 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy540 [@tailcall]) st exp_hashlen prefix + (yy561 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy530 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy551 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy531 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy552 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy541 [@tailcall]) st exp_hashlen prefix + (yy562 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy531 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy552 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy532 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy553 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy541 [@tailcall]) st exp_hashlen prefix + (yy562 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy532 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy553 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy533 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy554 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy541 [@tailcall]) st exp_hashlen prefix + (yy562 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy533 [@tailcall]) st exp_hashlen prefix - else (yy523 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy554 [@tailcall]) st exp_hashlen prefix + else (yy544 [@tailcall]) st exp_hashlen prefix ) else ( - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix ) -and yy534 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy555 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '#' -> st.yycursor <- st.yycursor + 1; - (yy534 [@tailcall]) st exp_hashlen prefix + (yy555 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy534 [@tailcall]) st exp_hashlen prefix - else (yy535 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy555 [@tailcall]) st exp_hashlen prefix + else (yy556 [@tailcall]) st exp_hashlen prefix ) else ( - (yy535 [@tailcall]) st exp_hashlen prefix + (yy556 [@tailcall]) st exp_hashlen prefix ) -and yy535 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy556 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.t1 <- st.yyt1; if check_hashlen st exp_hashlen then RAW_STRING (Buffer.contents st.info.strbuf) - else yyfnrsingle' st exp_hashlen prefix + else yyfnrsingle st exp_hashlen prefix -and yy536 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy557 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy536 [@tailcall]) st exp_hashlen prefix - else (yy537 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy557 [@tailcall]) st exp_hashlen prefix + else (yy558 [@tailcall]) st exp_hashlen prefix ) else ( - (yy537 [@tailcall]) st exp_hashlen prefix + (yy558 [@tailcall]) st exp_hashlen prefix ) -and yy537 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy558 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = st.yycursor <- st.yymarker; - (yy523 [@tailcall]) st exp_hashlen prefix + (yy544 [@tailcall]) st exp_hashlen prefix -and yy538 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy559 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8D' | '\x90'..'\xA7' | '\xAF'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | '\x8E'..'\x8F' | '\xAA'..'\xAE' -> st.yycursor <- st.yycursor + 1; - (yy515 [@tailcall]) st exp_hashlen prefix + (yy536 [@tailcall]) st exp_hashlen prefix | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy518 [@tailcall]) st exp_hashlen prefix + (yy539 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy538 [@tailcall]) st exp_hashlen prefix - else (yy537 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy559 [@tailcall]) st exp_hashlen prefix + else (yy558 [@tailcall]) st exp_hashlen prefix ) else ( - (yy537 [@tailcall]) st exp_hashlen prefix + (yy558 [@tailcall]) st exp_hashlen prefix ) -and yy539 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy560 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | '\xA6'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy515 [@tailcall]) st exp_hashlen prefix + (yy536 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy539 [@tailcall]) st exp_hashlen prefix - else (yy537 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy560 [@tailcall]) st exp_hashlen prefix + else (yy558 [@tailcall]) st exp_hashlen prefix ) else ( - (yy537 [@tailcall]) st exp_hashlen prefix + (yy558 [@tailcall]) st exp_hashlen prefix ) -and yy540 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy561 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy516 [@tailcall]) st exp_hashlen prefix + (yy537 [@tailcall]) st exp_hashlen prefix | '\xBF' -> st.yycursor <- st.yycursor + 1; - (yy515 [@tailcall]) st exp_hashlen prefix + (yy536 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy540 [@tailcall]) st exp_hashlen prefix - else (yy537 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy561 [@tailcall]) st exp_hashlen prefix + else (yy558 [@tailcall]) st exp_hashlen prefix ) else ( - (yy537 [@tailcall]) st exp_hashlen prefix + (yy558 [@tailcall]) st exp_hashlen prefix ) -and yy541 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy562 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy536 [@tailcall]) st exp_hashlen prefix + (yy557 [@tailcall]) st exp_hashlen prefix | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy541 [@tailcall]) st exp_hashlen prefix - else (yy537 [@tailcall]) st exp_hashlen prefix + if (st.refill st) then (yy562 [@tailcall]) st exp_hashlen prefix + else (yy558 [@tailcall]) st exp_hashlen prefix ) else ( - (yy537 [@tailcall]) st exp_hashlen prefix + (yy558 [@tailcall]) st exp_hashlen prefix ) -and yy542 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy563 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = error st "Unterminated raw string" and yyfnrsingle (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy514 [@tailcall]) st exp_hashlen prefix + (yy534 [@tailcall]) st exp_hashlen prefix -and yy462 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = +and yy481 (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = match st.yycond with | YYC_rmulti -> (yyfnrmulti [@tailcall]) st exp_hashlen prefix | YYC_rsingle -> (yyfnrsingle [@tailcall]) st exp_hashlen prefix -and raw_string_body (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = - (yy462 [@tailcall]) st exp_hashlen prefix +and raw_string (st : tokenizer_state) (exp_hashlen : int) (prefix : string) : token = + (yy481 [@tailcall]) st exp_hashlen prefix -and yyfnrmulti' st a b = save_start_position st; yyfnrmulti st a b -and yyfnrsingle' st a b = save_start_position st; yyfnrsingle st a b -and raw_string st exp_hashlen prefix = - save_start_position st; - raw_string_body st exp_hashlen prefix - let raw_string_multiline st exp_hashlen = validate_multiline_start st; let prefix = detect_raw_multiline_string_prefix st exp_hashlen (make_lexing_end_pos st) in @@ -8851,7 +9047,11 @@ let raw_string_singleline st exp_hashlen = raw_string st exp_hashlen "" -let rec yy543 (st : tokenizer_state) : token = +let rec yy564 (st : tokenizer_state) : token = + save_token_position st; save_start_position st; + (yy565 [@tailcall]) st + +and yy565 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' @@ -8861,22 +9061,22 @@ let rec yy543 (st : tokenizer_state) : token = | ']' | '\x7F' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy543 [@tailcall]) st - else (yy691 [@tailcall]) st + if (st.refill st) then (yy565 [@tailcall]) st + else (yy713 [@tailcall]) st ) else ( st.yycursor <- st.yycursor + 1; - (yy544 [@tailcall]) st + (yy566 [@tailcall]) st ) | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | '\n'..'\x0C' -> st.yycursor <- st.yycursor + 1; - (yy548 [@tailcall]) st + (yy570 [@tailcall]) st | '\r' -> st.yycursor <- st.yycursor + 1; - (yy550 [@tailcall]) st + (yy572 [@tailcall]) st | '!' | '$'..'\'' | '*' @@ -8888,98 +9088,98 @@ let rec yy543 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '"' -> st.yycursor <- st.yycursor + 1; - (yy554 [@tailcall]) st + (yy576 [@tailcall]) st | '#' -> st.yycursor <- st.yycursor + 1; - (yy556 [@tailcall]) st + (yy578 [@tailcall]) st | '(' -> st.yycursor <- st.yycursor + 1; - (yy557 [@tailcall]) st + (yy579 [@tailcall]) st | ')' -> st.yycursor <- st.yycursor + 1; - (yy558 [@tailcall]) st + (yy580 [@tailcall]) st | '+' | '-' -> st.yycursor <- st.yycursor + 1; - (yy559 [@tailcall]) st + (yy581 [@tailcall]) st | '.' -> st.yycursor <- st.yycursor + 1; - (yy560 [@tailcall]) st + (yy582 [@tailcall]) st | '/' -> st.yycursor <- st.yycursor + 1; - (yy561 [@tailcall]) st + (yy583 [@tailcall]) st | '0' -> st.yycursor <- st.yycursor + 1; - (yy562 [@tailcall]) st + (yy584 [@tailcall]) st | '1'..'9' -> st.yycursor <- st.yycursor + 1; - (yy564 [@tailcall]) st + (yy586 [@tailcall]) st | ';' -> st.yycursor <- st.yycursor + 1; - (yy565 [@tailcall]) st + (yy587 [@tailcall]) st | '=' -> st.yycursor <- st.yycursor + 1; - (yy566 [@tailcall]) st + (yy588 [@tailcall]) st | '\\' -> st.yycursor <- st.yycursor + 1; - (yy567 [@tailcall]) st + (yy589 [@tailcall]) st | '{' -> st.yycursor <- st.yycursor + 1; - (yy568 [@tailcall]) st + (yy590 [@tailcall]) st | '}' -> st.yycursor <- st.yycursor + 1; - (yy569 [@tailcall]) st + (yy591 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy572 [@tailcall]) st + (yy594 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy573 [@tailcall]) st + (yy595 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy574 [@tailcall]) st + (yy596 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy575 [@tailcall]) st + (yy597 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy576 [@tailcall]) st + (yy598 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy577 [@tailcall]) st + (yy599 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy578 [@tailcall]) st + (yy600 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy579 [@tailcall]) st + (yy601 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy580 [@tailcall]) st + (yy602 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy581 [@tailcall]) st + (yy603 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy582 [@tailcall]) st + (yy604 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy583 [@tailcall]) st + (yy605 [@tailcall]) st | _ -> st.yycursor <- st.yycursor + 1; - (yy570 [@tailcall]) st + (yy592 [@tailcall]) st -and yy544 (st : tokenizer_state) : token = - (yy545 [@tailcall]) st +and yy566 (st : tokenizer_state) : token = + (yy567 [@tailcall]) st -and yy545 (st : tokenizer_state) : token = +and yy567 (st : tokenizer_state) : token = error st "Illegal character" -and yy546 (st : tokenizer_state) : token = +and yy568 (st : tokenizer_state) : token = st.yyaccept <- 0; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -8987,57 +9187,57 @@ and yy546 (st : tokenizer_state) : token = | '\t' | ' ' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy584 [@tailcall]) st + (yy606 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy586 [@tailcall]) st + (yy608 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy587 [@tailcall]) st + (yy609 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy588 [@tailcall]) st + (yy610 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy546 [@tailcall]) st - else (yy547 [@tailcall]) st + if (st.refill st) then (yy568 [@tailcall]) st + else (yy569 [@tailcall]) st ) else ( - (yy547 [@tailcall]) st + (yy569 [@tailcall]) st ) -and yy547 (st : tokenizer_state) : token = +and yy569 (st : tokenizer_state) : token = main st -and yy548 (st : tokenizer_state) : token = - (yy549 [@tailcall]) st +and yy570 (st : tokenizer_state) : token = + (yy571 [@tailcall]) st -and yy549 (st : tokenizer_state) : token = +and yy571 (st : tokenizer_state) : token = newline st; NEWLINE -and yy550 (st : tokenizer_state) : token = +and yy572 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\n' -> st.yycursor <- st.yycursor + 1; - (yy548 [@tailcall]) st + (yy570 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy550 [@tailcall]) st - else (yy549 [@tailcall]) st + if (st.refill st) then (yy572 [@tailcall]) st + else (yy571 [@tailcall]) st ) else ( - (yy549 [@tailcall]) st + (yy571 [@tailcall]) st ) -and yy551 (st : tokenizer_state) : token = +and yy573 (st : tokenizer_state) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in - (yy552 [@tailcall]) st yych + (yy574 [@tailcall]) st yych -and yy552 (st : tokenizer_state) (yych : char) : token = +and yy574 (st : tokenizer_state) (yych : char) : token = match yych with | '!' | '$'..'\'' @@ -9049,77 +9249,77 @@ and yy552 (st : tokenizer_state) (yych : char) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy589 [@tailcall]) st + (yy611 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy591 [@tailcall]) st + (yy613 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy592 [@tailcall]) st + (yy614 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy593 [@tailcall]) st + (yy615 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy594 [@tailcall]) st + (yy616 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy596 [@tailcall]) st + (yy618 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy597 [@tailcall]) st + (yy619 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy598 [@tailcall]) st + (yy620 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy599 [@tailcall]) st + (yy621 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy600 [@tailcall]) st + (yy622 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy551 [@tailcall]) st - else (yy553 [@tailcall]) st + if (st.refill st) then (yy573 [@tailcall]) st + else (yy575 [@tailcall]) st ) else ( - (yy553 [@tailcall]) st + (yy575 [@tailcall]) st ) -and yy553 (st : tokenizer_state) : token = +and yy575 (st : tokenizer_state) : token = IDENT_STRING (lexeme st) -and yy554 (st : tokenizer_state) : token = +and yy576 (st : tokenizer_state) : token = st.yyaccept <- 2; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy601 [@tailcall]) st + (yy623 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy554 [@tailcall]) st - else (yy555 [@tailcall]) st + if (st.refill st) then (yy576 [@tailcall]) st + else (yy577 [@tailcall]) st ) else ( - (yy555 [@tailcall]) st + (yy577 [@tailcall]) st ) -and yy555 (st : tokenizer_state) : token = +and yy577 (st : tokenizer_state) : token = Buffer.reset st.info.strbuf; string_singleline st -and yy556 (st : tokenizer_state) : token = +and yy578 (st : tokenizer_state) : token = st.yyaccept <- 3; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -9133,88 +9333,88 @@ and yy556 (st : tokenizer_state) : token = | '^'..'z' | '|' | '~' - | '\xC2'..'\xF4' -> (yy603 [@tailcall]) st yych + | '\xC2'..'\xF4' -> (yy625 [@tailcall]) st yych | '"' -> st.yycursor <- st.yycursor + 1; - (yy605 [@tailcall]) st + (yy627 [@tailcall]) st | '#' -> st.yycursor <- st.yycursor + 1; - (yy607 [@tailcall]) st + (yy629 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy556 [@tailcall]) st - else (yy545 [@tailcall]) st + if (st.refill st) then (yy578 [@tailcall]) st + else (yy567 [@tailcall]) st ) else ( - (yy545 [@tailcall]) st + (yy567 [@tailcall]) st ) -and yy557 (st : tokenizer_state) : token = +and yy579 (st : tokenizer_state) : token = LPAREN -and yy558 (st : tokenizer_state) : token = +and yy580 (st : tokenizer_state) : token = RPAREN -and yy559 (st : tokenizer_state) : token = +and yy581 (st : tokenizer_state) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy559 [@tailcall]) st - else (yy553 [@tailcall]) st + if (st.refill st) then (yy581 [@tailcall]) st + else (yy575 [@tailcall]) st ) else ( - (yy553 [@tailcall]) st + (yy575 [@tailcall]) st ) | '.' -> st.yycursor <- st.yycursor + 1; - (yy560 [@tailcall]) st + (yy582 [@tailcall]) st | '0' -> st.yycursor <- st.yycursor + 1; - (yy562 [@tailcall]) st + (yy584 [@tailcall]) st | '1'..'9' -> st.yycursor <- st.yycursor + 1; - (yy564 [@tailcall]) st - | _ -> (yy552 [@tailcall]) st yych + (yy586 [@tailcall]) st + | _ -> (yy574 [@tailcall]) st yych -and yy560 (st : tokenizer_state) : token = +and yy582 (st : tokenizer_state) : token = st.yyaccept <- 1; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy560 [@tailcall]) st - else (yy553 [@tailcall]) st + if (st.refill st) then (yy582 [@tailcall]) st + else (yy575 [@tailcall]) st ) else ( - (yy553 [@tailcall]) st + (yy575 [@tailcall]) st ) | '0'..'9' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st - | _ -> (yy552 [@tailcall]) st yych + (yy642 [@tailcall]) st + | _ -> (yy574 [@tailcall]) st yych -and yy561 (st : tokenizer_state) : token = +and yy583 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '*' -> st.yycursor <- st.yycursor + 1; - (yy622 [@tailcall]) st + (yy644 [@tailcall]) st | '-' -> st.yycursor <- st.yycursor + 1; - (yy623 [@tailcall]) st + (yy645 [@tailcall]) st | '/' -> st.yycursor <- st.yycursor + 1; - (yy624 [@tailcall]) st + (yy646 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy561 [@tailcall]) st - else (yy545 [@tailcall]) st + if (st.refill st) then (yy583 [@tailcall]) st + else (yy567 [@tailcall]) st ) else ( - (yy545 [@tailcall]) st + (yy567 [@tailcall]) st ) -and yy562 (st : tokenizer_state) : token = +and yy584 (st : tokenizer_state) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -9234,39 +9434,39 @@ and yy562 (st : tokenizer_state) : token = | 'y'..'z' | '|' | '~' - | '\xC2'..'\xF4' -> (yy626 [@tailcall]) st yych + | '\xC2'..'\xF4' -> (yy648 [@tailcall]) st yych | '.' -> st.yycursor <- st.yycursor + 1; - (yy628 [@tailcall]) st + (yy650 [@tailcall]) st | '0'..'9' | '_' -> st.yycursor <- st.yycursor + 1; - (yy564 [@tailcall]) st + (yy586 [@tailcall]) st | 'E' | 'e' -> st.yycursor <- st.yycursor + 1; - (yy629 [@tailcall]) st + (yy651 [@tailcall]) st | 'b' -> st.yycursor <- st.yycursor + 1; - (yy630 [@tailcall]) st + (yy652 [@tailcall]) st | 'o' -> st.yycursor <- st.yycursor + 1; - (yy631 [@tailcall]) st + (yy653 [@tailcall]) st | 'x' -> st.yycursor <- st.yycursor + 1; - (yy632 [@tailcall]) st + (yy654 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy562 [@tailcall]) st - else (yy563 [@tailcall]) st + if (st.refill st) then (yy584 [@tailcall]) st + else (yy585 [@tailcall]) st ) else ( - (yy563 [@tailcall]) st + (yy585 [@tailcall]) st ) -and yy563 (st : tokenizer_state) : token = +and yy585 (st : tokenizer_state) : token = INTEGER (lexeme st) -and yy564 (st : tokenizer_state) : token = +and yy586 (st : tokenizer_state) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -9284,137 +9484,137 @@ and yy564 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '.' -> st.yycursor <- st.yycursor + 1; - (yy628 [@tailcall]) st + (yy650 [@tailcall]) st | '0'..'9' | '_' -> st.yycursor <- st.yycursor + 1; - (yy564 [@tailcall]) st + (yy586 [@tailcall]) st | 'E' | 'e' -> st.yycursor <- st.yycursor + 1; - (yy629 [@tailcall]) st + (yy651 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy564 [@tailcall]) st - else (yy563 [@tailcall]) st + if (st.refill st) then (yy586 [@tailcall]) st + else (yy585 [@tailcall]) st ) else ( - (yy563 [@tailcall]) st + (yy585 [@tailcall]) st ) -and yy565 (st : tokenizer_state) : token = +and yy587 (st : tokenizer_state) : token = SEMI -and yy566 (st : tokenizer_state) : token = +and yy588 (st : tokenizer_state) : token = EQ -and yy567 (st : tokenizer_state) : token = +and yy589 (st : tokenizer_state) : token = line_cont st; main st -and yy568 (st : tokenizer_state) : token = +and yy590 (st : tokenizer_state) : token = LBRACE -and yy569 (st : tokenizer_state) : token = +and yy591 (st : tokenizer_state) : token = RBRACE -and yy570 (st : tokenizer_state) : token = - (yy571 [@tailcall]) st +and yy592 (st : tokenizer_state) : token = + (yy593 [@tailcall]) st -and yy571 (st : tokenizer_state) : token = +and yy593 (st : tokenizer_state) : token = malformed_utf8 st -and yy572 (st : tokenizer_state) : token = +and yy594 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '\x85' -> st.yycursor <- st.yycursor + 1; - (yy548 [@tailcall]) st + (yy570 [@tailcall]) st | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy572 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy594 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy573 (st : tokenizer_state) : token = +and yy595 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy573 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy595 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy574 (st : tokenizer_state) : token = +and yy596 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy574 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy596 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy575 (st : tokenizer_state) : token = +and yy597 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -9422,92 +9622,92 @@ and yy575 (st : tokenizer_state) : token = | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy645 [@tailcall]) st + (yy667 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy575 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy597 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy576 (st : tokenizer_state) : token = +and yy598 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy646 [@tailcall]) st + (yy668 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy647 [@tailcall]) st + (yy669 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy576 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy598 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy577 (st : tokenizer_state) : token = +and yy599 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy645 [@tailcall]) st + (yy667 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy577 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy599 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy578 (st : tokenizer_state) : token = +and yy600 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy578 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy600 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy579 (st : tokenizer_state) : token = +and yy601 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy579 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy601 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy580 (st : tokenizer_state) : token = +and yy602 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -9515,348 +9715,348 @@ and yy580 (st : tokenizer_state) : token = | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy648 [@tailcall]) st + (yy670 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy580 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy602 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy581 (st : tokenizer_state) : token = +and yy603 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy581 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy603 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy582 (st : tokenizer_state) : token = +and yy604 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy582 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy604 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy583 (st : tokenizer_state) : token = +and yy605 (st : tokenizer_state) : token = st.yyaccept <- 5; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy583 [@tailcall]) st - else (yy571 [@tailcall]) st + if (st.refill st) then (yy605 [@tailcall]) st + else (yy593 [@tailcall]) st ) else ( - (yy571 [@tailcall]) st + (yy593 [@tailcall]) st ) -and yy584 (st : tokenizer_state) : token = +and yy606 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy584 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy606 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy585 (st : tokenizer_state) : token = +and yy607 (st : tokenizer_state) : token = st.yycursor <- st.yymarker; match st.yyaccept with - | 0 -> (yy547 [@tailcall]) st - | 1 -> (yy553 [@tailcall]) st - | 2 -> (yy555 [@tailcall]) st - | 3 -> (yy545 [@tailcall]) st - | 4 -> (yy563 [@tailcall]) st - | 5 -> (yy571 [@tailcall]) st - | 6 -> (yy604 [@tailcall]) st - | 7 -> (yy606 [@tailcall]) st - | 8 -> (yy621 [@tailcall]) st - | 9 -> (yy627 [@tailcall]) st - | _ -> (yy675 [@tailcall]) st + | 0 -> (yy569 [@tailcall]) st + | 1 -> (yy575 [@tailcall]) st + | 2 -> (yy577 [@tailcall]) st + | 3 -> (yy567 [@tailcall]) st + | 4 -> (yy585 [@tailcall]) st + | 5 -> (yy593 [@tailcall]) st + | 6 -> (yy626 [@tailcall]) st + | 7 -> (yy628 [@tailcall]) st + | 8 -> (yy643 [@tailcall]) st + | 9 -> (yy649 [@tailcall]) st + | _ -> (yy697 [@tailcall]) st -and yy586 (st : tokenizer_state) : token = +and yy608 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy649 [@tailcall]) st + (yy671 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy586 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy608 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy587 (st : tokenizer_state) : token = +and yy609 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy650 [@tailcall]) st + (yy672 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy651 [@tailcall]) st + (yy673 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy587 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy609 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy588 (st : tokenizer_state) : token = +and yy610 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy649 [@tailcall]) st + (yy671 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy588 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy610 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy589 (st : tokenizer_state) : token = +and yy611 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy589 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy611 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy590 (st : tokenizer_state) : token = +and yy612 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy590 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy612 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy591 (st : tokenizer_state) : token = +and yy613 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy591 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy613 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy592 (st : tokenizer_state) : token = +and yy614 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy652 [@tailcall]) st + (yy674 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy592 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy614 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy593 (st : tokenizer_state) : token = +and yy615 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy653 [@tailcall]) st + (yy675 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy654 [@tailcall]) st + (yy676 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy593 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy615 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy594 (st : tokenizer_state) : token = +and yy616 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy652 [@tailcall]) st + (yy674 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy594 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy616 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy595 (st : tokenizer_state) : token = +and yy617 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy595 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy617 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy596 (st : tokenizer_state) : token = +and yy618 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy596 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy618 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy597 (st : tokenizer_state) : token = +and yy619 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy590 [@tailcall]) st + (yy612 [@tailcall]) st | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy655 [@tailcall]) st + (yy677 [@tailcall]) st | _ -> - if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy597 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.yylimit <= st.yycursor) then ( + if (st.refill st) then (yy619 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy598 (st : tokenizer_state) : token = +and yy620 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy598 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy620 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy599 (st : tokenizer_state) : token = +and yy621 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy599 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy621 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy600 (st : tokenizer_state) : token = +and yy622 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy595 [@tailcall]) st + (yy617 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy600 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy622 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy601 (st : tokenizer_state) : token = +and yy623 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy656 [@tailcall]) st + (yy678 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy601 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy623 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy602 (st : tokenizer_state) : token = +and yy624 (st : tokenizer_state) : token = st.yyaccept <- 6; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in - (yy603 [@tailcall]) st yych + (yy625 [@tailcall]) st yych -and yy603 (st : tokenizer_state) (yych : char) : token = +and yy625 (st : tokenizer_state) (yych : char) : token = match yych with | '!' | '$'..'\'' @@ -9868,53 +10068,53 @@ and yy603 (st : tokenizer_state) (yych : char) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy608 [@tailcall]) st + (yy630 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy610 [@tailcall]) st + (yy632 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy611 [@tailcall]) st + (yy633 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy612 [@tailcall]) st + (yy634 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy613 [@tailcall]) st + (yy635 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy614 [@tailcall]) st + (yy636 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy615 [@tailcall]) st + (yy637 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy616 [@tailcall]) st + (yy638 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy617 [@tailcall]) st + (yy639 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy618 [@tailcall]) st + (yy640 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy619 [@tailcall]) st + (yy641 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy602 [@tailcall]) st - else (yy604 [@tailcall]) st + if (st.refill st) then (yy624 [@tailcall]) st + else (yy626 [@tailcall]) st ) else ( - (yy604 [@tailcall]) st + (yy626 [@tailcall]) st ) -and yy604 (st : tokenizer_state) : token = +and yy626 (st : tokenizer_state) : token = begin match lexeme st with | "#true" -> TRUE @@ -9927,23 +10127,23 @@ and yy604 (st : tokenizer_state) : token = end -and yy605 (st : tokenizer_state) : token = +and yy627 (st : tokenizer_state) : token = st.yyaccept <- 7; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy657 [@tailcall]) st + (yy679 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy605 [@tailcall]) st - else (yy606 [@tailcall]) st + if (st.refill st) then (yy627 [@tailcall]) st + else (yy628 [@tailcall]) st ) else ( - (yy606 [@tailcall]) st + (yy628 [@tailcall]) st ) -and yy606 (st : tokenizer_state) : token = +and yy628 (st : tokenizer_state) : token = st.t1 <- st.yycursor; st.t1 <- st.t1 - 1; @@ -9952,211 +10152,211 @@ and yy606 (st : tokenizer_state) : token = raw_string_singleline st hashlen -and yy607 (st : tokenizer_state) : token = +and yy629 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy605 [@tailcall]) st + (yy627 [@tailcall]) st | '#' -> st.yycursor <- st.yycursor + 1; - (yy607 [@tailcall]) st + (yy629 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy607 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy629 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy608 (st : tokenizer_state) : token = +and yy630 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy608 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy630 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy609 (st : tokenizer_state) : token = +and yy631 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy609 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy631 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy610 (st : tokenizer_state) : token = +and yy632 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy610 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy632 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy611 (st : tokenizer_state) : token = +and yy633 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy658 [@tailcall]) st + (yy680 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy611 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy633 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy612 (st : tokenizer_state) : token = +and yy634 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy659 [@tailcall]) st + (yy681 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy660 [@tailcall]) st + (yy682 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy612 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy634 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy613 (st : tokenizer_state) : token = +and yy635 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy658 [@tailcall]) st + (yy680 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy613 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy635 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy614 (st : tokenizer_state) : token = +and yy636 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy614 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy636 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy615 (st : tokenizer_state) : token = +and yy637 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy615 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy637 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy616 (st : tokenizer_state) : token = +and yy638 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy609 [@tailcall]) st + (yy631 [@tailcall]) st | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy661 [@tailcall]) st + (yy683 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy616 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy638 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy617 (st : tokenizer_state) : token = +and yy639 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy614 [@tailcall]) st + (yy636 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy617 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy639 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy618 (st : tokenizer_state) : token = +and yy640 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy614 [@tailcall]) st + (yy636 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy618 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy640 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy619 (st : tokenizer_state) : token = +and yy641 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy614 [@tailcall]) st + (yy636 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy619 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy641 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy620 (st : tokenizer_state) : token = +and yy642 (st : tokenizer_state) : token = st.yyaccept <- 8; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -10171,73 +10371,73 @@ and yy620 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy662 [@tailcall]) st + (yy684 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy664 [@tailcall]) st + (yy686 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy665 [@tailcall]) st + (yy687 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy666 [@tailcall]) st + (yy688 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy667 [@tailcall]) st + (yy689 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy668 [@tailcall]) st + (yy690 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy669 [@tailcall]) st + (yy691 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy670 [@tailcall]) st + (yy692 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy671 [@tailcall]) st + (yy693 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy672 [@tailcall]) st + (yy694 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy673 [@tailcall]) st + (yy695 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy620 [@tailcall]) st - else (yy621 [@tailcall]) st + if (st.refill st) then (yy642 [@tailcall]) st + else (yy643 [@tailcall]) st ) else ( - (yy621 [@tailcall]) st + (yy643 [@tailcall]) st ) -and yy621 (st : tokenizer_state) : token = +and yy643 (st : tokenizer_state) : token = error st "Number-like identifiers are invalid and must be quoted" -and yy622 (st : tokenizer_state) : token = +and yy644 (st : tokenizer_state) : token = multiline_comment st 0; main st -and yy623 (st : tokenizer_state) : token = +and yy645 (st : tokenizer_state) : token = SLASHDASH -and yy624 (st : tokenizer_state) : token = +and yy646 (st : tokenizer_state) : token = singleline_comment st; NEWLINE -and yy625 (st : tokenizer_state) : token = +and yy647 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in - (yy626 [@tailcall]) st yych + (yy648 [@tailcall]) st yych -and yy626 (st : tokenizer_state) (yych : char) : token = +and yy648 (st : tokenizer_state) (yych : char) : token = match yych with | '!' | '$'..'\'' @@ -10249,786 +10449,786 @@ and yy626 (st : tokenizer_state) (yych : char) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy625 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy647 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) -and yy627 (st : tokenizer_state) : token = +and yy649 (st : tokenizer_state) : token = error st @@ sprintf "Invalid number literal %s" (lexeme st) -and yy628 (st : tokenizer_state) : token = +and yy650 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy628 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy650 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '0'..'9' -> st.yycursor <- st.yycursor + 1; - (yy674 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy696 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy629 (st : tokenizer_state) : token = +and yy651 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy629 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy651 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '+' | '-' -> st.yycursor <- st.yycursor + 1; - (yy676 [@tailcall]) st + (yy698 [@tailcall]) st | '0'..'9' -> st.yycursor <- st.yycursor + 1; - (yy677 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy699 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy630 (st : tokenizer_state) : token = +and yy652 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy630 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy652 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '0'..'1' -> st.yycursor <- st.yycursor + 1; - (yy678 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy700 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy631 (st : tokenizer_state) : token = +and yy653 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy631 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy653 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '0'..'7' -> st.yycursor <- st.yycursor + 1; - (yy679 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy701 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy632 (st : tokenizer_state) : token = +and yy654 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy632 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy654 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '0'..'9' | 'A'..'F' | 'a'..'f' -> st.yycursor <- st.yycursor + 1; - (yy680 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy702 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy633 (st : tokenizer_state) : token = +and yy655 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy633 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy655 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy634 (st : tokenizer_state) : token = +and yy656 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy634 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy656 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy635 (st : tokenizer_state) : token = +and yy657 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy635 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy657 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy636 (st : tokenizer_state) : token = +and yy658 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy681 [@tailcall]) st + (yy703 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy636 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy658 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy637 (st : tokenizer_state) : token = +and yy659 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy682 [@tailcall]) st + (yy704 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy683 [@tailcall]) st + (yy705 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy637 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy659 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy638 (st : tokenizer_state) : token = +and yy660 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy681 [@tailcall]) st + (yy703 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy638 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy660 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy639 (st : tokenizer_state) : token = +and yy661 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy639 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy661 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy640 (st : tokenizer_state) : token = +and yy662 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy640 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy662 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy641 (st : tokenizer_state) : token = +and yy663 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy684 [@tailcall]) st + (yy706 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy641 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy663 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy642 (st : tokenizer_state) : token = +and yy664 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy642 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy664 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy643 (st : tokenizer_state) : token = +and yy665 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy643 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy665 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy644 (st : tokenizer_state) : token = +and yy666 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy644 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy666 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy645 (st : tokenizer_state) : token = +and yy667 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy645 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy667 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy646 (st : tokenizer_state) : token = +and yy668 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | '\x8B'..'\x8D' | '\x90'..'\xA7' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '\x8E'..'\x8F' | '\xAA'..'\xAE' -> st.yycursor <- st.yycursor + 1; - (yy544 [@tailcall]) st + (yy566 [@tailcall]) st | '\xA8'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy548 [@tailcall]) st + (yy570 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy646 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy668 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy647 (st : tokenizer_state) : token = +and yy669 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | '\xA6'..'\xA9' -> st.yycursor <- st.yycursor + 1; - (yy544 [@tailcall]) st + (yy566 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy647 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy669 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy648 (st : tokenizer_state) : token = +and yy670 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | '\xBF' -> st.yycursor <- st.yycursor + 1; - (yy685 [@tailcall]) st + (yy707 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy648 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy670 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy649 (st : tokenizer_state) : token = +and yy671 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy649 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy671 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy650 (st : tokenizer_state) : token = +and yy672 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8A' | '\xAF' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy650 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy672 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy651 (st : tokenizer_state) : token = +and yy673 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x9F' -> st.yycursor <- st.yycursor + 1; - (yy546 [@tailcall]) st + (yy568 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy651 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy673 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy652 (st : tokenizer_state) : token = +and yy674 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy652 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy674 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy653 (st : tokenizer_state) : token = +and yy675 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x8B'..'\x8D' | '\x90'..'\xA7' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy653 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy675 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy654 (st : tokenizer_state) : token = +and yy676 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy654 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy676 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy655 (st : tokenizer_state) : token = +and yy677 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy551 [@tailcall]) st + (yy573 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy655 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy677 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy656 (st : tokenizer_state) : token = +and yy678 (st : tokenizer_state) : token = Buffer.reset st.info.strbuf; string_multiline st -and yy657 (st : tokenizer_state) : token = +and yy679 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '"' -> st.yycursor <- st.yycursor + 1; - (yy686 [@tailcall]) st + (yy708 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy657 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy679 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy658 (st : tokenizer_state) : token = +and yy680 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy658 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy680 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy659 (st : tokenizer_state) : token = +and yy681 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x8B'..'\x8D' | '\x90'..'\xA7' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy659 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy681 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy660 (st : tokenizer_state) : token = +and yy682 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy660 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy682 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy661 (st : tokenizer_state) : token = +and yy683 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy602 [@tailcall]) st + (yy624 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy661 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy683 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy662 (st : tokenizer_state) : token = +and yy684 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x84' | '\x86'..'\x9F' | '\xA1'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy662 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy684 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy663 (st : tokenizer_state) : token = +and yy685 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy663 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy685 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy664 (st : tokenizer_state) : token = +and yy686 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\xA0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy664 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy686 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy665 (st : tokenizer_state) : token = +and yy687 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x99' | '\x9B'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | '\x9A' -> st.yycursor <- st.yycursor + 1; - (yy687 [@tailcall]) st + (yy709 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy665 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy687 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy666 (st : tokenizer_state) : token = +and yy688 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy688 [@tailcall]) st + (yy710 [@tailcall]) st | '\x81' -> st.yycursor <- st.yycursor + 1; - (yy689 [@tailcall]) st + (yy711 [@tailcall]) st | '\x82'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy666 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy688 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy667 (st : tokenizer_state) : token = +and yy689 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80' -> st.yycursor <- st.yycursor + 1; - (yy687 [@tailcall]) st + (yy709 [@tailcall]) st | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy667 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy689 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy668 (st : tokenizer_state) : token = +and yy690 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy668 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy690 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy669 (st : tokenizer_state) : token = +and yy691 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9F' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy669 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy691 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy670 (st : tokenizer_state) : token = +and yy692 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBA' | '\xBC'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy663 [@tailcall]) st + (yy685 [@tailcall]) st | '\xBB' -> st.yycursor <- st.yycursor + 1; - (yy690 [@tailcall]) st + (yy712 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy670 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy692 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy671 (st : tokenizer_state) : token = +and yy693 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x90'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy668 [@tailcall]) st + (yy690 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy671 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy693 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy672 (st : tokenizer_state) : token = +and yy694 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy668 [@tailcall]) st + (yy690 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy672 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy694 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy673 (st : tokenizer_state) : token = +and yy695 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x8F' -> st.yycursor <- st.yycursor + 1; - (yy668 [@tailcall]) st + (yy690 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy673 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy695 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy674 (st : tokenizer_state) : token = +and yy696 (st : tokenizer_state) : token = st.yyaccept <- 10; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -11046,81 +11246,81 @@ and yy674 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '0'..'9' | '_' -> st.yycursor <- st.yycursor + 1; - (yy674 [@tailcall]) st + (yy696 [@tailcall]) st | 'E' | 'e' -> st.yycursor <- st.yycursor + 1; - (yy629 [@tailcall]) st + (yy651 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy674 [@tailcall]) st - else (yy675 [@tailcall]) st + if (st.refill st) then (yy696 [@tailcall]) st + else (yy697 [@tailcall]) st ) else ( - (yy675 [@tailcall]) st + (yy697 [@tailcall]) st ) -and yy675 (st : tokenizer_state) : token = +and yy697 (st : tokenizer_state) : token = FLOAT (lexeme st) -and yy676 (st : tokenizer_state) : token = +and yy698 (st : tokenizer_state) : token = st.yyaccept <- 9; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x00' -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy676 [@tailcall]) st - else (yy627 [@tailcall]) st + if (st.refill st) then (yy698 [@tailcall]) st + else (yy649 [@tailcall]) st ) else ( - (yy627 [@tailcall]) st + (yy649 [@tailcall]) st ) | '0'..'9' -> st.yycursor <- st.yycursor + 1; - (yy677 [@tailcall]) st - | _ -> (yy626 [@tailcall]) st yych + (yy699 [@tailcall]) st + | _ -> (yy648 [@tailcall]) st yych -and yy677 (st : tokenizer_state) : token = +and yy699 (st : tokenizer_state) : token = st.yyaccept <- 10; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -11136,57 +11336,57 @@ and yy677 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '0'..'9' | '_' -> st.yycursor <- st.yycursor + 1; - (yy677 [@tailcall]) st + (yy699 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy677 [@tailcall]) st - else (yy675 [@tailcall]) st + if (st.refill st) then (yy699 [@tailcall]) st + else (yy697 [@tailcall]) st ) else ( - (yy675 [@tailcall]) st + (yy697 [@tailcall]) st ) -and yy678 (st : tokenizer_state) : token = +and yy700 (st : tokenizer_state) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -11202,57 +11402,57 @@ and yy678 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '0'..'1' | '_' -> st.yycursor <- st.yycursor + 1; - (yy678 [@tailcall]) st + (yy700 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy678 [@tailcall]) st - else (yy563 [@tailcall]) st + if (st.refill st) then (yy700 [@tailcall]) st + else (yy585 [@tailcall]) st ) else ( - (yy563 [@tailcall]) st + (yy585 [@tailcall]) st ) -and yy679 (st : tokenizer_state) : token = +and yy701 (st : tokenizer_state) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -11268,57 +11468,57 @@ and yy679 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '0'..'7' | '_' -> st.yycursor <- st.yycursor + 1; - (yy679 [@tailcall]) st + (yy701 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy679 [@tailcall]) st - else (yy563 [@tailcall]) st + if (st.refill st) then (yy701 [@tailcall]) st + else (yy585 [@tailcall]) st ) else ( - (yy563 [@tailcall]) st + (yy585 [@tailcall]) st ) -and yy680 (st : tokenizer_state) : token = +and yy702 (st : tokenizer_state) : token = st.yyaccept <- 4; st.yymarker <- st.yycursor; let yych = Bytes.unsafe_get st.yyinput st.yycursor in @@ -11336,122 +11536,122 @@ and yy680 (st : tokenizer_state) : token = | '|' | '~' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | '0'..'9' | 'A'..'F' | '_' | 'a'..'f' -> st.yycursor <- st.yycursor + 1; - (yy680 [@tailcall]) st + (yy702 [@tailcall]) st | '\xC2' -> st.yycursor <- st.yycursor + 1; - (yy633 [@tailcall]) st + (yy655 [@tailcall]) st | '\xC3'..'\xDF' -> st.yycursor <- st.yycursor + 1; - (yy634 [@tailcall]) st + (yy656 [@tailcall]) st | '\xE0' -> st.yycursor <- st.yycursor + 1; - (yy635 [@tailcall]) st + (yy657 [@tailcall]) st | '\xE1' -> st.yycursor <- st.yycursor + 1; - (yy636 [@tailcall]) st + (yy658 [@tailcall]) st | '\xE2' -> st.yycursor <- st.yycursor + 1; - (yy637 [@tailcall]) st + (yy659 [@tailcall]) st | '\xE3' -> st.yycursor <- st.yycursor + 1; - (yy638 [@tailcall]) st + (yy660 [@tailcall]) st | '\xE4'..'\xEC' | '\xEE' -> st.yycursor <- st.yycursor + 1; - (yy639 [@tailcall]) st + (yy661 [@tailcall]) st | '\xED' -> st.yycursor <- st.yycursor + 1; - (yy640 [@tailcall]) st + (yy662 [@tailcall]) st | '\xEF' -> st.yycursor <- st.yycursor + 1; - (yy641 [@tailcall]) st + (yy663 [@tailcall]) st | '\xF0' -> st.yycursor <- st.yycursor + 1; - (yy642 [@tailcall]) st + (yy664 [@tailcall]) st | '\xF1'..'\xF3' -> st.yycursor <- st.yycursor + 1; - (yy643 [@tailcall]) st + (yy665 [@tailcall]) st | '\xF4' -> st.yycursor <- st.yycursor + 1; - (yy644 [@tailcall]) st + (yy666 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy680 [@tailcall]) st - else (yy563 [@tailcall]) st + if (st.refill st) then (yy702 [@tailcall]) st + else (yy585 [@tailcall]) st ) else ( - (yy563 [@tailcall]) st + (yy585 [@tailcall]) st ) -and yy681 (st : tokenizer_state) : token = +and yy703 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy681 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy703 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy682 (st : tokenizer_state) : token = +and yy704 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x8B'..'\x8D' | '\x90'..'\xA7' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy682 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy704 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy683 (st : tokenizer_state) : token = +and yy705 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy683 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy705 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy684 (st : tokenizer_state) : token = +and yy706 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy625 [@tailcall]) st + (yy647 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy684 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy706 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy685 (st : tokenizer_state) : token = +and yy707 (st : tokenizer_state) : token = BOM -and yy686 (st : tokenizer_state) : token = +and yy708 (st : tokenizer_state) : token = st.t1 <- st.yycursor; st.t1 <- st.t1 - 3; @@ -11460,79 +11660,74 @@ and yy686 (st : tokenizer_state) : token = raw_string_multiline st hashlen -and yy687 (st : tokenizer_state) : token = +and yy709 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x81'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy687 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy709 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy688 (st : tokenizer_state) : token = +and yy710 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x8B'..'\x8D' | '\x90'..'\xA7' | '\xB0'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy688 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy710 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy689 (st : tokenizer_state) : token = +and yy711 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\x9E' | '\xA0'..'\xA5' | '\xAA'..'\xBF' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy689 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy711 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy690 (st : tokenizer_state) : token = +and yy712 (st : tokenizer_state) : token = let yych = Bytes.unsafe_get st.yyinput st.yycursor in match yych with | '\x80'..'\xBE' -> st.yycursor <- st.yycursor + 1; - (yy620 [@tailcall]) st + (yy642 [@tailcall]) st | _ -> if (st.yylimit <= st.yycursor) then ( - if (st.refill st) then (yy690 [@tailcall]) st - else (yy585 [@tailcall]) st + if (st.refill st) then (yy712 [@tailcall]) st + else (yy607 [@tailcall]) st ) else ( - (yy585 [@tailcall]) st + (yy607 [@tailcall]) st ) -and yy691 (st : tokenizer_state) : token = +and yy713 (st : tokenizer_state) : token = EOF -and main_body (st : tokenizer_state) : token = - (yy543 [@tailcall]) st +and main (st : tokenizer_state) : token = + (yy564 [@tailcall]) st -and main st = - save_token_position st; - save_start_position st; - main_body st - let main_tokenizer st = let lexer () = let token = main st in diff --git a/src/lexer.ml.re b/src/lexer.ml.re index 399a7e3..3ee4257 100644 --- a/src/lexer.ml.re +++ b/src/lexer.ml.re @@ -349,29 +349,35 @@ let escape_string = function (* Tokenizer *) +%{rules:tokenizer_base + ^ { save_start_position st; } + * { malformed_utf8 st } +%} + %{local re2c:YYFN = ["multiline_comment;unit", "st;tokenizer_state", "depth;int"]; + !use:tokenizer_base; newline { newline st; multiline_comment st depth } "/*" { multiline_comment st (depth + 1) } "*/" { if depth <= 0 then () else multiline_comment st (depth - 1) } $ { error st "Unterminated comment" } any { multiline_comment st depth } - * { malformed_utf8 st } %} %{local re2c:YYFN = ["singleline_comment;unit", "st;tokenizer_state"]; + !use:tokenizer_base; newline { newline st } $ { () } any+ { singleline_comment st } - * { malformed_utf8 st } %} %{local - re2c:YYFN = ["line_cont_body;unit", "st;tokenizer_state"]; + re2c:YYFN = ["line_cont;unit", "st;tokenizer_state"]; + !use:tokenizer_base; newline { newline st } ws { line_cont st } "//" { singleline_comment st } @@ -381,37 +387,33 @@ let escape_string = function error st @@ sprintf "Illegal character '%s' after the '\\' line continuation" (lexeme st) } - * { malformed_utf8 st } %} -and line_cont st = save_start_position st; line_cont_body st - %{ re2c:YYFN = ["whitespace_escape;unit", "st;tokenizer_state"]; + !use:tokenizer_base; newline { newline st; whitespace_escape st } ws { whitespace_escape st } $ { () } "" / (any \ whitespace_char) { () } - * { malformed_utf8 st } %} %{local re2c:YYFN = ["validate_multiline_start;unit", "st;tokenizer_state"]; + + !use:tokenizer_base; "" / newline { () } $ { error st "A multiline string must start with newline" } - * { error st "A multiline string must start with newline" } + any { error st "A multiline string must start with newline" } %} -let validate_multiline_start st = - save_start_position st; - validate_multiline_start st - %{local // This little time traveling oracle goes to the end of the string, finds // the whitespace prefix, and then rollbacks - re2c:YYFN = ["detect_multiline_string_prefix_body;string", "st;tokenizer_state", "rollback_pos;Lexing.position"]; + re2c:YYFN = ["detect_multiline_string_prefix;string", "st;tokenizer_state", "rollback_pos;Lexing.position"]; + !use:tokenizer_base; [\\] ws { whitespace_escape st; detect_multiline_string_prefix st rollback_pos } [\\] newline { newline st; @@ -434,17 +436,14 @@ let validate_multiline_start st = * { detect_multiline_string_prefix st rollback_pos } %} -and detect_multiline_string_prefix st rollback_pos = - save_start_position st; - detect_multiline_string_prefix_body st rollback_pos - %{local // Same, but for raw strings - re2c:YYFN = ["detect_raw_multiline_string_prefix_body;string", + re2c:YYFN = ["detect_raw_multiline_string_prefix;string", "st;tokenizer_state", "exp_hashlen;int", "rollback_pos;Lexing.position"]; + !use:tokenizer_base; newline @t1 ws? @t2 "\"\"\"" @t3 [#]+ { if st.yycursor - st.t3 >= exp_hashlen then begin rollback_to_pos st rollback_pos; @@ -462,10 +461,6 @@ and detect_multiline_string_prefix st rollback_pos = * { detect_raw_multiline_string_prefix st exp_hashlen rollback_pos } %} -and detect_raw_multiline_string_prefix st exp_hashlen rollback_pos = - save_start_position st; - detect_raw_multiline_string_prefix_body st exp_hashlen rollback_pos - let multiline_prefix_check st prefix = let { t1; t2; yyinput; _ } = st in newline ~pos:t1 st; @@ -488,20 +483,21 @@ let multiline_contents strbuf = if len <= 1 then "" else Buffer.sub strbuf 1 (len - 2) %{local - re2c:YYFN = ["string_body;token", "st;tokenizer_state", "prefix;string"]; + re2c:YYFN = ["string;token", "st;tokenizer_state", "prefix;string"]; + ^ { save_start_position st; } newline @t1 ws? / newline { newline ~pos:st.t1 st; (* Any newline is normalized to \n *) Buffer.add_char st.info.strbuf '\n'; (* Skip lines consisting of any whitespace only (do not check the prefix) *) - yyfnmulti' st prefix + yyfnmulti st prefix } newline @t1 ws? @t2 / (any \ whitespace_char) { multiline_prefix_check st prefix; - yyfnmulti' st prefix + yyfnmulti st prefix } - newline { newline st; yyfnmulti' st prefix } + newline { newline st; yyfnmulti st prefix } newline { newline st; error st "Unterminated string" } "\\n" { Buffer.add_char st.info.strbuf '\n'; string st prefix } "\\r" { Buffer.add_char st.info.strbuf '\r'; string st prefix } @@ -532,16 +528,12 @@ let multiline_contents strbuf = "\"\"\"" { QUOTED_STRING (multiline_contents st.info.strbuf) } "\"" { QUOTED_STRING (Buffer.contents st.info.strbuf) } disallowed_char { error st "Illegal character" } - any { add_lexeme_to_buf st st.info.strbuf; yyfnsingle' st prefix } - any { add_lexeme_to_buf st st.info.strbuf; yyfnmulti' st prefix } + any { add_lexeme_to_buf st st.info.strbuf; yyfnsingle st prefix } + any { add_lexeme_to_buf st st.info.strbuf; yyfnmulti st prefix } $ { error st "Unterminated string" } * { malformed_utf8 st } %} -and yyfnsingle' st prefix = save_start_position st; yyfnsingle st prefix -and yyfnmulti' st prefix = save_start_position st; yyfnmulti st prefix -and string st prefix = save_start_position st; string_body st prefix - let string_multiline st = validate_multiline_start st; let prefix = detect_multiline_string_prefix st (make_lexing_end_pos st) in @@ -561,45 +553,40 @@ let check_hashlen st exp_hashlen = true %{local - re2c:YYFN = ["raw_string_body;token", + re2c:YYFN = ["raw_string;token", "st;tokenizer_state", "exp_hashlen;int", "prefix;string"]; + ^ { save_start_position st; } newline @t1 ws? / newline { newline ~pos:st.t1 st; Buffer.add_char st.info.strbuf '\n'; - yyfnrmulti' st exp_hashlen prefix + yyfnrmulti st exp_hashlen prefix } newline @t1 ws? @t2 / (any \ whitespace_char) { multiline_prefix_check st prefix; - yyfnrmulti' st exp_hashlen prefix + yyfnrmulti st exp_hashlen prefix } - newline { newline st; yyfnrmulti' st exp_hashlen prefix } + newline { newline st; yyfnrmulti st exp_hashlen prefix } newline { newline st; error st "Unterminated raw string" } "\"\"\"" @t1 [#]+ { if check_hashlen st exp_hashlen then begin RAW_STRING (multiline_contents st.info.strbuf) - end else yyfnrmulti' st exp_hashlen prefix + end else yyfnrmulti st exp_hashlen prefix } "\"" @t1 [#]+ { if check_hashlen st exp_hashlen then RAW_STRING (Buffer.contents st.info.strbuf) - else yyfnrsingle' st exp_hashlen prefix + else yyfnrsingle st exp_hashlen prefix } disallowed_char { error st "Illegal character" } - any { add_lexeme_to_buf st st.info.strbuf; yyfnrmulti' st exp_hashlen prefix } - any { add_lexeme_to_buf st st.info.strbuf; yyfnrsingle' st exp_hashlen prefix } + any { add_lexeme_to_buf st st.info.strbuf; yyfnrmulti st exp_hashlen prefix } + any { add_lexeme_to_buf st st.info.strbuf; yyfnrsingle st exp_hashlen prefix } $ { error st "Unterminated raw string" } * { malformed_utf8 st } %} -and yyfnrmulti' st a b = save_start_position st; yyfnrmulti st a b -and yyfnrsingle' st a b = save_start_position st; yyfnrsingle st a b -and raw_string st exp_hashlen prefix = - save_start_position st; - raw_string_body st exp_hashlen prefix - let raw_string_multiline st exp_hashlen = validate_multiline_start st; let prefix = detect_raw_multiline_string_prefix st exp_hashlen (make_lexing_end_pos st) in @@ -611,8 +598,10 @@ let raw_string_singleline st exp_hashlen = raw_string st exp_hashlen "" %{local - re2c:YYFN = ["main_body;token", "st;tokenizer_state"]; + re2c:YYFN = ["main;token", "st;tokenizer_state"]; + !use:tokenizer_base; + ^ { save_token_position st; save_start_position st; } ws { main st } newline { newline st; NEWLINE } "//" { singleline_comment st; NEWLINE } @@ -661,15 +650,9 @@ let raw_string_singleline st exp_hashlen = IDENT_STRING (lexeme st) } $ { EOF } - [^] { error st "Illegal character" } - * { malformed_utf8 st } + any { error st "Illegal character" } %} -and main st = - save_token_position st; - save_start_position st; - main_body st - let main_tokenizer st = let lexer () = let token = main st in diff --git a/test/parse.ml b/test/parse.ml index c229189..37da1c6 100644 --- a/test/parse.ml +++ b/test/parse.ml @@ -250,7 +250,7 @@ let%expect_test "multi-line comments can wrap lines" = let%expect_test "unterminated multiline comment" = test {|- /* comment "/*" */ |}; - [%expect {| Error: :1:3-1:22: Unterminated comment |}] + [%expect {| Error: :1:22-1:22: Unterminated comment |}] let%expect_test "/- can disable a node as a whole" = test {|