diff options
author | Norbert Preining <norbert@preining.info> | 2023-08-12 03:03:37 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-08-12 03:03:37 +0000 |
commit | 1671b301fbe6cef52ccfa6085824e9677703e023 (patch) | |
tree | 351f5c112c4ca58d43310883a432d05d9c60670b /macros/latex/contrib/naive-ebnf | |
parent | 3bfa493a1fafa36f78e84022bfe6511b23f51781 (diff) |
CTAN sync 202308120303
Diffstat (limited to 'macros/latex/contrib/naive-ebnf')
-rw-r--r-- | macros/latex/contrib/naive-ebnf/naive-ebnf.dtx | 20 | ||||
-rw-r--r-- | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf | bin | 727190 -> 727116 bytes |
2 files changed, 7 insertions, 13 deletions
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 @@ %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{naive-ebnf} %<*package> -[2023-08-08 0.0.14 EBNF in Plain Text] +[2023-08-11 0.0.15 EBNF in Plain Text] %</package> %<*driver> \documentclass{ltxdoc} @@ -229,7 +229,7 @@ % % There is no meaning in this: % <x> := ( "x" ( "y" | ( "z" | <z> ) ) ) \\ % <y> := [ [ "x1" ] { /[a-z]+/ } ] \\ -% <z> := { { { <x> }+ <y> } <z> } \\ +% <z> := { { { <x> }+ <y> } <z> }+ \\ % <t> := [ <x> ] [ <y> ] \\ % \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 Binary files differindex 8f70242c2a..4d7e89803d 100644 --- a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf +++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf |