mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 07:51:43 +03:00
Added almost all D521-3
This commit is contained in:
parent
1bce538066
commit
912ae4c75a
@ -251,6 +251,9 @@ let rec lex_code lexbuf =
|
||||
| '*' ->
|
||||
update_and_acc lexbuf;
|
||||
MULT
|
||||
| '%' ->
|
||||
update_and_acc lexbuf;
|
||||
PERCENT
|
||||
| '/' ->
|
||||
update_and_acc lexbuf;
|
||||
DIV
|
||||
|
@ -39,7 +39,7 @@
|
||||
%token ASSERTION FIXED BY YEAR
|
||||
%token PLUS MINUS MULT DIV MATCH WITH VARIES_WITH
|
||||
%token FOR ALL WE_HAVE INCREASING DECREASING
|
||||
%token NOT BOOLEAN
|
||||
%token NOT BOOLEAN PERCENT
|
||||
%token FIELD FILLED IFF EURO NOT_EQUAL DEFINITION
|
||||
%token STRUCT CONTENT IF THEN DEPENDS DECLARATION
|
||||
%token CONTEXT INCLUDES ENUM ELSE DATE SUM
|
||||
@ -90,6 +90,7 @@ num_literal:
|
||||
|
||||
literal:
|
||||
| num_literal {}
|
||||
| num_literal PERCENT {}
|
||||
| num_literal EURO {}
|
||||
| INT_LITERAL date_qualifier {}
|
||||
| CONSTRUCTOR option(constructor_payload) {}
|
||||
|
@ -116,7 +116,7 @@
|
||||
'name' : 'keyword.control.lawspec'
|
||||
}
|
||||
{
|
||||
'match' : '\\b(champ\\s+d\'application|si\\s+et\\s+seulement\\s+si|dépend\\s+de|déclaration|inclus|collection|contenu|optionnel|structure|énumération|contexte|règle|sous condition|conséquence|rempli|égal\\s+à|assertion|définition)\\b'
|
||||
'match' : '\\b(champ\\s+d\'application|si\\s+et\\s+seulement\\s+si|dépend\\s+de|déclaration|inclus|collection|contenu|optionnel|structure|énumération|contexte|règle|sous condition|conséquence|sinon|rempli|égal\\s+à|assertion|définition)\\b'
|
||||
'name' : 'keyword.lawspec'
|
||||
}
|
||||
{
|
||||
@ -132,11 +132,11 @@
|
||||
'name' : 'punctuation.lawspec'
|
||||
}
|
||||
{
|
||||
'match' : '(\\+|\\-|\\*|/|\\!|ou|et|=|>|<)'
|
||||
'match' : '(\\+|\\-|\\*|/|\\!|ou|et|=|>|<|\\x{20ac}|%)'
|
||||
'name' : 'keyword.operator.lawspec'
|
||||
}
|
||||
{
|
||||
'match' : '\\b(entier|booléen|date|montant|décimal|décret|loi|an|mois|jour|\\x{20ac}|nombre|date_aujourd_hui|somme)\\b'
|
||||
'match' : '\\b(entier|booléen|date|montant|décimal|décret|loi|an|mois|jour|nombre|date_aujourd_hui|somme)\\b'
|
||||
'name' : 'support.type.lawspec'
|
||||
}
|
||||
{
|
||||
|
@ -205,7 +205,7 @@ code : context {
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= \b(champ\s+d'application|si\s+et\s+seulement\s+si|dépend\s+de|déclaration|inclus|collection|contenu|optionnel|structure|énumération|contexte|règle|sous condition|conséquence|rempli|égal\s+à|assertion|définition)\b
|
||||
regex \= \b(champ\s+d'application|si\s+et\s+seulement\s+si|dépend\s+de|déclaration|inclus|collection|contenu|optionnel|structure|énumération|contexte|règle|sous condition|conséquence|sinon|rempli|égal\s+à|assertion|définition)\b
|
||||
styles [] = .keyword_rule ;
|
||||
}
|
||||
|
||||
@ -225,12 +225,12 @@ code : context {
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= (\+|\-|\*|/|\!|ou|et|=|>|<)
|
||||
regex \= (\+|\-|\*|/|\!|ou|et|=|>|<|\u20ac|%)
|
||||
styles [] = .operator;
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= \b(entier|booléen|date|montant|décimal|décret|loi|an|mois|jour|\u20ac|nombre|somme|date_aujourd_hui)\b
|
||||
regex \= \b(entier|booléen|date|montant|décimal|décret|loi|an|mois|jour|nombre|somme|date_aujourd_hui)\b
|
||||
styles [] = .primitive;
|
||||
}
|
||||
|
||||
|
@ -25,12 +25,12 @@ class LawspecLexer(RegexLexer):
|
||||
(u'(contexte)(\\s+)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)', bygroups(Keyword.Declaration, String, Name.Variable)),
|
||||
(u'(donn\xe9e|condition)(\\s+)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)', bygroups(Keyword.Declaration, String, Text)),
|
||||
(u'\\b(selon|sous\\s+forme|fix\xe9\\s+par|d\xe9croissante|croissante|varie\\s+avec|on\\s+a|dans|tel\\s+que|pour|tout|existe|de)\\b', bygroups(Keyword)),
|
||||
(u'\\b(champ\\s+d\'application|si\\s+et\\s+seulement\\s+si|d\xe9pend\\s+de|d\xe9claration|inclus|collection|contenu|optionnel|structure|\xe9num\xe9ration|contexte|r\xe8gle|sous condition|cons\xe9quence|rempli|\xe9gal\\s+\xe0|assertion|d\xe9finition)\\b', bygroups(Keyword.Declaration)),
|
||||
(u'\\b(champ\\s+d\'application|si\\s+et\\s+seulement\\s+si|d\xe9pend\\s+de|d\xe9claration|inclus|collection|contenu|optionnel|structure|\xe9num\xe9ration|contexte|r\xe8gle|sous condition|cons\xe9quence|sinon|rempli|\xe9gal\\s+\xe0|assertion|d\xe9finition)\\b', bygroups(Keyword.Declaration)),
|
||||
(u'\\b(vrai|faux)\\b', bygroups(Keyword.Constant)),
|
||||
(u'\\b([0-9]+(\\.[0.9]*|))\\b', bygroups(Number.Integer)),
|
||||
(u'(\\-\\-|\\;|\\.|\\,|\\:|\\(|\\))', bygroups(Operator)),
|
||||
(u'(\\+|\\-|\\*|/|\\!|ou|et|=|>|<)', bygroups(Operator)),
|
||||
(u'\\b(entier|bool\xe9en|date|d\xe9cimal|montant|d\xe9cret|loi|an|mois|jour|\u20ac|nombre|date_aujourd_hui|somme)\\b', bygroups(Keyword.Type)),
|
||||
(u'(\\+|\\-|\\*|/|\\!|ou|et|=|>|<|\u20ac|%)', bygroups(Operator)),
|
||||
(u'\\b(entier|bool\xe9en|date|d\xe9cimal|montant|d\xe9cret|loi|an|mois|jour|nombre|date_aujourd_hui|somme)\\b', bygroups(Keyword.Type)),
|
||||
(u'\\b([A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)\\b', bygroups(Name.Class, Operator, Name.Variable)),
|
||||
(u'\\b([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\'\\.]*)\\b', bygroups(Name.Variable, Operator, Text)),
|
||||
(u'\\b([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)\\b', bygroups(Name.Variable)),
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
|
||||
déclaration structure Personne :
|
||||
# Pas de champs
|
||||
# Pas de données
|
||||
|
||||
déclaration structure ParentsGardeAlternée :
|
||||
donnée parent1 contenu Personne
|
||||
@ -132,8 +132,11 @@ déclaration structure L521_3 :
|
||||
dépend de Enfant
|
||||
donnée majorations_allocations_familiales contenu montant
|
||||
|
||||
déclaration structure L551_1 :
|
||||
donnée base_mensuelle_prestations_familiales contenu montant
|
||||
|
||||
déclaration structure R521_3 :
|
||||
donnée allocations_familiales_total_enfants_à_charge contenu montant
|
||||
donnée allocations_familiales_avec_garde_alternée contenu montant
|
||||
donnée rapport_enfants_total_moyen contenu décimal
|
||||
donnée nombre_total_enfants contenu entier
|
||||
donnée nombre_moyen_enfants contenu décimal
|
||||
@ -143,6 +146,14 @@ déclaration structure R521_4 :
|
||||
contenu montant
|
||||
dépend de Enfant
|
||||
|
||||
déclaration structure D521_1 :
|
||||
donnée montant_deuxieme_enfant contenu montant
|
||||
donnée montant_troisième_enfant_et_plus contenu montant
|
||||
|
||||
déclaration structure D521_3 :
|
||||
donnée plafond_I contenu montant
|
||||
donnée plafond_II contenu montant
|
||||
|
||||
déclaration champ d'application CalculPrestationsFamiliales :
|
||||
# Les règles déclarées dans PrestationsFamiliales pourront utiliser
|
||||
# ménage et l512_3 et leur données associées
|
||||
@ -158,6 +169,11 @@ déclaration champ d'application CalculAllocationsFamiliales :
|
||||
contexte l521_1 structure L521_1
|
||||
contexte l521_2 structure L521_2
|
||||
contexte l521_3 structure L521_3
|
||||
contexte l551_1 structure L551_1
|
||||
contexte r521_3 structure R521_4
|
||||
contexte r521_4 structure R521_4
|
||||
contexte d521_1 structure D521_1
|
||||
contexte d521_3 structure D521_3
|
||||
inclus champ d'application CalculPrestationsFamiliales contexte
|
||||
AllocationsFamiliales.ménage = PrestationsFamiliales.ménage
|
||||
# AllocationsFamiliales est un cas particulier de PrestationsFamiliales,
|
||||
@ -420,6 +436,13 @@ champ d'application CalculAllocationsFamiliales :
|
||||
rempli
|
||||
*/
|
||||
|
||||
@Article L.551-1@
|
||||
Le montant des prestations familiales est déterminé d'après des bases mensuelles de calcul revalorisées au 1er avril de chaque année par application du coefficient mentionné à l'article L. 161-25.
|
||||
/*
|
||||
# Voir déclaration structure L551_1 dans les métadonnées. Idem que L521-1,
|
||||
# on ne formalise pas ici l'évolution de la BAMF
|
||||
*/
|
||||
|
||||
@Article R521-1@ L'âge mentionné au premier alinéa de l'article L. 521-3 à partir duquel les enfants ouvrent droit à la majoration des allocations familiales est fixé à 14 ans.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
@ -483,8 +506,8 @@ Sous réserve de l'article R. 521-4, dans les situations visées aux 1° et 2°
|
||||
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition l521_1.allocation_familiales égal à
|
||||
r521_3.allocations_familiales_total_enfants_à_charge *
|
||||
définition r521_3.allocations_familiales_avec_garde_alternée égal à
|
||||
l521_1.allocation_familiales *
|
||||
r521_3.rapport_enfants_total_moyen
|
||||
|
||||
définition r521_3.rapport_enfants_total_moyen égal à
|
||||
@ -537,19 +560,92 @@ I.- Pour l'application de l'article L. 521-1, le montant des allocations familia
|
||||
|
||||
1° Lorsque le ménage ou la personne a disposé d'un montant de ressources inférieur ou égal au plafond défini au I de l'article D. 521-3, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à :
|
||||
a) 32 % pour le deuxième enfant à charge ;
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_deuxieme_enfant égal à
|
||||
sous condition nombre de ménage.enfants >= 2
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 32 %
|
||||
sinon 0 €
|
||||
*/
|
||||
b) 41 % pour le troisième enfant à charge et chacun des suivants.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_troisième_enfant_et_plus égal à
|
||||
sous condition nombre de ménage.enfants >= 3
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 41 % * (
|
||||
(nombre de ménage.enfants) - 2
|
||||
) sinon 0 €
|
||||
*/
|
||||
La majoration pour âge est fixée à 16 % de la base mensuelle de calcul des prestations familiales ;
|
||||
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.majoration_pour_âge égal à
|
||||
l551_1.base_mensuelle_prestations_familiales * 16 %
|
||||
*/
|
||||
2° Lorsque le ménage ou la personne a disposé d'un montant de ressources supérieur au plafond défini au I de l'article D. 521-3 et inférieur ou égal à celui défini au II du même article, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à :
|
||||
a) 16 % pour le deuxième enfant à charge ;
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_deuxieme_enfant sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_I) et
|
||||
(l521_1.ressources_ménage <= d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
sous condition nombre de ménage.enfants >= 2
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 32 %
|
||||
sinon 0 €
|
||||
*/
|
||||
b) 20,5 % pour le troisième enfant à charge et chacun des suivants.
|
||||
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_troisième_enfant_et_plus sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_I) et
|
||||
(l521_1.ressources_ménage <= d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
sous condition nombre de ménage.enfants >= 3
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 20.5 % * (
|
||||
(nombre de ménage.enfants) - 2
|
||||
) sinon 0 €
|
||||
*/
|
||||
La majoration pour âge est fixée à 8 % de la base mensuelle de calcul des prestations familiales ;
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.majoration_pour_âge sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_I) et
|
||||
(l521_1.ressources_ménage <= d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
l551_1.base_mensuelle_prestations_familiales * 8 %
|
||||
*/
|
||||
|
||||
3° Lorsque le ménage ou la personne a disposé d'un montant de ressources supérieur au plafond défini au II de l'article D. 521-3, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à :
|
||||
a) 8 % pour le deuxième enfant à charge ;
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_deuxieme_enfant sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
sous condition nombre de ménage.enfants >= 2
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 8 %
|
||||
sinon 0 €
|
||||
*/
|
||||
b) 10,25 % pour le troisième enfant à charge et chacun des suivants.
|
||||
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.montant_troisième_enfant_et_plus sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
sous condition nombre de ménage.enfants >= 3
|
||||
conséquence l551_1.base_mensuelle_prestations_familiales * 10.25 % * (
|
||||
(nombre de ménage.enfants) - 2
|
||||
) sinon 0 €
|
||||
*/
|
||||
La majoration pour âge est fixée à 4 % de la base mensuelle de calcul des prestations familiales.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
définition d521_1.majoration_pour_âge sous condition
|
||||
(l521_1.ressources_ménage > d521_3.plafond_II)
|
||||
conséquence égal à
|
||||
l551_1.base_mensuelle_prestations_familiales * 4 %
|
||||
*/
|
||||
|
||||
II.- En application du sixième alinéa de l'article L. 521-1, le montant mensuel des allocations familiales et, le cas échéant, de la majoration pour âge est majoré d'un complément dégressif, lorsque les ressources annuelles du ménage ou de la personne dépassent l'un des plafonds défini au I ou au II de l'article D. 521-3 d'une somme inférieure à douze fois le montant mensuel des allocations familiales augmenté, le cas échéant, de la ou des majorations pour âge.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user