From 1671b301fbe6cef52ccfa6085824e9677703e023 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 12 Aug 2023 03:03:37 +0000 Subject: CTAN sync 202308120303 --- macros/latex/contrib/naive-ebnf/naive-ebnf.dtx | 20 +++++++------------- macros/latex/contrib/naive-ebnf/naive-ebnf.pdf | Bin 727190 -> 727116 bytes 2 files changed, 7 insertions(+), 13 deletions(-) (limited to 'macros/latex/contrib/naive-ebnf') diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx index b3972202f6..6886393d88 100644 --- a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx +++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx @@ -50,7 +50,7 @@ %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{naive-ebnf} %<*package> -[2023-08-08 0.0.14 EBNF in Plain Text] +[2023-08-11 0.0.15 EBNF in Plain Text] % %<*driver> \documentclass{ltxdoc} @@ -229,7 +229,7 @@ % % There is no meaning in this: % := ( "x" ( "y" | ( "z" | ) ) ) \\ % := [ [ "x1" ] { /[a-z]+/ } ] \\ -% := { { { }+ } } \\ +% := { { { }+ } }+ \\ % := [ ] [ ] \\ % \end{ebnf} % \end{document} @@ -353,10 +353,8 @@ \makeatletter \newcommand\ebnf@optional[1] {\ebnf@color{gray}{[}#1\ebnf@color{gray}{]}} -\newcommand\ebnf@repetition[1] - {\ebnf@color{gray}{\{}#1\ebnf@color{gray}{\}}} -\newcommand\ebnf@iteration[1] - {\ebnf@color{gray}{\{}#1\ebnf@color{gray}{\}\(^{\scriptscriptstyle +}\)}} +\newcommand\ebnf@repetition[2][] + {\ebnf@color{gray}{\{}#2\ebnf@color{gray}{\}\(^{\scriptscriptstyle #1}\)}} \newcommand\ebnf@grouping[1] {\ebnf@color{gray}{(}#1\ebnf@color{gray}{)}} \ExplSyntaxOn @@ -392,6 +390,7 @@ % \changes{0.0.4}{2023/02/03}{Any symbols are allowed inside \texttt{\char`\\EbnfNonTerminal} commands and inside the \texttt{ebnf} environment, where non-terminals are mentioned.} % \changes{0.0.11}{2023/07/12}{Many bugs fixed in the area of regular expression matching.} % \changes{0.0.14}{2023/08/08}{One-or-more repetition introduced with \texttt{\char`\{...\char`\}+} syntax.} +% \changes{0.0.15}{2023/08/11}{The \texttt{iteration} removed, only \texttt{repetition} is left, with the second optional parameter.} % Then, we define the |ebnf| environment: % \begin{macrocode} \ExplSyntaxOn @@ -414,15 +413,10 @@ \regex_replace_all:nnN { /(.+?)/ }% {\c{ebnf@regexp}{\1}} \ebnf_tmp% - \cs_new:Npn\ebnf_iterated{% - \regex_replace_all:nnNT - { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}\+ }% - {\c{ebnf@iteration}{\1}} \ebnf_tmp \ebnf_iterated}% - \ebnf_iterated% \cs_new:Npn\ebnf_curled{% \regex_replace_all:nnNT - { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\} }% - {\c{ebnf@repetition}{\1}} \ebnf_tmp \ebnf_curled}% + { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}(\+)? }% + {\c{ebnf@repetition}[\5]{\1}} \ebnf_tmp \ebnf_curled}% \ebnf_curled% \cs_new:Npn\ebnf_brackets{% \regex_replace_all:nnNT diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf index 8f70242c2a..4d7e89803d 100644 Binary files a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf and b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf differ -- cgit v1.2.3