package melange
Toolchain to produce JS from Reason/OCaml
Install
Dune Dependency
Authors
Maintainers
Sources
melange-4.0.0-414.tbz
sha256=3c82c3397608c8bbdfbf5b12c0fe9649d0a25dfa5876772ded6330de31c12c93
sha512=7abf9eab5dacac169ac82698685c3f46ff6c5219cba6b6d14abf915029d89559f38ce7f74ef04055fb31805f5d5aeeb74613a65d1d892a40b585153b95725fea
doc/src/melange.js_parser/pattern_cover.ml.html
Source file pattern_cover.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 59
(* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) open Flow_ast open Parser_common open Parser_env module type COVER = sig val as_expression : env -> pattern_cover -> (Loc.t, Loc.t) Expression.t val as_pattern : ?err:Parse_error.t -> env -> pattern_cover -> (Loc.t, Loc.t) Pattern.t val empty_errors : pattern_errors val cons_error : Loc.t * Parse_error.t -> pattern_errors -> pattern_errors val rev_append_errors : pattern_errors -> pattern_errors -> pattern_errors val rev_errors : pattern_errors -> pattern_errors end module Cover (Parse : PARSER) : COVER = struct let as_expression env = function | Cover_expr expr -> expr | Cover_patt (expr, { if_expr; if_patt = _ }) -> List.iter (error_at env) if_expr; expr let as_pattern ?(err = Parse_error.InvalidLHSInAssignment) env cover = let expr = match cover with | Cover_expr expr -> expr | Cover_patt (expr, { if_expr = _; if_patt }) -> List.iter (error_at env) if_patt; expr in if not (Parse.is_assignable_lhs expr) then error_at env (fst expr, err); (match expr with | (loc, Flow_ast.Expression.Identifier (_, { Flow_ast.Identifier.name; comments = _ })) when is_restricted name -> strict_error_at env (loc, Parse_error.StrictLHSAssignment) | _ -> ()); Parse.pattern_from_expr env expr let empty_errors = { if_patt = []; if_expr = [] } let cons_error err { if_patt; if_expr } = { if_patt = err :: if_patt; if_expr = err :: if_expr } let rev_append_errors a b = { if_patt = List.rev_append a.if_patt b.if_patt; if_expr = List.rev_append a.if_expr b.if_expr } let rev_errors a = { if_patt = List.rev a.if_patt; if_expr = List.rev a.if_expr } end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>