From 20f9c2138bd3af831e59c0256b3fb99a0692adad Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 26 May 2016 09:26:09 +0100 Subject: [PATCH] doc/syntax.tex, src/sod-module.5: Abstract out nonterminal. --- doc/syntax.tex | 21 ++++++++++++--------- src/sod-module.5 | 8 ++++++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/doc/syntax.tex b/doc/syntax.tex index 65bd727..5ac33d1 100644 --- a/doc/syntax.tex +++ b/doc/syntax.tex @@ -196,16 +196,16 @@ binary. However, length and signedness indicators are not permitted. ::= any character other than "*" or "/" - ::= "//" @^* + ::= "/\,/" @^* ::= a newline character ::= any character other than newline \end{grammar} -Comments are exactly as in C99: both traditional block comments `\texttt{/*} -\dots\ \texttt{*/}' and \Cplusplus-style `\texttt{//} \dots' comments are -permitted and ignored. +Comments are exactly as in C99: both traditional block comments `@|/*| \dots\ +@|*/|' and \Cplusplus-style `@|/\,/| \dots' comments are permitted and +ignored. \subsection{Special nonterminals} \label{sec:syntax.lex.special} @@ -407,11 +407,11 @@ though the only operators currently defined act on integer values only. \subsubsection{The expression evaluator} \begin{grammar} - ::= | "+" | "-" + ::= | "+" | "--" ::= | "*" | "/" - ::= | "+" | "-" + ::= | "+" | "--" ::= | | | @@ -456,8 +456,10 @@ recognized. ::= | "const" | "volatile" | "restrict" + ::= @^+ + ::= - "(" @^+ ")" + "(" ")" ::= "atomic" | "_Atomic" @@ -517,14 +519,15 @@ All of these have their usual C meanings. $[a]$ ::= "[" "]" \alt "(" $a$ ")" - ::= $\epsilon$ | "..." -\alt $[\mbox{@}]$ @["," "..."@] + ::= $\epsilon$ | "\dots" +\alt $[\mbox{@}]$ @["," "\dots"@] ::= @^+ ::= $[\epsilon, \mbox{@}]$ ::= $[\mbox{@ @! $\epsilon$}]$ + ::= $[\mbox{@ @! $\epsilon$}, \mbox{@}]$ diff --git a/src/sod-module.5 b/src/sod-module.5 index 949e781..b13c01e 100644 --- a/src/sod-module.5 +++ b/src/sod-module.5 @@ -750,13 +750,17 @@ class-definition | .B restrict .br +.I plain-type +::= +.IR declaration-specifier \*+ +.I abstract-declarator +.br .I atomic-type ::= .I atomic .B ( -.IR declaration-specifier \*+ -.I abstract-declarator +.I plain-type .B ) .br .I atomic -- 2.11.0