|
33 | 33 | \newcommand*{\firstbytebox}[2]{\byteboxAux{#1}{#2}{\put(0,0){\line(0,1){\bytetotalheight}}}} |
34 | 34 | \newcommand*{\bytebox}[2]{\byteboxAux{#1}{#2}{}} |
35 | 35 |
|
36 | | -\newcommand*{\cclass}[1]{{\rm\sf :#1:}} |
| 36 | +\newcommand*{\cclass}[1]{[{\rm\sf :#1:}]} |
| 37 | +\newcommand*{\cclassexcept}[2]{[{\rm\sf :#1:}\caret #2]} |
37 | 38 | \newcommand*{\caret}{\textsuperscript{$\wedge$}} |
38 | 39 |
|
39 | 40 | \newcommand*{\memlimited}{\textcolor{gray}{\footnotesize\it limited}} |
@@ -77,7 +78,6 @@ \section{The SAM Format Specification} |
77 | 78 | For example, floating-point values in SAM always use `{\tt .}' for the decimal-point character. |
78 | 79 |
|
79 | 80 | The regular expressions in this specification are written using the POSIX\,/\,IEEE Std 1003.1 extended syntax. |
80 | | -For brevity, named character classes are written as~{\tt [\cclass{class}]} without an additional pair of brackets. |
81 | 81 |
|
82 | 82 | \subsection{An example}\label{sec:example} |
83 | 83 | Suppose we have the following alignment with bases in lowercase |
@@ -209,9 +209,7 @@ \subsubsection{Character set restrictions}\label{sec:charset} |
209 | 209 | {\tt [\verb"0-9A-Za-z!#$%&+./:;?@^_|~-"][\verb"0-9A-Za-z!#$%&*+./:;=?@^_|~-"]*} |
210 | 210 | \end{center} |
211 | 211 |
|
212 | | -% Pedantically this should be [[:rname:]^*=][[:rname:]]*, but we take advantage |
213 | | -% of POSIX (Issue 7) section 9.3.5/8 to elide the excess brackets for clarity. |
214 | | -\newcommand*{\rnameRegexp}{[\cclass{rname}\caret*=][\cclass{rname}]*} |
| 212 | +\newcommand*{\rnameRegexp}{[\cclassexcept{rname}{*=}][\cclass{rname}]*} |
215 | 213 |
|
216 | 214 | \noindent |
217 | 215 | For clarity, elsewhere in this specification we write this set of allowed characters as a character class~{\tt [\cclass{rname}]} and extend the POSIX regular expression notation to use {\tt\caret *=} to indicate the omission of `{\tt *}' and `{\tt =}' from the character class. |
@@ -301,6 +299,7 @@ \subsection{The header section} |
301 | 299 | These alternative names are not used elsewhere within the SAM file; |
302 | 300 | in particular, they must not appear in alignment records' {\sf RNAME} |
303 | 301 | or~{\sf RNEXT} fields. |
| 302 | +\newline |
304 | 303 | \emph{Regular expression}: \emph{name}{\tt (,}\emph{name}{\tt )*} |
305 | 304 | where \emph{name} is {\tt\rnameRegexp}\\\cline{2-3} |
306 | 305 | & {\tt AS} & Genome assembly identifier. \\\cline{2-3} |
|
0 commit comments