Bump version to 0.8.0

Changelog:
---

A lot has been going on, with more than 530 patches and 70 PRs merged since
0.7.0 last summer. In summary:

- Quite a lot of syntax improvements and changes. Checkout the latest
  [cheat-sheet](https://catalalang.github.io/catala/syntax.pdf) for an overview

- Allow local `let ... equals ... in ...` definitions

- Better error messages and positions throughout

- Added the ability to directly call a scope and retrieve its outputs, like a
  function

- Added disambiguation, allowing to access structure fields without specifying
  the structure type each time

- Added automated resolution of operators, allowing e.g. to write just `+` in
  place of all the type-specific operators `+.`, `+$`, `+@`, `+^`, etc.

- More consistent priority for operators. It is no longer allowed to write `a
  and b or c` without parenthesis.

- Added and changed some operators (`date + duration` now allowed either way,
  `int / int` now returns a decimal, added `duration / duration`)

- Added the ability to have variables and functions defined at
  top-level (outside of any scope). See annex A of the tutorial for details.

- Added support for functions with multiple arguments

- Some big refactors in the compiler, allowing much better code sharing between
  the different passes, and making it much easier to extend. Also added the
  possibility to run the type-checker earlier, etc.

- Countless bug-fixes

- Improvements to our proof backend with Z3

- A tool to automatically synchronise with the upstream French law from
  Legifrance
This commit is contained in:
Louis Gesbert 2023-03-08 13:27:16 +01:00
parent 88406072bb
commit deb12d2c4a
20 changed files with 6763 additions and 6539 deletions

View File

@ -29,7 +29,7 @@
buildDunePackage {
pname = "catala";
version = "0.7.0"; # TODO parse `catala.opam` with opam2json
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
minimumOCamlVersion = "4.11";

View File

@ -13,7 +13,7 @@
buildDunePackage {
pname = "clerk";
version = "0.7.0"; # TODO parse `catala.opam` with opam2json
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
minimumOCamlVersion = "4.11";

View File

@ -6,7 +6,7 @@
buildDunePackage {
pname = "french_law";
version = "0.7.0"; # TODO parse `catala.opam` with opam2json
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
minimumOCamlVersion = "4.11";

View File

@ -6,7 +6,7 @@
buildDunePackage rec {
pname = "ninja_utils";
version = "0.7.0"; # TODO parse `catala.opam` with opam2json
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
minimumOCamlVersion = "4.11";

View File

@ -39,5 +39,5 @@ abstract: >-
faithful-by-construction algorithms from
legislative texts.
license: Apache-2.0
version: 0.7.0
version: 0.8.0
date-released: "2022-03-08"

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis:
"Compiler and library for the literate programming language for tax code specification"
description:

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis: "Linter that queries the LégiFrance API to check for correctness and expiration of Catala programs."
maintainer: ["contact@catala-lang.org"]
authors: ["Denis Merigoux"]

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis:
"Build system for Catala, a specification language for tax and social benefits computation rules"
description:

View File

@ -313,7 +313,7 @@ let set_option_globals options : unit =
disable_counterexamples := options.disable_counterexamples;
avoid_exceptions_flag := options.avoid_exceptions
let version = "0.7.0"
let version = "0.8.0"
let info =
let doc =

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis: "Virtual package listing the requirements for a complete Catala dev environment"
maintainer: ["contact@catala-lang.org"]
authors: [

View File

@ -2,7 +2,7 @@
(name catala)
(version 0.7.0)
(version 0.8.0)
(generate_opam_files false)

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis: "A collection of algorithms and computations defined by French law"
description:
"This library contains the implementations of algorithmic portions of French law. The library source code was generated from Catala annotations of the relevant portions of the French law, see https://catala-lang.org"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1517,7 +1517,7 @@ class type ressources_aides_personnelle_logement =
class type contributions_sociales_aides_personnelle_logement =
object
method montant:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let contributions_sociales_aides_personnelle_logement_to_jsoo
(contributions_sociales_aides_personnelle_logement
@ -1526,8 +1526,10 @@ class type contributions_sociales_aides_personnelle_logement =
object%js
method montant = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (contributions_sociales_aides_personnelle_logement.montant (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (contributions_sociales_aides_personnelle_logement.montant
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let contributions_sociales_aides_personnelle_logement_of_jsoo
(contributions_sociales_aides_personnelle_logement
@ -1546,7 +1548,7 @@ class type calcul_aide_personnalisee_logement_locatif =
method participationPersonnelle: Js.number Js.t Js.readonly_prop
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_aide_personnalisee_logement_locatif_to_jsoo
(calcul_aide_personnalisee_logement_locatif
@ -1567,8 +1569,10 @@ class type calcul_aide_personnalisee_logement_locatif =
Js.number_of_float @@ money_to_float calcul_aide_personnalisee_logement_locatif.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_locatif.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_locatif.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_aide_personnalisee_logement_locatif_of_jsoo
(calcul_aide_personnalisee_logement_locatif
@ -1650,7 +1654,7 @@ class type calcul_aide_personnalisee_logement_foyer =
method coefficientPriseEnChargeD83225: Js.number Js.t Js.readonly_prop
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_aide_personnalisee_logement_foyer_to_jsoo
(calcul_aide_personnalisee_logement_foyer
@ -1675,8 +1679,10 @@ class type calcul_aide_personnalisee_logement_foyer =
Js.number_of_float @@ money_to_float calcul_aide_personnalisee_logement_foyer.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_foyer.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_foyer.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_aide_personnalisee_logement_foyer_of_jsoo
(calcul_aide_personnalisee_logement_foyer
@ -1741,7 +1747,7 @@ class type calcul_aide_personnalisee_logement_accession_propriete =
method coefficientPriseEnChargeD83210: Js.number Js.t Js.readonly_prop
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_aide_personnalisee_logement_accession_propriete_to_jsoo
(calcul_aide_personnalisee_logement_accession_propriete
@ -1758,8 +1764,10 @@ class type calcul_aide_personnalisee_logement_accession_propriete =
Js.number_of_float @@ money_to_float calcul_aide_personnalisee_logement_accession_propriete.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_accession_propriete.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement_accession_propriete.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_aide_personnalisee_logement_accession_propriete_of_jsoo
(calcul_aide_personnalisee_logement_accession_propriete
@ -1789,7 +1797,7 @@ class type traitement_formule_aide_finale =
object
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let traitement_formule_aide_finale_to_jsoo (traitement_formule_aide_finale
: TraitementFormuleAideFinale.t) : traitement_formule_aide_finale Js.t =
@ -1798,8 +1806,10 @@ class type traitement_formule_aide_finale =
Js.number_of_float @@ money_to_float traitement_formule_aide_finale.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (traitement_formule_aide_finale.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (traitement_formule_aide_finale.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let traitement_formule_aide_finale_of_jsoo
(traitement_formule_aide_finale : traitement_formule_aide_finale Js.t) :
@ -1815,7 +1825,7 @@ class type calcul_aide_personnalisee_logement =
object
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_aide_personnalisee_logement_to_jsoo
(calcul_aide_personnalisee_logement : CalculAidePersonnaliseeLogement.t)
@ -1825,8 +1835,10 @@ class type calcul_aide_personnalisee_logement =
Js.number_of_float @@ money_to_float calcul_aide_personnalisee_logement.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_aide_personnalisee_logement.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_aide_personnalisee_logement_of_jsoo
(calcul_aide_personnalisee_logement
@ -1870,7 +1882,7 @@ class type calcul_allocation_logement_locatif =
object
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_allocation_logement_locatif_to_jsoo
(calcul_allocation_logement_locatif : CalculAllocationLogementLocatif.t)
@ -1880,8 +1892,10 @@ class type calcul_allocation_logement_locatif =
Js.number_of_float @@ money_to_float calcul_allocation_logement_locatif.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_locatif.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_locatif.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_allocation_logement_locatif_of_jsoo
(calcul_allocation_logement_locatif
@ -1898,7 +1912,7 @@ class type calcul_allocation_logement_accession_propriete =
object
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_allocation_logement_accession_propriete_to_jsoo
(calcul_allocation_logement_accession_propriete
@ -1909,8 +1923,10 @@ class type calcul_allocation_logement_accession_propriete =
Js.number_of_float @@ money_to_float calcul_allocation_logement_accession_propriete.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_accession_propriete.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_accession_propriete.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_allocation_logement_accession_propriete_of_jsoo
(calcul_allocation_logement_accession_propriete
@ -1931,7 +1947,7 @@ class type calcul_allocation_logement_foyer =
method loyerMinimal: Js.number Js.t Js.readonly_prop
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_allocation_logement_foyer_to_jsoo
(calcul_allocation_logement_foyer : CalculAllocationLogementFoyer.t)
@ -1949,8 +1965,10 @@ class type calcul_allocation_logement_foyer =
Js.number_of_float @@ money_to_float calcul_allocation_logement_foyer.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_foyer.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement_foyer.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_allocation_logement_foyer_of_jsoo
(calcul_allocation_logement_foyer
@ -1979,7 +1997,7 @@ class type calcul_allocation_logement =
object
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_allocation_logement_to_jsoo (calcul_allocation_logement
: CalculAllocationLogement.t) : calcul_allocation_logement Js.t =
@ -1988,8 +2006,10 @@ class type calcul_allocation_logement =
Js.number_of_float @@ money_to_float calcul_allocation_logement.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calcul_allocation_logement.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
end
let calcul_allocation_logement_of_jsoo
(calcul_allocation_logement : calcul_allocation_logement Js.t) :
@ -2043,7 +2063,7 @@ class type calculette_aides_au_logement =
method eligibilite: bool Js.t Js.readonly_prop
method aideFinaleFormule: Js.number Js.t Js.readonly_prop
method traitementAideFinale:
(Js.number Js.t, Js.number Js.t) Js.meth_callback Js.meth
(unit, Js.number Js.t -> Js.number Js.t) Js.meth_callback Js.meth
method coefficentsEnfantsGardeAlterneePrisEnCompte:
Js.number Js.t Js.js_array Js.t Js.readonly_prop
end
@ -2055,8 +2075,10 @@ class type calculette_aides_au_logement =
Js.number_of_float @@ money_to_float calculette_aides_au_logement.aide_finale_formule
method traitementAideFinale = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ money_to_float (calculette_aides_au_logement.traitement_aide_finale (money_of_decimal @@ decimal_of_float @@ Js.float_of_number input)))
fun _ (function_input0: Js.number Js.t) ->
Js.number_of_float @@ money_to_float (calculette_aides_au_logement.traitement_aide_finale
(money_of_decimal @@ decimal_of_float @@ Js.float_of_number
function_input0)))
val coefficentsEnfantsGardeAlterneePrisEnCompte =
Js.array @@ Array.map (fun x -> Js.number_of_float @@ decimal_to_float x) calculette_aides_au_logement.coefficents_enfants_garde_alternee_pris_en_compte
end
@ -2769,9 +2791,9 @@ class type informations_prime_de_demenagement =
class type eligibilite_prestations_familiales =
object
method droitOuvert:
(enfant_prestations_familiales Js.t, bool Js.t) Js.meth_callback Js.meth
(unit, enfant_prestations_familiales Js.t -> bool Js.t) Js.meth_callback Js.meth
method conditionsHorsAge:
(enfant_prestations_familiales Js.t, bool Js.t) Js.meth_callback Js.meth
(unit, enfant_prestations_familiales Js.t -> bool Js.t) Js.meth_callback Js.meth
method ageL51232: Runtime_jsoo.Runtime.duration Js.t Js.readonly_prop
method regimeOutreMerL7511: bool Js.t Js.readonly_prop
end
@ -2781,12 +2803,15 @@ class type eligibilite_prestations_familiales =
object%js
method droitOuvert = Js.wrap_meth_callback
(
fun input ->
Js.bool (eligibilite_prestations_familiales.droit_ouvert (enfant_prestations_familiales_of_jsoo input)))
fun _ (function_input0: enfant_prestations_familiales Js.t) ->
Js.bool (eligibilite_prestations_familiales.droit_ouvert (enfant_prestations_familiales_of_jsoo
function_input0)))
method conditionsHorsAge = Js.wrap_meth_callback
(
fun input ->
Js.bool (eligibilite_prestations_familiales.conditions_hors_age (enfant_prestations_familiales_of_jsoo input)))
fun _ (function_input0: enfant_prestations_familiales Js.t) ->
Js.bool (eligibilite_prestations_familiales.conditions_hors_age
(enfant_prestations_familiales_of_jsoo
function_input0)))
val ageL51232 =
duration_to_jsoo eligibilite_prestations_familiales.age_l512_3_2
val regimeOutreMerL7511 =
@ -2921,7 +2946,7 @@ class type eligibilite_aides_personnelle_logement =
method coefficentsEnfantsGardeAlterneePrisEnCompte:
Js.number Js.t Js.js_array Js.t Js.readonly_prop
method condition2R8234:
(personne_a_charge Js.t, bool Js.t) Js.meth_callback Js.meth
(unit, personne_a_charge Js.t -> bool Js.t) Js.meth_callback Js.meth
end
let eligibilite_aides_personnelle_logement_to_jsoo
(eligibilite_aides_personnelle_logement
@ -2938,8 +2963,10 @@ class type eligibilite_aides_personnelle_logement =
Js.array @@ Array.map (fun x -> Js.number_of_float @@ decimal_to_float x) eligibilite_aides_personnelle_logement.coefficents_enfants_garde_alternee_pris_en_compte
method condition2R8234 = Js.wrap_meth_callback
(
fun input ->
Js.bool (eligibilite_aides_personnelle_logement.condition_2_r823_4 (personne_a_charge_of_jsoo input)))
fun _ (function_input0: personne_a_charge Js.t) ->
Js.bool (eligibilite_aides_personnelle_logement.condition_2_r823_4
(personne_a_charge_of_jsoo
function_input0)))
end
let eligibilite_aides_personnelle_logement_of_jsoo
(eligibilite_aides_personnelle_logement
@ -3159,9 +3186,9 @@ class type eligibilite_aides_personnelle_logement_in =
method demandeurIn: demandeur Js.t Js.readonly_prop
method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
method conditionLogementResidencePrincipaleIn:
(unit, bool Js.t) Js.meth_callback Js.meth
(unit, unit -> bool Js.t) Js.meth_callback Js.meth
method conditionLogementSurfaceIn:
(unit, bool Js.t) Js.meth_callback Js.meth
(unit, unit -> bool Js.t) Js.meth_callback Js.meth
end
let eligibilite_aides_personnelle_logement_in_to_jsoo
(eligibilite_aides_personnelle_logement_in
@ -3176,12 +3203,16 @@ class type eligibilite_aides_personnelle_logement_in =
date_to_jsoo eligibilite_aides_personnelle_logement_in.date_courante_in
method conditionLogementResidencePrincipaleIn = Js.wrap_meth_callback
(
fun input ->
Js.bool (eligibilite_aides_personnelle_logement_in.condition_logement_residence_principale_in ( input)))
fun _ (function_input0: unit) ->
Js.bool (eligibilite_aides_personnelle_logement_in.condition_logement_residence_principale_in
(
function_input0)))
method conditionLogementSurfaceIn = Js.wrap_meth_callback
(
fun input ->
Js.bool (eligibilite_aides_personnelle_logement_in.condition_logement_surface_in ( input)))
fun _ (function_input0: unit) ->
Js.bool (eligibilite_aides_personnelle_logement_in.condition_logement_surface_in
(
function_input0)))
end
let eligibilite_aides_personnelle_logement_in_of_jsoo
(eligibilite_aides_personnelle_logement_in
@ -3635,9 +3666,10 @@ class type calcul_aide_personnalisee_logement_foyer_in =
method zoneIn: zone_d_habitation Js.t Js.readonly_prop
method dateCouranteIn: Js.js_string Js.t Js.readonly_prop
method redevanceIn: Js.number Js.t Js.readonly_prop
method condition2Du83225In: (unit, bool Js.t) Js.meth_callback Js.meth
method condition2Du83225In:
(unit, unit -> bool Js.t) Js.meth_callback Js.meth
method nNombrePartsD83225In:
(unit, Js.number Js.t) Js.meth_callback Js.meth
(unit, unit -> Js.number Js.t) Js.meth_callback Js.meth
end
let calcul_aide_personnalisee_logement_foyer_in_to_jsoo
(calcul_aide_personnalisee_logement_foyer_in
@ -3662,12 +3694,16 @@ class type calcul_aide_personnalisee_logement_foyer_in =
Js.number_of_float @@ money_to_float calcul_aide_personnalisee_logement_foyer_in.redevance_in
method condition2Du83225In = Js.wrap_meth_callback
(
fun input ->
Js.bool (calcul_aide_personnalisee_logement_foyer_in.condition_2_du_832_25_in ( input)))
fun _ (function_input0: unit) ->
Js.bool (calcul_aide_personnalisee_logement_foyer_in.condition_2_du_832_25_in
(
function_input0)))
method nNombrePartsD83225In = Js.wrap_meth_callback
(
fun input ->
Js.number_of_float @@ decimal_to_float (calcul_aide_personnalisee_logement_foyer_in.n_nombre_parts_d832_25_in ( input)))
fun _ (function_input0: unit) ->
Js.number_of_float @@ decimal_to_float (calcul_aide_personnalisee_logement_foyer_in.n_nombre_parts_d832_25_in
(
function_input0)))
end
let calcul_aide_personnalisee_logement_foyer_in_of_jsoo
(calcul_aide_personnalisee_logement_foyer_in

File diff suppressed because it is too large Load Diff

View File

@ -532,9 +532,10 @@ class type enfant_le_plus_age =
class type prestations_familiales =
object
method droitOuvert: (enfant Js.t, bool Js.t) Js.meth_callback Js.meth
method droitOuvert:
(unit, enfant Js.t -> bool Js.t) Js.meth_callback Js.meth
method conditionsHorsAge:
(enfant Js.t, bool Js.t) Js.meth_callback Js.meth
(unit, enfant Js.t -> bool Js.t) Js.meth_callback Js.meth
method ageL51232: Runtime_jsoo.Runtime.duration Js.t Js.readonly_prop
method regimeOutreMerL7511: bool Js.t Js.readonly_prop
end
@ -543,12 +544,14 @@ class type prestations_familiales =
object%js
method droitOuvert = Js.wrap_meth_callback
(
fun input ->
Js.bool (prestations_familiales.droit_ouvert (enfant_of_jsoo input)))
fun _ (function_input0: enfant Js.t) ->
Js.bool (prestations_familiales.droit_ouvert (enfant_of_jsoo
function_input0)))
method conditionsHorsAge = Js.wrap_meth_callback
(
fun input ->
Js.bool (prestations_familiales.conditions_hors_age (enfant_of_jsoo input)))
fun _ (function_input0: enfant Js.t) ->
Js.bool (prestations_familiales.conditions_hors_age (enfant_of_jsoo
function_input0)))
val ageL51232 = duration_to_jsoo prestations_familiales.age_l512_3_2
val regimeOutreMerL7511 =
Js.bool prestations_familiales.regime_outre_mer_l751_1

File diff suppressed because it is too large Load Diff

View File

@ -908,10 +908,10 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
"Prologue"]))
plafond_l512_3_2 = temp_plafond_l512_3_2
try:
def temp_conditions_hors_age(param:Enfant):
def temp_conditions_hors_age(enfant:Enfant):
try:
try:
match_arg = param.obligation_scolaire
match_arg = enfant.obligation_scolaire
if match_arg.code == SituationObligationScolaire_Code.Avant:
_ = match_arg.value
temp_conditions_hors_age_1 = False
@ -921,7 +921,7 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
elif match_arg.code == SituationObligationScolaire_Code.Apres:
_ = match_arg.value
temp_conditions_hors_age_1 = True
match_arg_1 = param.obligation_scolaire
match_arg_1 = enfant.obligation_scolaire
if match_arg_1.code == SituationObligationScolaire_Code.Avant:
_ = match_arg_1.value
temp_conditions_hors_age_2 = False
@ -931,7 +931,7 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
elif match_arg_1.code == SituationObligationScolaire_Code.Apres:
_ = match_arg_1.value
temp_conditions_hors_age_2 = False
match_arg_2 = param.obligation_scolaire
match_arg_2 = enfant.obligation_scolaire
if match_arg_2.code == SituationObligationScolaire_Code.Avant:
_ = match_arg_2.value
temp_conditions_hors_age_3 = True
@ -944,7 +944,7 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
if ((temp_conditions_hors_age_3 or
(temp_conditions_hors_age_2 or
temp_conditions_hors_age_1)) and
(param.remuneration_mensuelle <=
(enfant.remuneration_mensuelle <=
plafond_l512_3_2)):
return True
else:
@ -970,17 +970,17 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
"Prologue"]))
conditions_hors_age = temp_conditions_hors_age
try:
def temp_droit_ouvert(param_1:Enfant):
def temp_droit_ouvert(enfant_1:Enfant):
try:
try:
try:
if param_1.beneficie_titre_personnel_aide_personnelle_logement:
if enfant_1.beneficie_titre_personnel_aide_personnelle_logement:
return False
else:
raise EmptyError
except EmptyError:
try:
match_arg_3 = param_1.obligation_scolaire
match_arg_3 = enfant_1.obligation_scolaire
if match_arg_3.code == SituationObligationScolaire_Code.Avant:
_ = match_arg_3.value
temp_droit_ouvert_1 = False
@ -991,15 +991,16 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
_ = match_arg_3.value
temp_droit_ouvert_1 = True
if (temp_droit_ouvert_1 and
((param_1.remuneration_mensuelle <=
((enfant_1.remuneration_mensuelle <=
plafond_l512_3_2) and
((param_1.date_de_naissance + age_l512_3_2) >
((enfant_1.date_de_naissance +
age_l512_3_2) >
date_courante_2))):
return True
else:
raise EmptyError
except EmptyError:
match_arg_4 = param_1.obligation_scolaire
match_arg_4 = enfant_1.obligation_scolaire
if match_arg_4.code == SituationObligationScolaire_Code.Avant:
_ = match_arg_4.value
temp_droit_ouvert_2 = False
@ -1009,7 +1010,7 @@ def prestations_familiales(prestations_familiales_in:PrestationsFamilialesIn):
elif match_arg_4.code == SituationObligationScolaire_Code.Apres:
_ = match_arg_4.value
temp_droit_ouvert_2 = False
match_arg_5 = param_1.obligation_scolaire
match_arg_5 = enfant_1.obligation_scolaire
if match_arg_5.code == SituationObligationScolaire_Code.Avant:
_ = match_arg_5.value
temp_droit_ouvert_3 = True
@ -1058,7 +1059,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
enfants_a_charge = allocations_familiales_in.enfants_a_charge_in
avait_enfant_a_charge_avant_1er_janvier_2012 = allocations_familiales_in.avait_enfant_a_charge_avant_1er_janvier_2012_in
try:
def temp_prise_en_compte(param_2:Enfant):
def temp_prise_en_compte(enfant_2:Enfant):
try:
def temp_prise_en_compte_1(_:Unit):
raise EmptyError
@ -1067,7 +1068,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
def temp_prise_en_compte_3(_:Unit):
try:
try:
match_arg_6 = param_2.prise_en_charge
match_arg_6 = enfant_2.prise_en_charge
if match_arg_6.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_6.value
temp_prise_en_compte_4 = False
@ -1089,7 +1090,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
except EmptyError:
match_arg_7 = param_2.prise_en_charge
match_arg_7 = enfant_2.prise_en_charge
if match_arg_7.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_7.value
temp_prise_en_compte_5 = False
@ -1111,7 +1112,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
except EmptyError:
match_arg_8 = param_2.prise_en_charge
match_arg_8 = enfant_2.prise_en_charge
if match_arg_8.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_8.value
temp_prise_en_compte_6 = False
@ -1133,7 +1134,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
def temp_prise_en_compte_7(_:Unit):
match_arg_9 = param_2.prise_en_charge
match_arg_9 = enfant_2.prise_en_charge
if match_arg_9.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_9.value
temp_prise_en_compte_8 = False
@ -1154,7 +1155,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
def temp_prise_en_compte_9(_:Unit):
match_arg_10 = param_2.prise_en_charge
match_arg_10 = enfant_2.prise_en_charge
if match_arg_10.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_10.value
temp_prise_en_compte_10 = True
@ -1204,7 +1205,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
prise_en_compte = temp_prise_en_compte
try:
def temp_versement(param_3:Enfant):
def temp_versement(enfant_3:Enfant):
try:
def temp_versement_1(_:Unit):
raise EmptyError
@ -1214,7 +1215,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
try:
try:
try:
match_arg_11 = param_3.prise_en_charge
match_arg_11 = enfant_3.prise_en_charge
if match_arg_11.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_11.value
temp_versement_4 = False
@ -1236,7 +1237,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
except EmptyError:
match_arg_12 = param_3.prise_en_charge
match_arg_12 = enfant_3.prise_en_charge
if match_arg_12.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_12.value
temp_versement_5 = True
@ -1258,7 +1259,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
except EmptyError:
match_arg_13 = param_3.prise_en_charge
match_arg_13 = enfant_3.prise_en_charge
if match_arg_13.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_13.value
temp_versement_6 = False
@ -1280,7 +1281,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
except EmptyError:
match_arg_14 = param_3.prise_en_charge
match_arg_14 = enfant_3.prise_en_charge
if match_arg_14.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_14.value
temp_versement_7 = False
@ -1302,7 +1303,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
def temp_versement_8(_:Unit):
match_arg_15 = param_3.prise_en_charge
match_arg_15 = enfant_3.prise_en_charge
if match_arg_15.code == PriseEnCharge_Code.GardeAlterneePartageAllocations:
_ = match_arg_15.value
temp_versement_9 = False
@ -1354,8 +1355,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_nombre_enfants_l521_1 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=145, start_column=11,
end_line=145, end_column=32,
start_line=151, start_column=11,
end_line=151, end_column=32,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1365,8 +1366,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_nombre_enfants_alinea_2_l521_3 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=147, start_column=11,
end_line=147, end_column=41,
start_line=154, start_column=11,
end_line=154, end_column=41,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1378,8 +1379,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_bmaf_dot_date_courante = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=159, start_column=14,
end_line=159, end_column=32,
start_line=167, start_column=14,
end_line=167, end_column=32,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1391,8 +1392,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_prestations_familiales_dot_date_courante = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=155, start_column=14,
end_line=155, end_column=50,
start_line=163, start_column=14,
end_line=163, end_column=50,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1403,8 +1404,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_prestations_familiales_dot_prestation_courante = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=153, start_column=14,
end_line=153, end_column=56,
start_line=161, start_column=14,
end_line=161, end_column=56,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1414,8 +1415,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_prestations_familiales_dot_residence = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=157, start_column=14,
end_line=157, end_column=46,
start_line=165, start_column=14,
end_line=165, end_column=46,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1440,10 +1441,10 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
result_4 = enfant_le_plus_age(EnfantLePlusAgeIn(enfants_in = enfant_le_plus_age_dot_enfants))
enfant_le_plus_age_dot_le_plus_age = result_4.le_plus_age
try:
def temp_age_minimum_alinea_1_l521_3_1(param_4:Enfant):
def temp_age_minimum_alinea_1_l521_3_1(enfant_4:Enfant):
try:
try:
if ((param_4.date_de_naissance +
if ((enfant_4.date_de_naissance +
duration_of_numbers(11,0,0)) <=
date_of_numbers(2008,4,30)):
return version_avril_2008_dot_age_minimum_alinea_1_l521_3
@ -1453,9 +1454,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
return duration_of_numbers(14,0,0)
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=146,
start_line=152,
start_column=11,
end_line=146,
end_line=152,
end_column=38,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -1463,15 +1464,15 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_age_minimum_alinea_1_l521_3_1 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=146, start_column=11,
end_line=146, end_column=38,
start_line=152, start_column=11,
end_line=152, end_column=38,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
age_minimum_alinea_1_l521_3_1 = temp_age_minimum_alinea_1_l521_3_1
try:
def temp_enfants_a_charge_droit_ouvert_prestation_familiale(enfant:Enfant):
return prestations_familiales_dot_droit_ouvert(enfant)
def temp_enfants_a_charge_droit_ouvert_prestation_familiale(enfant_5:Enfant):
return prestations_familiales_dot_droit_ouvert(enfant_5)
temp_enfants_a_charge_droit_ouvert_prestation_familiale_1 = list_filter(temp_enfants_a_charge_droit_ouvert_prestation_familiale,
enfants_a_charge)
except EmptyError:
@ -1484,14 +1485,14 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
enfants_a_charge_droit_ouvert_prestation_familiale = temp_enfants_a_charge_droit_ouvert_prestation_familiale_1
try:
def temp_est_enfant_le_plus_age(param_5:Enfant):
def temp_est_enfant_le_plus_age(enfant_6:Enfant):
try:
return (enfant_le_plus_age_dot_le_plus_age == param_5)
return (enfant_le_plus_age_dot_le_plus_age == enfant_6)
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=148,
start_line=155,
start_column=11,
end_line=148,
end_line=155,
end_column=33,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -1499,8 +1500,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_est_enfant_le_plus_age = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=148, start_column=11,
end_line=148, end_column=33,
start_line=155, start_column=11,
end_line=155, end_column=33,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1548,9 +1549,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
temp_plafond__i_i_d521_3_6 = handle_default(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=150,
start_line=158,
start_column=11,
end_line=150, end_column=28,
end_line=158, end_column=28,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_plafond__i_i_d521_3_5,
@ -1566,8 +1567,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_plafond__i_i_d521_3_6 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=150, start_column=11,
end_line=150, end_column=28,
start_line=158, start_column=11,
end_line=158, end_column=28,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1615,9 +1616,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
temp_plafond__i_d521_3_6 = handle_default(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=149,
start_line=157,
start_column=11,
end_line=149, end_column=27,
end_line=157, end_column=27,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_plafond__i_d521_3_5,
@ -1633,8 +1634,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_plafond__i_d521_3_6 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=149, start_column=11,
end_line=149, end_column=27,
start_line=157, start_column=11,
end_line=157, end_column=27,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -1656,14 +1657,14 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_droit_ouvert_complement = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=132, start_column=11,
end_line=132, end_column=34,
start_line=137, start_column=11,
end_line=137, end_column=34,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
droit_ouvert_complement = temp_droit_ouvert_complement
try:
def temp_droit_ouvert_forfaitaire(param_6:Enfant):
def temp_droit_ouvert_forfaitaire(enfant_7:Enfant):
try:
try:
try:
@ -1676,13 +1677,13 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
if ((list_length(enfants_a_charge) >=
nombre_enfants_alinea_2_l521_3) and
((((param_6.date_de_naissance +
((((enfant_7.date_de_naissance +
prestations_familiales_dot_age_l512_3_2) -
date_courante_3) <
duration_of_numbers(0,0,365)) and
(param_6.a_deja_ouvert_droit_aux_allocations_familiales and
(enfant_7.a_deja_ouvert_droit_aux_allocations_familiales and
prestations_familiales_dot_conditions_hors_age(
param_6)))):
enfant_7)))):
return True
else:
raise EmptyError
@ -1905,8 +1906,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
nombre_total_enfants = temp_nombre_total_enfants
try:
def temp_nombre_moyen_enfants(enfant_1:Enfant):
match_arg_16 = prise_en_compte(enfant_1)
def temp_nombre_moyen_enfants(enfant_8:Enfant):
match_arg_16 = prise_en_compte(enfant_8)
if match_arg_16.code == PriseEnCompte_Code.Complete:
_ = match_arg_16.value
return decimal_of_string("1.")
@ -2185,22 +2186,22 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
droit_ouvert_base = temp_droit_ouvert_base
try:
def temp_droit_ouvert_majoration(param_7:Enfant):
def temp_droit_ouvert_majoration(enfant_9:Enfant):
try:
try:
try:
if ((list_length(enfants_a_charge_droit_ouvert_prestation_familiale) >=
nombre_enfants_alinea_2_l521_3) and
((param_7.date_de_naissance +
age_minimum_alinea_1_l521_3_1(param_7)) <=
((enfant_9.date_de_naissance +
age_minimum_alinea_1_l521_3_1(enfant_9)) <=
date_courante_3)):
return True
else:
raise EmptyError
except EmptyError:
if (not est_enfant_le_plus_age(param_7) and
((param_7.date_de_naissance +
age_minimum_alinea_1_l521_3_1(param_7)) <=
if (not est_enfant_le_plus_age(enfant_9) and
((enfant_9.date_de_naissance +
age_minimum_alinea_1_l521_3_1(enfant_9)) <=
date_courante_3)):
return True
else:
@ -2209,9 +2210,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
return False
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=125,
start_line=126,
start_column=11,
end_line=125,
end_line=126,
end_column=34,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -2219,14 +2220,14 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_droit_ouvert_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=125, start_column=11,
end_line=125, end_column=34,
start_line=126, start_column=11,
end_line=126, end_column=34,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
droit_ouvert_majoration = temp_droit_ouvert_majoration
try:
def temp_complement_degressif(param_8:Money):
def temp_complement_degressif(allocation:Money):
try:
try:
def temp_complement_degressif_1(_:Unit):
@ -2236,9 +2237,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
def temp_complement_degressif_3(_:Unit):
if ((ressources_menage > plafond__i_i_d521_3) and
(ressources_menage <= (plafond__i_i_d521_3 +
(param_8 *
(allocation *
decimal_of_string("12."))))):
return (((plafond__i_i_d521_3 + (param_8 *
return (((plafond__i_i_d521_3 + (allocation *
decimal_of_string("12."))) -
ressources_menage) *
(decimal_of_string("1.") /
@ -2248,9 +2249,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
def temp_complement_degressif_4(_:Unit):
if ((ressources_menage > plafond__i_d521_3) and
(ressources_menage <= (plafond__i_d521_3 +
(param_8 *
(allocation *
decimal_of_string("12."))))):
return (((plafond__i_d521_3 + (param_8 *
return (((plafond__i_d521_3 + (allocation *
decimal_of_string("12."))) -
ressources_menage) *
(decimal_of_string("1.") /
@ -2258,8 +2259,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
return handle_default(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=134, start_column=11,
end_line=134, end_column=31,
start_line=139, start_column=11,
end_line=139, end_column=31,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_complement_degressif_4,
@ -2270,9 +2271,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
return money_of_cents_string("0")
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=134,
start_line=139,
start_column=11,
end_line=134,
end_line=139,
end_column=31,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -2280,8 +2281,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_complement_degressif = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=134, start_column=11,
end_line=134, end_column=31,
start_line=139, start_column=11,
end_line=139, end_column=31,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2312,7 +2313,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
raise EmptyError
temp_montant_verse_forfaitaire_par_enfant_5 = handle_default(
SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=121, start_column=11, end_line=121, end_column=47,
start_line=122, start_column=11, end_line=122, end_column=47,
law_headings=["Allocations familiales", "Champs d'applications",
"Prologue"]), [temp_montant_verse_forfaitaire_par_enfant_4,
temp_montant_verse_forfaitaire_par_enfant_3,
@ -2322,8 +2323,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_verse_forfaitaire_par_enfant_5 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=121, start_column=11,
end_line=121, end_column=47,
start_line=122, start_column=11,
end_line=122, end_column=47,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2638,39 +2639,39 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
rapport_enfants_total_moyen = temp_rapport_enfants_total_moyen
try:
def temp_montant_initial_metropole_majoration(param_9:Enfant):
def temp_montant_initial_metropole_majoration(enfant_10:Enfant):
try:
def temp_montant_initial_metropole_majoration_1(_:Unit):
raise EmptyError
def temp_montant_initial_metropole_majoration_2(_:Unit):
return False
def temp_montant_initial_metropole_majoration_3(_:Unit):
if not droit_ouvert_majoration(param_9):
if not droit_ouvert_majoration(enfant_10):
return money_of_cents_string("0")
else:
raise EmptyError
def temp_montant_initial_metropole_majoration_4(_:Unit):
if ((ressources_menage > plafond__i_i_d521_3) and
droit_ouvert_majoration(param_9)):
droit_ouvert_majoration(enfant_10)):
return (bmaf_dot_montant * decimal_of_string("0.04"))
else:
raise EmptyError
def temp_montant_initial_metropole_majoration_5(_:Unit):
if (((ressources_menage > plafond__i_d521_3) and
(ressources_menage <= plafond__i_i_d521_3)) and
droit_ouvert_majoration(param_9)):
droit_ouvert_majoration(enfant_10)):
return (bmaf_dot_montant * decimal_of_string("0.08"))
else:
raise EmptyError
def temp_montant_initial_metropole_majoration_6(_:Unit):
if ((ressources_menage <= plafond__i_d521_3) and
droit_ouvert_majoration(param_9)):
droit_ouvert_majoration(enfant_10)):
return (bmaf_dot_montant * decimal_of_string("0.16"))
else:
raise EmptyError
return handle_default(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=126, start_column=11,
end_line=126, end_column=47,
start_line=128, start_column=11,
end_line=128, end_column=47,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_montant_initial_metropole_majoration_6,
@ -2681,9 +2682,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
temp_montant_initial_metropole_majoration_1)
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=126,
start_line=128,
start_column=11,
end_line=126,
end_line=128,
end_column=47,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -2691,23 +2692,23 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_initial_metropole_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=126, start_column=11,
end_line=126, end_column=47,
start_line=128, start_column=11,
end_line=128, end_column=47,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
montant_initial_metropole_majoration = temp_montant_initial_metropole_majoration
try:
def temp_montant_verse_forfaitaire(enfant_2:Enfant):
return droit_ouvert_forfaitaire(enfant_2)
def temp_montant_verse_forfaitaire(enfant_11:Enfant):
return droit_ouvert_forfaitaire(enfant_11)
temp_montant_verse_forfaitaire_1 = (montant_verse_forfaitaire_par_enfant *
decimal_of_integer(list_length(list_filter(temp_montant_verse_forfaitaire,
enfants_a_charge))))
except EmptyError:
temp_montant_verse_forfaitaire_1 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=122, start_column=11,
end_line=122, end_column=36,
start_line=123, start_column=11,
end_line=123, end_column=36,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2757,7 +2758,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
montant_initial_base = temp_montant_initial_base_4
try:
def temp_montant_initial_majoration(param_10:Enfant):
def temp_montant_initial_majoration(enfant_12:Enfant):
try:
try:
def temp_montant_initial_majoration_1(_:Unit):
@ -2765,11 +2766,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
def temp_montant_initial_majoration_2(_:Unit):
return False
def temp_montant_initial_majoration_3(_:Unit):
if (droit_ouvert_majoration(param_10) and
if (droit_ouvert_majoration(enfant_12) and
(prestations_familiales_dot_regime_outre_mer_l751_1 and
((list_length(enfants_a_charge_droit_ouvert_prestation_familiale) ==
integer_of_string("1")) and
((param_10.date_de_naissance +
((enfant_12.date_de_naissance +
duration_of_numbers(16,0,0)) <=
date_courante_3)))):
return (bmaf_dot_montant *
@ -2777,14 +2778,14 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
def temp_montant_initial_majoration_4(_:Unit):
if (droit_ouvert_majoration(param_10) and
if (droit_ouvert_majoration(enfant_12) and
(prestations_familiales_dot_regime_outre_mer_l751_1 and
((list_length(enfants_a_charge_droit_ouvert_prestation_familiale) ==
integer_of_string("1")) and
(((param_10.date_de_naissance +
(((enfant_12.date_de_naissance +
duration_of_numbers(11,0,0)) <=
date_courante_3) and
((param_10.date_de_naissance +
((enfant_12.date_de_naissance +
duration_of_numbers(16,0,0)) >
date_courante_3))))):
return (bmaf_dot_montant *
@ -2792,8 +2793,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
else:
raise EmptyError
return handle_default(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=127, start_column=11,
end_line=127, end_column=37,
start_line=130, start_column=11,
end_line=130, end_column=37,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_montant_initial_majoration_4,
@ -2801,12 +2802,12 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
temp_montant_initial_majoration_2,
temp_montant_initial_majoration_1)
except EmptyError:
return montant_initial_metropole_majoration(param_10)
return montant_initial_metropole_majoration(enfant_12)
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=127,
start_line=130,
start_column=11,
end_line=127,
end_line=130,
end_column=37,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -2814,8 +2815,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_initial_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=127, start_column=11,
end_line=127, end_column=37,
start_line=130, start_column=11,
end_line=130, end_column=37,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2850,7 +2851,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
raise EmptyError
temp_montant_verse_complement_pour_forfaitaire_4 = handle_default(
SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=136, start_column=11, end_line=136, end_column=52,
start_line=142, start_column=11, end_line=142, end_column=52,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]), [temp_montant_verse_complement_pour_forfaitaire_3,
@ -2862,8 +2863,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_verse_complement_pour_forfaitaire_4 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=136, start_column=11,
end_line=136, end_column=52,
start_line=142, start_column=11,
end_line=142, end_column=52,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2881,9 +2882,9 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
"Prologue"]))
montant_avec_garde_alternee_base = temp_montant_avec_garde_alternee_base
try:
def temp_montant_avec_garde_alternee_majoration(param_11:Enfant):
def temp_montant_avec_garde_alternee_majoration(enfant_13:Enfant):
try:
match_arg_17 = prise_en_compte(param_11)
match_arg_17 = prise_en_compte(enfant_13)
if match_arg_17.code == PriseEnCompte_Code.Complete:
_ = match_arg_17.value
temp_montant_avec_garde_alternee_majoration_1 = decimal_of_string("1.")
@ -2893,13 +2894,13 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
elif match_arg_17.code == PriseEnCompte_Code.Zero:
_ = match_arg_17.value
temp_montant_avec_garde_alternee_majoration_1 = decimal_of_string("0.")
return (montant_initial_majoration(param_11) *
return (montant_initial_majoration(enfant_13) *
temp_montant_avec_garde_alternee_majoration_1)
except EmptyError:
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=128,
start_line=132,
start_column=11,
end_line=128,
end_line=132,
end_column=49,
law_headings=["Allocations familiales",
"Champs d'applications",
@ -2907,8 +2908,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_avec_garde_alternee_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=128, start_column=11,
end_line=128, end_column=49,
start_line=132, start_column=11,
end_line=132, end_column=49,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2929,8 +2930,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
montant_verse_base = temp_montant_verse_base
try:
if droit_ouvert_base:
def temp_montant_verse_majoration(enfant_3:Enfant):
return montant_avec_garde_alternee_majoration(enfant_3)
def temp_montant_verse_majoration(enfant_14:Enfant):
return montant_avec_garde_alternee_majoration(enfant_14)
def temp_montant_verse_majoration_1(sum1_1:Money, sum2_1:Money):
return (sum1_1 + sum2_1)
temp_montant_verse_majoration_2 = list_reduce(temp_montant_verse_majoration_1,
@ -2942,8 +2943,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_verse_majoration_2 = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=129, start_column=11,
end_line=129, end_column=35,
start_line=134, start_column=11,
end_line=134, end_column=35,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2954,8 +2955,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_base_complement_pour_base_et_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=133, start_column=11,
end_line=133, end_column=58,
start_line=138, start_column=11,
end_line=138, end_column=58,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -2969,8 +2970,8 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn):
except EmptyError:
temp_montant_verse_complement_pour_base_et_majoration = dead_value
raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/prologue.catala_fr",
start_line=135, start_column=11,
end_line=135, end_column=59,
start_line=141, start_column=11,
end_line=141, end_column=59,
law_headings=["Allocations familiales",
"Champs d'applications",
"Prologue"]))
@ -3028,14 +3029,14 @@ def interface_allocations_familiales(interface_allocations_familiales_in:Interfa
i_personne_charge_effective_permanente_remplit_titre__i = interface_allocations_familiales_in.i_personne_charge_effective_permanente_remplit_titre_I_in
i_avait_enfant_a_charge_avant_1er_janvier_2012 = interface_allocations_familiales_in.i_avait_enfant_a_charge_avant_1er_janvier_2012_in
try:
def temp_enfants_a_charge(enfant_4:EnfantEntree):
if ((enfant_4.d_date_de_naissance +
def temp_enfants_a_charge(enfant_15:EnfantEntree):
if ((enfant_15.d_date_de_naissance +
duration_of_numbers(3,0,0)) >=
i_date_courante):
temp_enfants_a_charge_1 = SituationObligationScolaire(SituationObligationScolaire_Code.Avant,
Unit())
else:
if ((enfant_4.d_date_de_naissance +
if ((enfant_15.d_date_de_naissance +
duration_of_numbers(16,0,0)) >=
i_date_courante):
temp_enfants_a_charge_1 = SituationObligationScolaire(SituationObligationScolaire_Code.Pendant,
@ -3043,13 +3044,13 @@ def interface_allocations_familiales(interface_allocations_familiales_in:Interfa
else:
temp_enfants_a_charge_1 = SituationObligationScolaire(SituationObligationScolaire_Code.Apres,
Unit())
return Enfant(identifiant = enfant_4.d_identifiant,
return Enfant(identifiant = enfant_15.d_identifiant,
obligation_scolaire = temp_enfants_a_charge_1,
remuneration_mensuelle = enfant_4.d_remuneration_mensuelle,
date_de_naissance = enfant_4.d_date_de_naissance,
prise_en_charge = enfant_4.d_prise_en_charge,
a_deja_ouvert_droit_aux_allocations_familiales = enfant_4.d_a_deja_ouvert_droit_aux_allocations_familiales,
beneficie_titre_personnel_aide_personnelle_logement = enfant_4.d_beneficie_titre_personnel_aide_personnelle_logement)
remuneration_mensuelle = enfant_15.d_remuneration_mensuelle,
date_de_naissance = enfant_15.d_date_de_naissance,
prise_en_charge = enfant_15.d_prise_en_charge,
a_deja_ouvert_droit_aux_allocations_familiales = enfant_15.d_a_deja_ouvert_droit_aux_allocations_familiales,
beneficie_titre_personnel_aide_personnelle_logement = enfant_15.d_beneficie_titre_personnel_aide_personnelle_logement)
temp_enfants_a_charge_2 = list_map(temp_enfants_a_charge, i_enfants)
except EmptyError:
temp_enfants_a_charge_2 = dead_value

View File

@ -1,5 +1,5 @@
opam-version: "2.0"
version: "0.7.0"
version: "0.8.0"
synopsis:
"A collection of utility functions used to generate Ninja build files"
description: