diff --git a/doc/syntax/syntax.pdf b/doc/syntax/syntax.pdf index 85331593..e1a9fe31 100644 Binary files a/doc/syntax/syntax.pdf and b/doc/syntax/syntax.pdf differ diff --git a/doc/syntax/syntax_en.tex b/doc/syntax/syntax_en.tex index 584188fd..7fbce6b0 100644 --- a/doc/syntax/syntax_en.tex +++ b/doc/syntax/syntax_en.tex @@ -10,8 +10,8 @@ %\usepackage{booktabs} \usepackage{upquote} % Uncurly the quotes \usepackage{etoolbox} % for backquote fix -\usepackage[scaled=0.8]{DejaVuSans} -\usepackage[scaled=0.8]{DejaVuSansMono} +\usepackage[scaled=0.9]{DejaVuSans} +\usepackage[scaled=0.9]{DejaVuSansMono} \usepackage{mdframed} % nice frames \usepackage[nobottomtitles]{titlesec} % better titles \usepackage{enumitem} @@ -19,6 +19,8 @@ \usepackage[a4paper,landscape,margin=1cm,includehead,headsep=2ex,nofoot]{geometry} \usepackage{fancyhdr}\usepackage{hyperref} \usepackage{array} +\usepackage[none]{hyphenat} +\usepackage[document]{ragged2e} \usemintedstyle{tango} @@ -158,6 +160,8 @@ % Text at right %\raggedright +\renewcommand{\baselinestretch}{0.9} + % Set up the interline space in tables \renewcommand{\arraystretch}{0.0} @@ -170,7 +174,7 @@ {\end{minted}} \makeatother -\setlength{\columnsep}{15pt} +\setlength{\columnsep}{12pt} \setlength{\columnseprule}{.1pt} \begin{document} @@ -190,9 +194,9 @@ \begin{multicols}{3} \newlength\cola -\setlength\cola{\dimexpr .6\columnwidth -2\tabcolsep} +\setlength\cola{\dimexpr .65\columnwidth -2\tabcolsep} \newlength\colb -\setlength\colb{\dimexpr .4\columnwidth -2\tabcolsep} +\setlength\colb{\dimexpr .35\columnwidth -2\tabcolsep} \section{Literate programming} @@ -232,7 +236,7 @@ \begin{catala} ```catala - true false + true false ``` \end{catala} & \begin{catala} @@ -253,9 +257,9 @@ \end{catala} \\ \begin{catala} - ```catala - 65536.262144 37% - ``` + ```catala + 65536.262144 37% + ``` \end{catala} & \begin{catala} ```catala @@ -317,12 +321,15 @@ \begin{catala} ```catala - f of x equals x / $12.0 + f of x, y equals + x * y / $12.0 ``` \end{catala} & \begin{catala} ```catala - decimal depends on money + decimal depends on + x content money, + y content decimal ``` \end{catala} @@ -330,7 +337,7 @@ \begin{catala} ```catala - Struct1 { -- fld1: 9 -- fld2: false } + Struct1 { -- fld1: 9 -- fld2: 7% } ``` \end{catala} & \begin{catala} @@ -351,7 +358,6 @@ Enum1 ``` \end{catala} - \\ \end{tabular} @@ -379,21 +385,21 @@ ```catala expr with pattern Case1 expr with pattern Case1 of x - and x >= 2 + and x >= 2 ``` \end{catala} - & Pattern test and optional binding + & Pattern test\newline and optional binding \\ \begin{catala} ```catala struc1.fld2 ``` \end{catala} - & Structure field access + & Field access \\ \begin{catala} ```catala - f of $44.50 + f of $44.50, 1/3 ``` \end{catala} & Function call @@ -407,8 +413,8 @@ \\ \begin{catala} ```catala - output of Scope1 - with { -- fld1: 9 -- fld2: true } + output of Scope1 with + { -- fld1: 9 -- fld2: 15% } ``` \end{catala} & Direct scope call @@ -431,7 +437,7 @@ ```catala declaration structure Struct1: data fld1 content integer - data fld2 content boolean + data fld2 content decimal \end{catala} & Structure declaration \\ @@ -475,6 +481,23 @@ \end{catala} & State transitions declaration \\ + \begin{catala} + ```catala + declaration const content decimal + equals 17.1 + ``` + \end{catala} + & Global definition + \\ + \begin{catala} + ```catala + declaration square content decimal + depends on x content decimal + equals x * x + ``` + \end{catala} + & Global function definition + \\ \end{tabular} \section{Operators and built-ins} @@ -482,18 +505,16 @@ \begin{tabular}{@{}p{\cola}>{\slshape}p{\colb}@{}} \begin{catala} ```catala - not a - a and b - a or b # "or otherwise" - a xor b # exclusive or + not a a and b + a or b # "or otherwise" + a xor b # exclusive or ``` \end{catala} & Logical operators \\ \begin{catala} ```catala - - a - a + b a - b + - a a + b a - b a * b a / b ``` \end{catala} @@ -533,7 +554,6 @@ \end{catala} & Date parts \\ - \begin{catala} ```catala a +! b # integer @@ -571,7 +591,7 @@ definition var1 equals ... ``` \end{catala} - & Unconditional definition + & Unconditional def. \\ \begin{catala} ```catala @@ -589,7 +609,7 @@ consequence fulfilled ``` \end{catala} - & Rule\newline(definition for conditions) + & Rule (definition for conditions) \\ \begin{catala} ```catala @@ -600,17 +620,17 @@ \\ \begin{catala} ```catala - definition f of x equals ... + definition f of x, y equals ... ``` \end{catala} - & Function definition/rule + & Function def. or rule \\ \begin{catala} ```catala label lbl1 definition var1 ... ``` \end{catala} - & Labeled definition or rule + & Labeled def. or rule \\ \begin{catala} ```catala @@ -647,7 +667,6 @@ \section{Collection operations} \begin{tabular}{@{}p{\cola}>{\slshape}p{\colb}@{}} - \begin{catala} ```catala coll contains 3 diff --git a/doc/syntax/syntax_fr.tex b/doc/syntax/syntax_fr.tex index f91f8765..7aec5a4b 100644 --- a/doc/syntax/syntax_fr.tex +++ b/doc/syntax/syntax_fr.tex @@ -10,8 +10,8 @@ %\usepackage{booktabs} \usepackage{upquote} % Uncurly the quotes \usepackage{etoolbox} % for backquote fix -\usepackage[scaled=0.8]{DejaVuSans} -\usepackage[scaled=0.8]{DejaVuSansMono} +\usepackage[scaled=0.9]{DejaVuSans} +\usepackage[scaled=0.9]{DejaVuSansMono} \usepackage{mdframed} % nice frames \usepackage[nobottomtitles]{titlesec} % better titles \usepackage{enumitem} @@ -19,6 +19,8 @@ \usepackage[a4paper,landscape,margin=1cm,includehead,headsep=2ex,nofoot]{geometry} \usepackage{fancyhdr}\usepackage{hyperref} \usepackage{array} +\usepackage[none]{hyphenat} +\usepackage[document]{ragged2e} \usemintedstyle{tango} @@ -158,6 +160,8 @@ % Text at right %\raggedright +\renewcommand{\baselinestretch}{0.9} + % Set up the interline space in tables \renewcommand{\arraystretch}{0.0} @@ -170,6 +174,7 @@ {\end{minted}} \makeatother +\setlength{\columnsep}{12pt} \setlength{\columnseprule}{.1pt} \begin{document} @@ -189,9 +194,9 @@ \begin{multicols}{3} \newlength\cola -\setlength\cola{\dimexpr .6\columnwidth -2\tabcolsep} +\setlength\cola{\dimexpr .65\columnwidth -2\tabcolsep} \newlength\colb -\setlength\colb{\dimexpr .4\columnwidth -2\tabcolsep} +\setlength\colb{\dimexpr .35\columnwidth -2\tabcolsep} \section{Programmation littéraire} @@ -210,16 +215,10 @@ & Référence au journal officiel \\ \begin{catala} - ```catala - ``` + ```catala ```catala-metadata + ``` ``` \end{catala} - & Bloc de code - \\ - \begin{catala} - ```catala-metadata - ``` - \end{catala} - & Bloc de métadonnées + & Bloc de code / métadonnées \\ \begin{catala} > Inclusion: foo.catala_en @@ -237,7 +236,7 @@ \begin{catala} ```catala - vrai faux + vrai faux ``` \end{catala} & \begin{catala} @@ -245,9 +244,7 @@ booléen ``` \end{catala} - \\ - \begin{catala} ```catala 65536 @@ -258,7 +255,6 @@ entier ``` \end{catala} - \\ \begin{catala} ```catala @@ -270,9 +266,7 @@ décimal ``` \end{catala} - \\ - \begin{catala} ```catala 1 234 567,89€ @@ -327,12 +321,15 @@ \begin{catala} ```catala - f de x égale à x / 12,0€ + f de x, y égal à + x * y / 12,0€ ``` \end{catala} & \begin{catala} ```catala - décimal dépend de argent + décimal dépend de + x contenu argent, + y contenu décimal ``` \end{catala} @@ -340,7 +337,7 @@ \begin{catala} ```catala - Struct1 { -- chp1: 9 -- chp2: faux } + Struct1 { -- chp1: 9 -- chp2: 7% } ``` \end{catala} & \begin{catala} @@ -369,7 +366,7 @@ \begin{tabular}{@{}p{\cola}>{\slshape}p{\colb}@{}} \begin{catala} ```catala - soit x égale à 36 - 5 dans ... + soit x égal à 36 - 5 dans ... ``` \end{catala} & Définition locale @@ -388,7 +385,7 @@ ```catala expr sous forme Cas1 expr sous forme Cas1 de x - et x >= 2 + et x >= 2 ``` \end{catala} & Test de filtrage\newline avec variable optionnelle @@ -402,7 +399,7 @@ \\ \begin{catala} ```catala - f de 44,50€ + f de 44,50€, 1/3 ``` \end{catala} & Appel de fonction @@ -412,22 +409,22 @@ ss_ch1.var0 ``` \end{catala} - & Var. de sous-ch. d'app. + & Var. de s/s-ch. d'app. \\ \begin{catala} ```catala - résultat de ChApp1 - avec { -- chp1: 9 -- chp2: vrai } + résultat de Chp1 + avec { -- chp1: 9 -- chp2: 15% } ``` \end{catala} - & Appel direct\newline du champ d'application + & Appel direct de champ d'application \\ \begin{catala} ```catala si ... alors ... sinon ... ``` \end{catala} - & Branchement conditionnel + & Branchement \\ \end{tabular} @@ -440,7 +437,7 @@ ```catala déclaration structure Struct1: donnée chp1 contenu entier - donnée chp2 contenu booléen + donnée chp2 contenu décimal \end{catala} & Déclaration de structure \\ @@ -455,13 +452,13 @@ \\ \begin{catala} ```catala - déclaration champ d'application ChApp1: + déclaration champ d'application Chp1: interne var1 contenu entier interne var2 condition - ss_ch1 champ d'application ChApp0 + ss_ch1 champ d'application Chp0 ``` \end{catala} - & Déclaration de champ\newline d'application + & Déclaration de champ d'application \\ \begin{catala} ```catala @@ -473,7 +470,7 @@ contexte résultat var7 contenu ... ``` \end{catala} - & Qualificateurs d'entrée-\newline sortie + & Qualificateurs d'entrée-sortie \\ \begin{catala} ```catala @@ -484,6 +481,23 @@ \end{catala} & Transitions d'état \\ + \begin{catala} + ```catala + déclaration const contenu décimal + égal à 17.1 + ``` + \end{catala} + & Définition globale + \\ + \begin{catala} + ```catala + déclaration carré contenu décimal + dépend de x contenu décimal + égal à x * x + ``` + \end{catala} + & Définition de fonction globale + \\ \end{tabular} \section{Opérations} @@ -491,8 +505,7 @@ \begin{tabular}{@{}p{\cola}>{\slshape}p{\colb}@{}} \begin{catala} ```catala - non a - a et b + non a a et b a ou b # "ou à défaut" a ou bien b # ou exclusif ``` @@ -501,8 +514,7 @@ \\ \begin{catala} ```catala - - a - a + b a - b + - a a + b a - b a * b a / b ``` \end{catala} @@ -550,7 +562,7 @@ a +^ b # durée ``` \end{catala} - & Opérateurs à types\newline explicites + & Opérateurs à types explicites \\ \end{tabular} @@ -561,14 +573,14 @@ \begin{tabular}{@{}p{\cola}>{\slshape}p{\colb}@{}} \begin{catala} ```catala - champ d'application ChApp1: ... + champ d'application Chp1: ... ``` \end{catala} & Utilisation \\ \begin{catala} ```catala - champ d'application ChApp1 + champ d'application Chp1 sous condition var1 >= 2: ... ``` \end{catala} @@ -576,16 +588,16 @@ \\ \begin{catala} ```catala - définition var1 égale à ... + définition var1 égal à ... ``` \end{catala} - & Définition inconditionnelle + & Déf. inconditionnelle \\ \begin{catala} ```catala définition var1 sous condition ... - conséquence égale à ... + conséquence égal à ... ``` \end{catala} & Définition conditionnelle @@ -608,24 +620,24 @@ \\ \begin{catala} ```catala - définition f de x égale à ... + définition f de x égal à ... ``` \end{catala} - & Définition de fonction/règle + & Déf./règle fonction \\ \begin{catala} ```catala étiquette étq1 définition var1 ... ``` \end{catala} - & Définition/règle étiquetée + & Déf./règle étiquetée \\ \begin{catala} ```catala exception étq1 définition var1 ... ``` \end{catala} - & Exc. à définition étiquetée + & Exc. à déf. étiquetée \\ \begin{catala} ```catala @@ -638,7 +650,7 @@ ```catala définition var1 état avant - égale à ... + égal à ... ``` \end{catala} & Définition d'états diff --git a/french_law/python/setup_env.sh b/french_law/python/setup_env.sh deleted file mode 100755 index 3cb9092c..00000000 --- a/french_law/python/setup_env.sh +++ /dev/null @@ -1,8 +0,0 @@ -#! /usr/bin/env sh - -set -eu - -cd "$(dirname "$0")" -python3 -m venv env -. env/bin/activate -make dependencies diff --git a/syntax_highlighting/en/pygments/.gitignore b/syntax_highlighting/en/pygments/.gitignore index 49c900e2..1e11953b 100644 --- a/syntax_highlighting/en/pygments/.gitignore +++ b/syntax_highlighting/en/pygments/.gitignore @@ -1,3 +1,3 @@ catala_en_lexer.egg-info __pycache__ - +build diff --git a/syntax_highlighting/fr/catala_fr.iro b/syntax_highlighting/fr/catala_fr.iro index 2054a009..0b43db5e 100644 --- a/syntax_highlighting/fr/catala_fr.iro +++ b/syntax_highlighting/fr/catala_fr.iro @@ -216,7 +216,7 @@ code : context { } : pattern { - regex \= \b(selon|sous\s+forme|fixé|par|décroissante|croissante|varie|avec|on\s+a|soit|dans|champ\s+d'application|dépend\s+de|déclaration|inclusion|contenu|règle|sous\s+condition|condition|donnée|conséquence|rempli|égale\s+à|assertion|définition|état|étiquette|exception)\b + regex \= \b(selon|sous\s+forme|fixé|par|décroissante|croissante|varie|avec|on\s+a|soit|dans|champ\s+d'application|dépend\s+de|déclaration|inclusion|contenu|règle|sous\s+condition|condition|donnée|conséquence|rempli|égal\s+à|assertion|définition|état|étiquette|exception)\b styles [] = .keyword_expression ; } diff --git a/syntax_highlighting/fr/pygments/.gitignore b/syntax_highlighting/fr/pygments/.gitignore index 885c22d0..aa30f561 100644 --- a/syntax_highlighting/fr/pygments/.gitignore +++ b/syntax_highlighting/fr/pygments/.gitignore @@ -1,3 +1,3 @@ catala_fr_lexer.egg-info __pycache__ - +build diff --git a/syntax_highlighting/fr/pygments/catala_fr_lexer/lexer.py b/syntax_highlighting/fr/pygments/catala_fr_lexer/lexer.py index ff4e74ec..0eeceea2 100644 --- a/syntax_highlighting/fr/pygments/catala_fr_lexer/lexer.py +++ b/syntax_highlighting/fr/pygments/catala_fr_lexer/lexer.py @@ -26,7 +26,7 @@ class CatalaFrLexer(RegexLexer): (u'(^```$)', bygroups(String), 'root'), (u'(\\s*\\#.*$)', bygroups(Comment.Single)), (u'(contexte|entr\xe9e|r\xe9sultat|interne)(\\s*)(|r\xe9sultat)(\\s+)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc70-9_\\\']*)', bygroups(Keyword.Declaration, String, Keyword.Declaration, String, Name.Variable)), - (u'\\b(selon|sous\\s+forme|fix\xe9|par|d\xe9croissante|croissante|varie|avec|on\\s+a|soit|dans|champ\\s+d\'application|d\xe9pend\\s+de|d\xe9claration|inclusion|contenu|r\xe8gle|sous\\s+condition|condition|donn\xe9e|cons\xe9quence|rempli|\xe9gale\\s+\xe0|assertion|d\xe9finition|\xe9tat|\xe9tiquette|exception)\\b', bygroups(Keyword.Reserved)), + (u'\\b(selon|sous\\s+forme|fix\xe9|par|d\xe9croissante|croissante|varie|avec|on\\s+a|soit|dans|champ\\s+d\'application|d\xe9pend\\s+de|d\xe9claration|inclusion|contenu|r\xe8gle|sous\\s+condition|condition|donn\xe9e|cons\xe9quence|rempli|\xe9gal\\s+\xe0|assertion|d\xe9finition|\xe9tat|\xe9tiquette|exception)\\b', bygroups(Keyword.Reserved)), (u'\\b(contient|nombre|somme|tel\\s+que|existe|pour|tout|de|si|alors|sinon|est|vide|parmi|maximum|minimum|arrondi)\\b', bygroups(Keyword.Declaration)), (u'(\\|[0-9]+\\-[0-9]+\\-[0-9]+\\|)', bygroups(Number.Integer)), (u'\\b(vrai|faux)\\b', bygroups(Keyword.Constant)), diff --git a/syntax_highlighting/pl/pygments/.gitignore b/syntax_highlighting/pl/pygments/.gitignore index 0591cc25..06296956 100644 --- a/syntax_highlighting/pl/pygments/.gitignore +++ b/syntax_highlighting/pl/pygments/.gitignore @@ -1,3 +1,3 @@ catala_pl_lexer.egg-info __pycache__ - +build