From 41eb25e9e0816bbd41175c561dce589979e46456 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 10 Jan 2023 12:05:34 +0100 Subject: [PATCH] Fix code in LaTeX literate output pfffff --- compiler/literate/latex.ml | 4 +- doc/syntax/syntax.tex | 681 ------------------------------------- 2 files changed, 2 insertions(+), 683 deletions(-) delete mode 100644 doc/syntax/syntax.tex diff --git a/compiler/literate/latex.ml b/compiler/literate/latex.ml index 82293e6f..578b6b4f 100644 --- a/compiler/literate/latex.ml +++ b/compiler/literate/latex.ml @@ -122,8 +122,8 @@ let wrap_latex \newunicodechar{→}{$\rightarrow$} \newunicodechar{≠}{$\neq$} -\newcommand*\FancyVerbStartString{```catala} -\newcommand*\FancyVerbStopString{```} +\newcommand*\FancyVerbStartString{\PYG{l+s}{```catala}} +\newcommand*\FancyVerbStopString{\PYG{l+s}{```}} \fvset{ numbers=left, diff --git a/doc/syntax/syntax.tex b/doc/syntax/syntax.tex deleted file mode 100644 index ce0b4e8d..00000000 --- a/doc/syntax/syntax.tex +++ /dev/null @@ -1,681 +0,0 @@ -\documentclass{article} - -\usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} -\usepackage{multicol} -\usepackage{calc} -\usepackage{ifthen} -\usepackage{epsfig} -%\usepackage{bookman} -%\usepackage{booktabs} -\usepackage{upquote} % Uncurly the quotes -\usepackage{etoolbox} % for backquote fix -\usepackage[scaled=0.8]{DejaVuSans} -\usepackage[scaled=0.8]{DejaVuSansMono} -\usepackage{mdframed} % nice frames -\usepackage[nobottomtitles]{titlesec} % better titles -\usepackage{enumitem} -\usepackage{minted} -\usepackage[a4paper,landscape,margin=1cm,includehead,headsep=2ex,nofoot]{geometry} -\usepackage{fancyhdr} -\usepackage{hyperref} - -\usemintedstyle{manni} - -\setlist[itemize]{noitemsep, topsep=0pt} - -% backquote dejavu fix -\makeatletter -\chardef\straightquote@code=\catcode`' -\chardef\backquote@code=\catcode`` -\catcode`'=\active \catcode``=\active -\patchcmd{\@noligs} - {\textasciigrave} - {\fixedtextasciigrave} - {}{} -\newcommand{\fixedtextasciigrave}{% - \makebox[.5em]{\fontencoding{TS1}\fontfamily{fvs}\selectfont\textasciigrave}% Vera Sans -} -\catcode\lq\'=\straightquote@code -\catcode\lq\`=\backquote@code -\makeatletter - -% fancyvrb and mdframed stuff -\newmdenv[bottomline=false,rightline=false]{topleft} -\newmdenv[topline=false,leftline=false]{bottomright} -\DefineVerbatimEnvironment{Verbacorner}{Verbatim}{} -\surroundwithmdframed[bottomline=false,rightline=false]{Verbacorner} -\fvset{commandchars=@\{\}} - -\ifthenelse{\lengthtest { \paperwidth = 11in}} - { \geometry{top=.5in,left=.5in,right=.5in,bottom=.5in} } - {\ifthenelse{ \lengthtest{ \paperwidth = 297mm}} - {\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} } - {\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} } - } -\pagestyle{empty} - -%% \makeatletter -%% \renewcommand{\section}{\@startsection{section}{1}{0mm}% -%% {-1ex plus -.5ex minus -.2ex}% -%% {0.5ex plus .2ex}%x -%% {\normalfont\large\bfseries}} -%% \renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}% -%% {-1ex plus -.5ex minus -.2ex}% -%% {0.5ex plus .2ex}% -%% {\normalfont\normalsize\bfseries}} -%% \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}% -%% {-1ex plus -.5ex minus -.2ex}% -%% {1ex plus .2ex}% -%% {\normalfont\small\bfseries}} -%% \makeatother - -%% \makeatletter -%% \let\origsection\section -%% \renewcommand\section{\vspace{5em}\origsection} -%% \makeatother - -% Don't print section numbers -\setcounter{secnumdepth}{0} - -\setlength{\parindent}{0pt} -\setlength{\parskip}{1ex} - -\pagestyle{fancy} -\newcommand{\makeheader}[3]{ - \fancyhead[L]{ - \begin{minipage}{150pt} - \includegraphics[width=24mm]{by-sa.pdf} - \end{minipage} - } - \fancyhead[C]{ - \LARGE{\bfseries #1} - } - \fancyhead[R]{ - {\scriptsize - #2 $\cdot$ Revision \#1 \copyright\ \the\year$\quad$ - \begin{minipage}{30pt} - \vspace{-3pt} - \includegraphics[width=\textwidth]{logo.pdf} %defined at bottom - \end{minipage} - }} - \fancyfoot[L]{} - \fancyfoot[C]{} - \fancyfoot[R]{} -} - -\newenvironment{absolutelynopagebreak} - {\par\nobreak\vfil\penalty0\vfilneg - \vtop\bgroup} - {\par\xdef\tpd{\the\prevdepth}\egroup - \prevdepth=\tpd} - -\newcommand{\vb}{\usefont{T1}{DejaVuSansMono-TLF}{b}{n}} - -\newenvironment{libcomments}{\begin{itemize}[topsep=-10000pt]}{\end{itemize}} - -\setlength{\headheight}{20.1pt} -\setlength{\headsep}{10pt} - -\renewcommand{\familydefault}{\sfdefault} % everything sans-serif - -%Url handling -\hypersetup{ - colorlinks=true, - urlcolor=black, - linkcolor=black, - citecolor=black -} - -% font size -> set to equivalent to footnotesize of 10 pt -% it affect only the \\normalsize command, all are still relative to default's -% article one (10pt) -\newcommand\articlenormalsize{\fontsize{10pt}{12pt}\selectfont} -\renewcommand\normalsize{\footnotesize} - -% redefine sections padding -\makeatletter -\renewcommand{\section}{\@startsection{section}{1}{0mm}% - {-1ex plus -.5ex minus -.2ex}% - {0.5ex}% - {\normalfont\large\bfseries}} -\renewcommand{\subsection}{\@startsection{subsection}{2}{4mm}% - {-1ex}% - {0.5ex}% - {\normalfont\articlenormalsize\bfseries}} -\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{16mm}% - {-1ex plus -.5ex minus -.2ex}% - {1ex plus .2ex}% - {\normalfont\small\bfseries}} -\makeatother - -%\pagestyle{empty} -% set section counter to 0 -\setcounter{secnumdepth}{0} - -% Text at right -%\raggedright - -% Set up the interline space in tables -\renewcommand{\arraystretch}{0.0} - -% https://github.com/gpoore/minted/issues/82 -\makeatletter -\newenvironment{catala}{% - \VerbatimEnvironment - \let\FV@ListVSpace\relax - \begin{minted}[autogobble]{catala_en}}% - {\end{minted}} -\makeatother - -% https://github.com/gpoore/minted/issues/82 -\makeatletter -\newenvironment{catala-expr}{% - \VerbatimEnvironment - \let\FV@ListVSpace\relax - \begin{minted}[autogobble,firstline=2,escapeinside=||]{catala_en}}% - {\end{minted}} -\makeatother - -\begin{document} - -\makeheader{The Catala Syntax \hspace{2em}\small english version}{v0.8.0}{1} -% warning: this is repeated for p.2 -% \begin{center} -% 2022-12-15 -% \hfill -% {\Huge\bfseries\sffamily -% Catala Syntax Cheat Sheet} -% \hfill -% v.0.8.0 -% \end{center} -% \hrule - -\begin{multicols}{3} - -\newlength\cola -\setlength\cola{\dimexpr .4\columnwidth -2\tabcolsep} -\newlength\colb -\setlength\colb{\dimexpr .6\columnwidth -2\tabcolsep} - - - -\section{Literate programming} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - Heading & \begin{catala} - # Title - ### Sub-subtitle - \end{catala} - \\ - Code block & - \begin{catala} - ```catala - ``` - \end{catala} - \\ - Metadata block & \begin{catala} - ```catala-metadata - ``` - \end{catala} - \\ - File inclusion & \begin{catala} - > Include: foo.catala_en - \end{catala} - \\ -\end{tabular} - -%% \newcommand*\FancyVerbStartString{```catala} -\newcommand*\FancyVerbStopString{```} - - -\section{Types and literals} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - \begin{catala-expr} - ```catala - boolean - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - true false - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - integer - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - 65536 - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - decimal - ``` - \end{catala-expr} - & \begin{catala-expr} - ```catala - 65536.262144 37% - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - money - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - $1,234,567.89 - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - date - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - ||2021-01-31|| - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - duration - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - 254 day 4 month 1 year - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - collection integer - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - [ 12; 24; 36 ] - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - decimal depends on money - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - f of x equals x / $12.0 - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - Struct1 - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - Struct1 { -- fld1: 9 -- fld2: false } - ``` - \end{catala-expr} - \\ - \begin{catala-expr} - ```catala - Enum1 - ``` - \end{catala-expr} - & - \begin{catala-expr} - ```catala - Case1 content 12 Case2 - ``` - \end{catala-expr} - \\ -\end{tabular} - -\section{Expressions} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - Local definition & \begin{catala-expr} - ```catala - let x equals 36 - 5 in ... - ``` - \end{catala-expr} - \\ - Pattern matching & \begin{catala-expr} - ```catala - match expr with pattern - -- Case1 of x: ... - -- Case2 : ... - ``` - \end{catala-expr} - \\ - Pattern test and optional binding & \begin{catala-expr} - ```catala - expr with pattern Case1 - expr with pattern Case1 of x - and x >= 2 - ``` - \end{catala-expr} - \\ - Structure field access & \begin{catala-expr} - ```catala - struc1.fld2 - ``` - \end{catala-expr} - \\ - Function call & \begin{catala-expr} - ```catala - f of $44.50 - ``` - \end{catala-expr} - \\ - Subscope variable & \begin{catala-expr} - ```catala - sub1.var0 - ``` - \end{catala-expr} - \\ - Direct scope call & \begin{catala-expr} - ```catala - outut of Scope1 - with { -- fld1: 9 -- fld2: true } - ``` - \end{catala-expr} - \\ - Conditional & \begin{catala-expr} - ```catala - if ... then ... else ... - ``` - \end{catala-expr} - \\ -\end{tabular} - -\section{Metadata declaration} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - - Structure declaration & - \begin{catala-expr} - ```catala - declaration structure Struct1: - data fld1 content integer - data fld2 content boolean - \end{catala-expr} - \\ - Enumeration declaration & \begin{catala-expr} - ```catala - declaration enumeration Enum1: - -- Case1 content integer - -- Case2 - ``` - \end{catala-expr} - \\ - Scope declaration & \begin{catala-expr} - ```catala - declaration scope Scope1: - internal var1 content integer - internal var2 condition - sub1 scope Scope0 - ``` - \end{catala-expr} - \\ - Input-output qualifiers & \begin{catala-expr} - ```catala - internal var1 content ... - output var3 content ... - input var4 content ... - input output var5 content ... - context var6 content ... - context output var7 content ... - ``` - \end{catala-expr} - \\ - State transitions declaration & \begin{catala-expr} - ```catala - internal var1 content ... - state before_f - state after_f - ``` - \end{catala-expr} - \\ -\end{tabular} - -\section{Operators and built-ins} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - Logical operators & \begin{catala-expr} - ```catala - not a - a and b - a or b # "or otherwise" - a xor b # exclusive or - ``` - \end{catala-expr} - \\ - Arithmetic & \begin{catala-expr} - ```catala - - a - a + b a - b - a * b a / b - ``` - \end{catala-expr} - \\ - Comparison & - \begin{catala-expr} - ```catala - a = b a != b - a > b a < b - a >= b a <= b - ``` - \end{catala-expr} - \\ - Conversions & \begin{catala-expr} - ```catala - decimal of 44 - money of 23.15 - ``` - \end{catala-expr} - \\ - Rounding & \begin{catala-expr} - ```catala - round of $9.99 - ``` - \end{catala-expr} - \\ - Date parts & \begin{catala-expr} - ```catala - get_day of ... - get_month of ... - get_year of ... - ``` - \end{catala-expr} - \\ -\end{tabular} - -\columnbreak - -\section{Scope definition} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - Scope use & \begin{catala-expr} - ```catala - scope Scope1: ... - ``` - \end{catala-expr} - \\ - Use-wide condition & \begin{catala-expr} - ```catala - scope Scope1 - under condition var1 >= 2: ... - ``` - \end{catala-expr} - \\ - Unconditional definition & \begin{catala-expr} - ```catala - definition var1 equals ... - ``` - \end{catala-expr} - \\ - Conditional definition & \begin{catala-expr} - ```catala - definition var1 - under condition ... - consequence equals ... - ``` - \end{catala-expr} - \\ - Rule\newline(definition for conditions) & \begin{catala-expr} - ```catala - rule var2 - under condition var1 >= 2 - consequence fulfilled - ``` - \end{catala-expr} - \\ - Negative rule & \begin{catala-expr} - ```catala - rule var2 - under condition var1 = 0 - consequence not fulfilled - ``` - \end{catala-expr} - \\ - Function definition/rule & \begin{catala-expr} - ```catala - definition f of x equals ... - ``` - \end{catala-expr} - \\ - Labeled definition or rule & \begin{catala-expr} - ```catala - label lbl1 definition var1 ... - ``` - \end{catala-expr} - \\ - Exception to label & \begin{catala-expr} - ```catala - exception lbl1 definition var1 ... - ``` - \end{catala-expr} - \\ - Exception to implicit & \begin{catala-expr} - ```catala - exception definition var1 ... - ``` - \end{catala-expr} - \\ - State definition & \begin{catala-expr} - ```catala - definition var1 - state before_f - equals ... - ``` - \end{catala-expr} - \\ - Assertion & \begin{catala-expr} - ```catala - assertion ... - ``` - \end{catala-expr} - \\ -\end{tabular} - -\section{Collection operations} - -\begin{tabular}{@{}p{\cola}p{\colb}@{}} - - Presence test & \begin{catala-expr} - ```catala - coll contains 3 - ``` - \end{catala-expr} - \\ - Cardinal & \begin{catala-expr} - ```catala - number of coll - ``` - \end{catala-expr} - \\ - Existence test & \begin{catala-expr} - ```catala - exists x among coll such that x >= 2 - ``` - \end{catala-expr} - \\ - For all test & \begin{catala-expr} - ```catala - for all x among coll we have x >= 2 - ``` - \end{catala-expr} - \\ - Map & \begin{catala-expr} - ```catala - (x + 2) for x among coll - ``` - \end{catala-expr} - \\ - Filter & \begin{catala-expr} - ```catala - x among coll such that x >= 2 - ``` - \end{catala-expr} - \\ - Merge & \begin{catala-expr} - ```catala - coll1 ++ coll2 - ``` - \end{catala-expr} - \\ - Aggregation & \begin{catala-expr} - ```catala - sum integer coll - ``` - \end{catala-expr} - \\ - Count & \begin{catala-expr} - ```catala - number of coll - ``` - \end{catala-expr} - \\ - Extremum & \begin{catala-expr} - ```catala - maximum of coll - or if collection empty then -1 - ``` - \end{catala-expr} - \\ - Arg-extremum & \begin{catala-expr} - ```catala - x among coll - such that (x * x) is minimum - or if collection empty then -1 - ``` - \end{catala-expr} - \\ -\end{tabular} - -\end{multicols} -\vfill -\end{document}