package comby-kernel
A match engine for structural code search and replace that supports ~every language
Install
Dune Dependency
Authors
Maintainers
Sources
comby-kernel.1.7.0.tar.gz
md5=ee6556d8bd9b25ed0445ebe23862e48a
sha512=e6386c8ce5ef14bbcab2b0ead5b1edc39375438f56330d5f02e81e467afe6623a7e299f97f26008d77bbc62850c6dc63a7cbe5b81671b5183ff3adeee5946bb3
doc/src/comby-kernel.parsers/alpha_string_literals.ml.html
Source file alpha_string_literals.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
open Core_kernel open MParser (** Assumes the left and right delimiter are the same, and that these can be escaped. Does not parse a string body containing newlines (as usual when escaping with \n) *) module Escapable = struct module type S = sig val delimiter : string val escape : char end module Make (M : S) = struct (* delimiters can be escaped and parsing continues within the string body *) let escaped_char_s s = any_char s let char_token_s s = ((char M.escape >> escaped_char_s >>= fun c -> return (Format.sprintf {|%c%c|} M.escape c)) <|> (any_char |>> String.of_char) ) s let base_string_literal s = ((string M.delimiter >> (many_until char_token_s (string M.delimiter)) |>> String.concat) >>= fun result -> return (Format.sprintf {|%s%s%s|} M.delimiter result M.delimiter) ) s end end (** Quoted or raw strings. Allows different left and right delimiters, and disallows any sort of escaping. Does not support raw strings with identifiers yet, e.g., {blah|<string body>|blah} (OCaml) or delim`<string body>`delim syntax (Go) *) module Raw = struct module type S = sig val left_delimiter : string val right_delimiter : string end module Make (M : S) = struct let char_token_s s = (any_char_or_nl |>> String.of_char) s let base_string_literal s = (( string M.left_delimiter >> (many_until char_token_s (string M.right_delimiter)) |>> String.concat <?> "raw string literal body") >>= fun result -> return (Format.sprintf {|%s%s%s|} M.left_delimiter result M.right_delimiter) ) s end end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>