package melange
Toolchain to produce JS from Reason/OCaml
Install
Dune Dependency
Authors
Maintainers
Sources
melange-5.0.0-52.tbz
sha256=0f28c188cbe7087b9f15ea64f311cc326554fa3ff2102bd5ecccb859e016e164
sha512=9a1f163a31c5715f213240b21f904c7fcee521e8739a612645389a6aefc872f527c2498fc90a4b234dee38cc0cf09fc723a340690b0ae44de8a22d9bc51fee42
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)"
>