mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 07:51:43 +03:00
Removed optional condition on meta assertions
This commit is contained in:
parent
6fd013d0d5
commit
c270c5fbab
4
Makefile
4
Makefile
@ -40,9 +40,11 @@ ALLOCATIONS_FAMILIALES_DIR=$(EXAMPLES_DIR)/allocations_familiales
|
||||
ENGLISH_DUMMY_DIR=$(EXAMPLES_DIR)/dummy_english
|
||||
|
||||
allocations_familiales: $(PYGMENTIZE) build
|
||||
$(MAKE) -C $(ALLOCATIONS_FAMILIALES_DIR) allocations_familiales.expired
|
||||
$(MAKE) -C $(ALLOCATIONS_FAMILIALES_DIR) allocations_familiales.pdf
|
||||
|
||||
allocations_familiales_expired: build
|
||||
$(MAKE) -C $(ALLOCATIONS_FAMILIALES_DIR) allocations_familiales.expired
|
||||
|
||||
english: $(PYGMENTIZE) build
|
||||
$(MAKE) -C $(ENGLISH_DUMMY_DIR) english.pdf
|
||||
|
||||
|
@ -102,7 +102,7 @@ champ d'application CalculAllocationsFamiliales :
|
||||
Une allocation forfaitaire par enfant d'un montant fixé par décret est versée pendant un an à la personne ou au ménage qui assume la charge d'un nombre minimum d'enfants également fixé par décret lorsque l'un ou plusieurs des enfants qui ouvraient droit aux allocations familiales atteignent l'âge limite mentionné au 2° de l'article L. 512-3 . Cette allocation est versée à la condition que le ou les enfants répondent aux conditions autres que celles de l'âge pour l'ouverture du droit aux allocations familiales.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
assertion allocation_forfaitaire.montant_versé fixé par décret
|
||||
assertion fixé allocation_forfaitaire.montant_versé par décret
|
||||
|
||||
# Ici, l'ouverture du droit aux allocations familiales est conditionné
|
||||
# au fait d'avoir deux enfants à charges qui répondent aux conditions
|
||||
@ -124,18 +124,18 @@ champ d'application CalculAllocationsFamiliales :
|
||||
Le montant des allocations mentionnées aux deux premiers alinéas du présent article, ainsi que celui des majorations mentionnées à l'article L. 521-3 varient en fonction des ressources du ménage ou de la personne qui a la charge des enfants, selon un barème défini par décret.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
assertion allocations_familiales.montant_versé fixé par décret
|
||||
assertion allocations_familiales.montant_versé varie avec
|
||||
assertion fixé allocations_familiales.montant_versé par décret
|
||||
assertion varie allocations_familiales.montant_versé avec
|
||||
l521_1.ressources_ménage
|
||||
assertion majorations_allocations_familiales.montant_versé fixé par décret
|
||||
assertion majorations_allocations_familiales.montant_versé varie avec
|
||||
assertion fixé majorations_allocations_familiales.montant_versé par décret
|
||||
assertion varie majorations_allocations_familiales.montant_versé avec
|
||||
l521_1.ressources_ménage
|
||||
*/
|
||||
|
||||
Le montant des allocations familiales varie en fonction du nombre d'enfants à charge.
|
||||
/*
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
assertion allocations_familiales.montant_versé varie avec
|
||||
assertion varie allocations_familiales.montant_versé avec
|
||||
nombre de ménage.enfants
|
||||
*/
|
||||
|
||||
@ -154,7 +154,7 @@ Un complément dégressif est versé lorsque les ressources du bénéficiaire d
|
||||
# document.
|
||||
|
||||
champ d'application CalculAllocationsFamiliales :
|
||||
assertion complément_dégressif.montant_versé fixé par décret
|
||||
assertion fixé complément_dégressif.montant_versé par décret
|
||||
*/
|
||||
|
||||
@Article L521-2|LEGIARTI000006743210@
|
||||
@ -294,7 +294,7 @@ Le montant des prestations familiales est déterminé d'après des bases mensuel
|
||||
/*
|
||||
# Idem que L521-1, on ne formalise pas ici l'évolution de la BMPA
|
||||
champ d'application PrestationsFamiliales :
|
||||
assertion prestations_familiales.base_mensuelle fixé par décret
|
||||
assertion fixé prestations_familiales.base_mensuelle par décret
|
||||
*/
|
||||
|
||||
@@Livre 7 : Régimes divers - Dispositions diverses@@++
|
||||
|
@ -142,17 +142,20 @@ type definition = {
|
||||
|
||||
type variation_typ = Increasing | Decreasing
|
||||
|
||||
type assertion_content =
|
||||
| Assert of expression
|
||||
type meta_assertion =
|
||||
| FixedBy of qident Pos.marked * ident Pos.marked
|
||||
| VariesWith of qident Pos.marked * expression Pos.marked * variation_typ Pos.marked option
|
||||
|
||||
type assertion = {
|
||||
assertion_condition : expression Pos.marked option;
|
||||
assertion_content : assertion_content Pos.marked;
|
||||
assertion_content : expression Pos.marked;
|
||||
}
|
||||
|
||||
type field_use_item = Rule of rule | Definition of definition | Assertion of assertion
|
||||
type field_use_item =
|
||||
| Rule of rule
|
||||
| Definition of definition
|
||||
| Assertion of assertion
|
||||
| MetaAssertion of meta_assertion
|
||||
|
||||
type field_use = {
|
||||
field_use_name : constructor Pos.marked;
|
||||
|
@ -155,9 +155,12 @@ let rec lex_code_en lexbuf =
|
||||
| "assertion" ->
|
||||
update_and_acc lexbuf;
|
||||
ASSERTION
|
||||
| "varies with" ->
|
||||
| "varies" ->
|
||||
update_and_acc lexbuf;
|
||||
VARIES_WITH
|
||||
VARIES
|
||||
| "with" ->
|
||||
update_and_acc lexbuf;
|
||||
WITH_V
|
||||
| "for" ->
|
||||
update_and_acc lexbuf;
|
||||
FOR
|
||||
|
@ -160,9 +160,12 @@ let rec lex_code_fr lexbuf =
|
||||
| "assertion" ->
|
||||
update_and_acc lexbuf;
|
||||
ASSERTION
|
||||
| "varie avec" ->
|
||||
| "varie" ->
|
||||
update_and_acc lexbuf;
|
||||
VARIES_WITH
|
||||
VARIES
|
||||
| "avec" ->
|
||||
update_and_acc lexbuf;
|
||||
WITH_V
|
||||
| "pour" ->
|
||||
update_and_acc lexbuf;
|
||||
FOR
|
||||
|
@ -38,7 +38,7 @@
|
||||
%token DOT AND OR LPAREN RPAREN OPTIONAL EQUAL
|
||||
%token CARDINAL LESSER_EQUAL GREATER_EQUAL
|
||||
%token ASSERTION FIXED BY YEAR
|
||||
%token PLUS MINUS MULT DIV MATCH WITH VARIES_WITH
|
||||
%token PLUS MINUS MULT DIV MATCH WITH VARIES WITH_V
|
||||
%token FOR ALL WE_HAVE INCREASING DECREASING
|
||||
%token NOT BOOLEAN PERCENT ARROW
|
||||
%token FIELD FILLED EURO NOT_EQUAL DEFINITION
|
||||
@ -322,15 +322,18 @@ variation_type:
|
||||
| DECREASING { (Decreasing, mk_position $sloc) }
|
||||
|
||||
assertion_base:
|
||||
| e = expression { let (e, _) = e in (Assert e, mk_position $sloc) }
|
||||
| q = qident FIXED BY i = ident { (FixedBy (q, i), mk_position $sloc) }
|
||||
| q = qident VARIES_WITH e = base_expression t = option(variation_type) {
|
||||
(VariesWith (q, e, t), mk_position $sloc)
|
||||
}
|
||||
| e = expression { let (e, _) = e in (e, mk_position $sloc) }
|
||||
|
||||
assertion:
|
||||
| cond = option(condition_consequence) base = assertion_base {
|
||||
(cond, base)
|
||||
(Assertion {
|
||||
assertion_condition = cond;
|
||||
assertion_content = base;
|
||||
})
|
||||
}
|
||||
| FIXED q = qident BY i = ident { MetaAssertion (FixedBy (q, i)) }
|
||||
| VARIES q = qident WITH_V e = base_expression t = option(variation_type) {
|
||||
MetaAssertion (VariesWith (q, e, t))
|
||||
}
|
||||
|
||||
application_field_item:
|
||||
@ -341,10 +344,7 @@ application_field_item:
|
||||
let (d, _) = d in (Definition d, mk_position $sloc)
|
||||
}
|
||||
| ASSERTION contents = assertion {
|
||||
(let (cond, cont) = contents in Assertion {
|
||||
assertion_condition = cond;
|
||||
assertion_content = cont;
|
||||
}, mk_position $sloc)
|
||||
(contents, mk_position $sloc)
|
||||
}
|
||||
|
||||
ident:
|
||||
|
@ -112,7 +112,7 @@
|
||||
}
|
||||
}
|
||||
{
|
||||
'match' : '\\b(selon|sous\\s+forme|fixé\\s+par|décroissante|croissante|varie\\s+avec|on\\s+a|dans|tel\\s+que|existe|pour|tout|de|si|alors|sinon)\\b'
|
||||
'match' : '\\b(selon|sous\\s+forme|fixé|par|décroissante|croissante|varie|avec|on\\s+a|dans|tel\\s+que|existe|pour|tout|de|si|alors|sinon)\\b'
|
||||
'name' : 'keyword.control.catala'
|
||||
}
|
||||
{
|
||||
|
@ -213,7 +213,7 @@ code : context {
|
||||
}
|
||||
|
||||
: pattern {
|
||||
regex \= \b(selon|sous\s+forme|fixé\s+par|décroissante|croissante|varie\s+avec|on\s+a|dans|tel\s+que|existe|pour|tout|de|si|alors|sinon)\b
|
||||
regex \= \b(selon|sous\s+forme|fixé|par|décroissante|croissante|varie|avec|on\s+a|dans|tel\s+que|existe|pour|tout|de|si|alors|sinon)\b
|
||||
styles [] = .keyword_expression ;
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ class CatalaLexer(RegexLexer):
|
||||
(u'(\\s*\\#.*$)', bygroups(Comment.Single)),
|
||||
(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, Text, 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, Text, Text)),
|
||||
(u'\\b(selon|sous\\s+forme|fix\xe9\\s+par|d\xe9croissante|croissante|varie\\s+avec|on\\s+a|dans|tel\\s+que|existe|pour|tout|de|si|alors|sinon)\\b', bygroups(Keyword.Reserved)),
|
||||
(u'\\b(selon|sous\\s+forme|fix\xe9|par|d\xe9croissante|croissante|varie|avec|on\\s+a|dans|tel\\s+que|existe|pour|tout|de|si|alors|sinon)\\b', bygroups(Keyword.Reserved)),
|
||||
(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'(\\|[0-9]+/[0-9]+/[0-9]+\\|)', bygroups(Number.Integer)),
|
||||
(u'\\b(vrai|faux)\\b', bygroups(Keyword.Constant)),
|
||||
|
Loading…
Reference in New Issue
Block a user