texlive[67892] Master/texmf-dist: naive-ebnf (11aug23)

commits+karl at tug.org commits+karl at tug.org
Fri Aug 11 23:14:15 CEST 2023


Revision: 67892
          http://tug.org/svn/texlive?view=revision&revision=67892
Author:   karl
Date:     2023-08-11 23:14:15 +0200 (Fri, 11 Aug 2023)
Log Message:
-----------
naive-ebnf (11aug23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/naive-ebnf/naive-ebnf.pdf
    trunk/Master/texmf-dist/source/latex/naive-ebnf/naive-ebnf.dtx
    trunk/Master/texmf-dist/tex/latex/naive-ebnf/naive-ebnf.sty

Modified: trunk/Master/texmf-dist/doc/latex/naive-ebnf/naive-ebnf.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/naive-ebnf/naive-ebnf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/naive-ebnf/naive-ebnf.dtx	2023-08-11 21:13:36 UTC (rev 67891)
+++ trunk/Master/texmf-dist/source/latex/naive-ebnf/naive-ebnf.dtx	2023-08-11 21:14:15 UTC (rev 67892)
@@ -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 at optional[1]
   {\ebnf at color{gray}{[}#1\ebnf at color{gray}{]}}
-\newcommand\ebnf at repetition[1]
-  {\ebnf at color{gray}{\{}#1\ebnf at color{gray}{\}}}
-\newcommand\ebnf at iteration[1]
-  {\ebnf at color{gray}{\{}#1\ebnf at color{gray}{\}\(^{\scriptscriptstyle +}\)}}
+\newcommand\ebnf at repetition[2][]
+  {\ebnf at color{gray}{\{}#2\ebnf at color{gray}{\}\(^{\scriptscriptstyle #1}\)}}
 \newcommand\ebnf at grouping[1]
   {\ebnf at color{gray}{(}#1\ebnf at 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 at regexp}{\1}} \ebnf_tmp%
-  \cs_new:Npn\ebnf_iterated{%
-    \regex_replace_all:nnNT
-    { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}\+ }%
-    {\c{ebnf at 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 at repetition}{\1}} \ebnf_tmp \ebnf_curled}%
+    { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}(\+)? }%
+    {\c{ebnf at repetition}[\5]{\1}} \ebnf_tmp \ebnf_curled}%
   \ebnf_curled%
   \cs_new:Npn\ebnf_brackets{%
     \regex_replace_all:nnNT

Modified: trunk/Master/texmf-dist/tex/latex/naive-ebnf/naive-ebnf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/naive-ebnf/naive-ebnf.sty	2023-08-11 21:13:36 UTC (rev 67891)
+++ trunk/Master/texmf-dist/tex/latex/naive-ebnf/naive-ebnf.sty	2023-08-11 21:14:15 UTC (rev 67892)
@@ -31,7 +31,7 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{naive-ebnf}
-[2023-08-08 0.0.14 EBNF in Plain Text]
+[2023-08-11 0.0.15 EBNF in Plain Text]
 
 
 
@@ -92,10 +92,8 @@
 \makeatletter
 \newcommand\ebnf at optional[1]
   {\ebnf at color{gray}{[}#1\ebnf at color{gray}{]}}
-\newcommand\ebnf at repetition[1]
-  {\ebnf at color{gray}{\{}#1\ebnf at color{gray}{\}}}
-\newcommand\ebnf at iteration[1]
-  {\ebnf at color{gray}{\{}#1\ebnf at color{gray}{\}\(^{\scriptscriptstyle +}\)}}
+\newcommand\ebnf at repetition[2][]
+  {\ebnf at color{gray}{\{}#2\ebnf at color{gray}{\}\(^{\scriptscriptstyle #1}\)}}
 \newcommand\ebnf at grouping[1]
   {\ebnf at color{gray}{(}#1\ebnf at color{gray}{)}}
 \ExplSyntaxOn
@@ -146,15 +144,10 @@
   \regex_replace_all:nnN
     { /(.+?)/ }%
     {\c{ebnf at regexp}{\1}} \ebnf_tmp%
-  \cs_new:Npn\ebnf_iterated{%
-    \regex_replace_all:nnNT
-    { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}\+ }%
-    {\c{ebnf at 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 at repetition}{\1}} \ebnf_tmp \ebnf_curled}%
+    { \{\s(([^\s]*(\s[^\}\{]|\s(\}|\{)[^\s])?)*)\s\}(\+)? }%
+    {\c{ebnf at repetition}[\5]{\1}} \ebnf_tmp \ebnf_curled}%
   \ebnf_curled%
   \cs_new:Npn\ebnf_brackets{%
     \regex_replace_all:nnNT



More information about the tex-live-commits mailing list.