X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/ea08dc5602e822724b99d3ab22dc346d136061db..db56b1d3c3d4bc9ffb6500b1f40c27c77d868aa4:/src/sod-module.5?ds=sidebyside diff --git a/src/sod-module.5 b/src/sod-module.5 index 5de8432..1837524 100644 --- a/src/sod-module.5 +++ b/src/sod-module.5 @@ -480,7 +480,7 @@ any character other than newline .B code .I identifier .B -.I identifier +.I item-name .RI [ constraints ] .B { .I c-fragment @@ -494,7 +494,15 @@ any character other than newline .br .I constraint ::= +.IR item-name \*+ +.br +.I item-name +::= +.I identifier +| +.B ( .IR identifier \*+ +.B ) . .SS Class definitions .I @@ -520,9 +528,14 @@ class-definition .IR list [ identifier ] .< .B { -.IR class-item \** +.IR properties-class-item \** .B } .br +.I properties-class-item +::= +.RI [ properties ] +.I class-item +.br .I class-item ::= .I slot-item @@ -536,7 +549,6 @@ class-definition .I slot-item ::= .< -.RI [ properties ] .IR declaration-specifier \*+ .IR list [ init-declarator ] .B ; @@ -549,7 +561,6 @@ class-definition .br .I initializer-item ::= -.RI [ properties ] .RB [ class ] .IR list [ slot-initializer ] .B ; @@ -570,19 +581,16 @@ class-definition .br .I message-item ::= -.RI [ properties ] .< .IR declaration-specifier \*+ .I simple-declarator -.< .RI [ method-body ] .br .I method-item -.RI [ properties ] +::= .< .IR declaration-specifier \*+ -.I dotted-declarator -.< +.IR declarator [ dotted-name ] .I method-body .br .I method-body @@ -691,24 +699,85 @@ class-definition | .B unsigned .| +.B bool +| +.B _Bool +.| +.B imaginary +| +.B _Imaginary +| +.B complex +| +.B _Complex +.| .I qualifier +.| +.I storage-specifier +.| +.I atomic-type .br .I qualifier ::= +.I atomic +| .B const | .B volatile | .B restrict .br +.I atomic-type +::= +.I +atomic +.B ( +.IR declaration-specifier \*+ +.I abstract-declarator +.B ) +.br +.I atomic +::= +.B atomic +| +.B _Atomic +.br +.I storage-specifier +::= +.I alignas +.B ( +.I c-fragment +.B ) +.br +.I alignas +::= +.B alignas +| +.B _Alignas +.br .I type-name ::= .I identifier .PP +The following +.IR type-name s +are defined in the built-in module. +.hP \*o +.B va_list +.hP \*o +.B size_t +.hP \*o +.B ptrdiff_t +.hP \*o +.B wchar_t +.PP Declaration specifiers may appear in any order. However, not all combinations are permitted. A declaration specifier must consist of -zero or more qualifiers, +zero or more +.IR qualifier s, +zero or more +.IR storage-specifier s, and one of the following, up to reordering. .hP \*o .I type-name @@ -759,6 +828,22 @@ and one of the following, up to reordering. .BR float , .BR double , .B long double +.hP \*o +.BR "float _Imaginary" , +.BR "double _Imaginary" , +.B "long double _Imaginary" +.hP \*o +.BR "float imaginary" , +.BR "double imaginary" , +.B "long double imaginary" +.hP \*o +.BR "float _Complex" , +.BR "double _Complex" , +.B "long double _Complex" +.hP \*o +.BR "float complex" , +.BR "double complex" , +.B "long double complex" .PP .IR declarator [ k ] ::= @@ -805,6 +890,10 @@ and one of the following, up to reordering. .IR declaration-specifier \*+ .I argument-declarator .br +.I abstract-declarator +::= +.IR declarator [\*e] +.br .I argument-declarator ::= .IR declarator [ identifier " | \*e]" @@ -818,11 +907,7 @@ and one of the following, up to reordering. .I identifier .B .\& .I identifier -.br -.I dotted-declarator -::= -.IR declarator [ dotted-name ] - +. .\"-------------------------------------------------------------------------- .SH SEE ALSO .BR sod (1),