Skip to content

Commit c6ce3de

Browse files
(alx-0014r6-B) Refactor syntax of embed directives
Signed-off-by: Alejandro Colomar <[email protected]>
1 parent ed2683a commit c6ce3de

File tree

1 file changed

+47
-42
lines changed

1 file changed

+47
-42
lines changed

source/preprocessor.tex

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
\nontermdef{control-line}\br
5050
include-directive\br
5151
pp-import\br
52-
\terminal{\# embed \ } pp-tokens new-line\br
52+
embed-directive\br
5353
\terminal{\# define } identifier replacement-list new-line\br
5454
\terminal{\# define } identifier lparen \opt{identifier-list} \terminal{)} replacement-list new-line\br
5555
\terminal{\# define } identifier lparen \terminal{... )} replacement-list new-line\br
@@ -127,47 +127,6 @@
127127
preprocessing-token \opt{pp-tokens}
128128
\end{bnf}
129129

130-
\begin{bnf}
131-
\nontermdef{embed-parameter-seq}\br
132-
embed-parameter \opt{embed-parameter-seq}
133-
\end{bnf}
134-
135-
\begin{bnf}
136-
\nontermdef{embed-parameter}\br
137-
embed-standard-parameter\br
138-
embed-prefixed-parameter
139-
\end{bnf}
140-
141-
\begin{bnf}
142-
\nontermdef{embed-standard-parameter}\br
143-
\terminal{limit} \terminal{(} pp-balanced-token-seq \terminal{)}\br
144-
\terminal{prefix} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
145-
\terminal{suffix} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
146-
\terminal{if_empty} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}
147-
\end{bnf}
148-
149-
\begin{bnf}
150-
\nontermdef{embed-prefixed-parameter}\br
151-
identifier :: identifier\br
152-
identifier :: identifier \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}
153-
\end{bnf}
154-
155-
\begin{bnf}
156-
\nontermdef{pp-balanced-token-seq}\br
157-
pp-balanced-token \opt{pp-balanced-token-seq}
158-
\end{bnf}
159-
160-
\begin{bnf}
161-
\nontermdef{pp-balanced-token}\br
162-
\terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
163-
\terminal{[} \opt{pp-balanced-token-seq} \terminal{]}\br
164-
\terminal{\{} \opt{pp-balanced-token-seq} \terminal{\}}\br
165-
\textnormal{any} pp-token \textnormal{except:}\br
166-
\bnfindent\textnormal{parenthesis (\unicode{0028}{left parenthesis} and \unicode{0029}{right parenthesis}),}\br
167-
\bnfindent\textnormal{bracket (\unicode{005b}{left square bracket} and \unicode{005d}{right square bracket}), or}\br
168-
\bnfindent\textnormal{brace (\unicode{007b}{left curly bracket} and \unicode{007d}{right curly bracket}).}
169-
\end{bnf}
170-
171130
\begin{bnf}
172131
\nontermdef{new-line}\br
173132
\descr{the new-line character}
@@ -850,6 +809,52 @@
850809
\indextext{preprocessing directive!embed a resource}
851810
\indextext{\idxcode{\#embed}}%
852811

812+
\begin{bnf}
813+
\nontermdef{embed-directive}\br
814+
\terminal{\# embed \ } pp-tokens new-line\br
815+
\end{bnf}
816+
817+
\begin{bnf}
818+
\nontermdef{embed-parameter-seq}\br
819+
embed-parameter \opt{embed-parameter-seq}
820+
\end{bnf}
821+
822+
\begin{bnf}
823+
\nontermdef{embed-parameter}\br
824+
embed-standard-parameter\br
825+
embed-prefixed-parameter
826+
\end{bnf}
827+
828+
\begin{bnf}
829+
\nontermdef{embed-standard-parameter}\br
830+
\terminal{limit} \terminal{(} pp-balanced-token-seq \terminal{)}\br
831+
\terminal{prefix} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
832+
\terminal{suffix} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
833+
\terminal{if_empty} \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}
834+
\end{bnf}
835+
836+
\begin{bnf}
837+
\nontermdef{embed-prefixed-parameter}\br
838+
identifier :: identifier\br
839+
identifier :: identifier \terminal{(} \opt{pp-balanced-token-seq} \terminal{)}
840+
\end{bnf}
841+
842+
\begin{bnf}
843+
\nontermdef{pp-balanced-token-seq}\br
844+
pp-balanced-token \opt{pp-balanced-token-seq}
845+
\end{bnf}
846+
847+
\begin{bnf}
848+
\nontermdef{pp-balanced-token}\br
849+
\terminal{(} \opt{pp-balanced-token-seq} \terminal{)}\br
850+
\terminal{[} \opt{pp-balanced-token-seq} \terminal{]}\br
851+
\terminal{\{} \opt{pp-balanced-token-seq} \terminal{\}}\br
852+
\textnormal{any} pp-token \textnormal{except:}\br
853+
\bnfindent\textnormal{parenthesis (\unicode{0028}{left parenthesis} and \unicode{0029}{right parenthesis}),}\br
854+
\bnfindent\textnormal{bracket (\unicode{005b}{left square bracket} and \unicode{005d}{right square bracket}), or}\br
855+
\bnfindent\textnormal{brace (\unicode{007b}{left curly bracket} and \unicode{007d}{right curly bracket}).}
856+
\end{bnf}
857+
853858
\rSec2[cpp.embed.gen]{General}
854859

855860
\pnum

0 commit comments

Comments
 (0)