X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/c32aa709ec47cee02e46fc9e74e58eb6a9b430a6..4307347660f48628e307f299eb4fac58ba35fd1a:/src/sod-module.5 diff --git a/src/sod-module.5 b/src/sod-module.5 index 640f1f9..2ffe671 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,18 +581,17 @@ class-definition .br .I message-item ::= -.RI [ properties ] .< .IR declaration-specifier \*+ -.I simple-declarator +.IR keyword-declarator [ identifier ] .< .RI [ method-body ] .br .I method-item -.RI [ properties ] +::= .< .IR declaration-specifier \*+ -.I dotted-declarator +.IR keyword-declarator [ dotted-name ] .< .I method-body .br @@ -691,6 +701,18 @@ class-definition | .B unsigned .| +.B bool +| +.B _Bool +.| +.B imaginary +| +.B _Imaginary +| +.B complex +| +.B _Complex +.| .I qualifier .br .I qualifier @@ -705,6 +727,18 @@ class-definition ::= .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 @@ -760,39 +794,55 @@ 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 ] +.IR declarator [ k ", " a ] ::= .IR pointer \** -.IR primary-declarator [ k ] +.IR primary-declarator [ k ", " a ] .br -.IR primary-declarator [ k ] +.IR primary-declarator [ k ", " a ] ::= .I k .| .B ( -.IR primary-declarator [ k ] +.IR primary-declarator [ k ", " a ] .B ) .| -.IR primary-declarator [ k ] -.IR declarator-suffix +.IR primary-declarator [ k ", " a ] +.IR declarator-suffix [ a ] .br .I pointer ::= .B * .IR qualifier \** .br -.I declarator-suffix +.IR declarator-suffix [ a ] ::= .B [ .I c-fragment .B ] .| .B ( -.I arguments +.I a .B ) .br -.I arguments +.I argument-list ::= \*e | .B ... @@ -808,11 +858,29 @@ and one of the following, up to reordering. .br .I argument-declarator ::= -.IR declarator [ identifier " | \*e]" +.IR declarator [ identifier " | \*e, " argument-list ] .br .I simple-declarator ::= -.IR declarator [ identifier ] +.IR declarator [ identifier ", " argument-list ] +.br +.I keyword-argument +::= +.I argument +.RB [ = +.IR c-fragment ] +.br +.I keyword-argument-list +::= +.I argument-list +.B ?\& +.I keyword-argument-list +.br +.I method-argument-list +::= +.I argument-list +| +.I keyword-argument-list .br .I dotted-name ::= @@ -820,10 +888,10 @@ and one of the following, up to reordering. .B .\& .I identifier .br -.I dotted-declarator +.IR keyword-declarator [ k ] ::= -.IR declarator [ dotted-name ] - +.IR declarator [ k ", " method-argument-list ] +. .\"-------------------------------------------------------------------------- .SH SEE ALSO .BR sod (1),