--- opt|: - val: "" - val: "<0>" optref|: - val: "" - val: "{<0>}" rs: - val: "{wchar}{ospace}" os: - val: "" - val: "{wchar}{ospace}" lb: - val: "{{" rb: - val: "}}" bs: - val: '\\' or|...: - val: "<0>" - val: "{or|<...>}" freq: "" or||: - val: "<0>" - val: "<1>" or|||: - val: "<0>" - val: "<1>" - val: "<2>" or||||: - val: "<0>" - val: "<1>" - val: "<2>" - val: "<3>" or||||||||...: - val: "{or|<0>|<1>|<2>|<3>}" freq: 4 - val: "{or|<4>|<5>|<6>|<7>}" freq: 4 - val: "{or|<...>}" freq: "" preprocessing-file: - val: "" - val: "{group}" freq: 10 group: - val: "{group-part}" - val: "{group}{group-part}" group-part: - val: "{control-line}" - val: "{if-section}" - val: "{text-line}" - val: "#{conditionally-supported-directive}" control-line: - val: "#include {pp-tokens}{new-line}" # - val: "{opt|export} import {pp-tokens}{new-line}" - val: "#define {identifier}{replacement-list}{new-line}" - val: "#define {identifier}{lparen}{optref|identifier-list})\ {replacement-list}{new-line}" - val: "#define {identifier}{lparen}...){replacement-list}{new-line}" - val: "#define {identifier}{lparen}{identifier-list}, ...)\ {replacement-list}{new-line}" - val: "#undef {identifier}{new-line}" - val: "#line {pp-tokens}{new-line}" - val: "#error {optref|pp-tokens}{new-line}" - val: "#pragma {optref|pp-tokens}{new-line}" - val: "#{new-line}" if-section: - val: "{if-group}{optref|elif-groups}{optref|else-group}{endif-line}" if-group: - val: "#if {constant-expression}{new-line}{optref|group}" - val: "#ifdef {identifier}{new-line}{optref|group}" - val: "#ifndef {identifier}{new-line}{optref|group}" elif-groups: - val: "{elif-group}" - val: "{elif-groups}{elif-group}" elif-group: - val: "#elif {constant-expression}{new-line}{optref|group}" else-group: - val: "#else {new-line}{optref|group}" endif-line: - val: "#endif {new-line}" constant-expression: - val: "{pp-number}" text-line: - val: "{optref|pp-tokens}{new-line}" conditionally-supported-directive: - val: "{pp-tokens}{new-line}" lparen: - val: "(" identifier-list: - val: "{identifier}" - val: "{identifier-list}, {identifier}" replacement-list: - val: "{optref|pp-tokens}" pp-tokens: - val: "{preprocessing-token}" - val: "{pp-tokens}{preprocessing-token}" new-line: - val: "\n" defined-macro-expansion: - val: "defined {identifier}" - val: "defined{os}({identifier})" h-preprocessing-token: - val: "{preprocessing-token}" # other than > h-pp-tokens: - val: "{h-preprocessing-token}" - val: "{h-pp-tokens}{h-preprocessing-token}" header-name-tokens: - val: "{string-literal}" - val: "{h-pp-tokens}" has-include-expression: - val: "__has_include{os}({header-name})" - val: "__has_include{os}({header-name-tokens})" has-attribute-expression: - val: "__has_cpp_attribute{os}({pp-tokens})" # pp-import: # - val: "{opt|export} import {header-name}{optref|pp-tokens};{new-line}" # - val: "{opt|export} import {header-name-tokens}{optref|pp-tokens};\ # {new-line}" # - val: "{opt|export} import {pp-tokens};{new-line}" # pp-global-module-fragment: # - val: "module{os};{pp-balanced-token-seq}module" pp-balanced-token-seq: - val: "{pp-balanced-token}" - val: "{pp-balanced-token-seq}{pp-balanced-token}" pp-balanced-token: - val: "({pp-balanced-token})" - val: "[{pp-balanced-token}]" - val: "{lb}{pp-balanced-token}{rb}" - val: "\\<:{pp-balanced-token}:\\>" - val: "\\<%{pp-balanced-token}%\\>" - val: "{preprocessing-token}" # other than pp-ldelim or pp-rdelim va-opt-replacement: - val: "__VA_OPT__{os}({optref|pp-tokens})" pp-number: - val: "{digit}" - val: ".{digit}" - val: "{pp-number}{digit}" - val: "{pp-number}{identifier-nondigit}" - val: "{pp-number}'{digit}" - val: "{pp-number}'{nondigit}" - val: "{pp-number}e{sign}" - val: "{pp-number}E{sign}" - val: "{pp-number}p{sign}" - val: "{pp-number}P{sign}" - val: "{pp-number}." identifier: - val: "{identifier-nondigit}" - val: "{identifier}{identifier-nondigit}" - val: "{identifier}{digit}" identifier-nondigit: - val: "{nondigit}" - val: "{universal-character-name}" nondigit: - val: "{or|a|b|c|d|e|f|g|h|i|j|k|l|m}" - val: "{or|n|o|p|q|r|s|t|u|v|w|x|y|z}" - val: "{or|A|B|C|D|E|F|G|H|I|J|K|L|M}" - val: "{or|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|_}" freq: 1.0769231 digit: - val: "{or|0|1|2|3|4|5|6|7}" freq: 4 - val: "{or|8|9}" hexadecimal-digit: - val: "{or|0|1|2|3|4|5|6|7|8|9}" freq: 20 - val: "{or|a|b|c|d|e|f}" freq: 6 - val: "{or|A|B|C|D|E|F}" freq: 6 octal-digit: - val: "{digit!0}" sign: - val: "+" - val: "-" punct-char: - val: '{or|_|[|]|#|%|;|.|?|*}' freq: 9 - val: '{or|+|-|/|^|&|~|=|,}' freq: 8 - val: '{{' - val: '}}' - val: "(" - val: ")" - val: ":" - val: "!" - val: "" - val: "|" basic-char: - val: "{punct-char}" - val: "{nondigit}" - val: "{digit}" - val: '' - val: '' - val: "\"" - val: "'" noescape_char: - val: "{basic-char!0 1 2 3 4}" preprocessing-token: - val: "{header-name}" - val: "{identifier}" - val: "{pp-number}" - val: "{character-literal}" - val: "{user-defined-character-literal}" - val: "{string-literal}" - val: "{user-defined-string-literal}" - val: "{preprocessing-op-or-punc}" # - val: "each non-white-space character that cannot be one of the above" # - val: "{import-keyword}" header-name: - val: '{h-char-sequence}' - val: '"{q-char-sequence}"' h-char-sequence: - val: "{basic-char!0 1 2 3 5 6}" q-char-sequence: - val: "{basic-char!0 1 2 3 4 6}" preprocessing-op-or-punc: - val: '' - val: '|\<%|%\>|%\:|%\:%\:|;|\:)>' - val: '...' - val: ')|raw(->*)|~)>' - val: '{or|\!|+|-|*|/|%|^|&|\|}' - val: '{or|=|+=|-=|*=|/=|%=|^=|&=|\|=}' - val: '=)|&&|raw(||))>' - val: '>)|raw(<<=)|raw(>>=)|++|--|,)>' - val: '{or|and|or|xor|not|bitand|bitor|compl|and_eq|or_eq|xor_eq|not_eq}' string-literal: - val: "{optref|encoding-prefix}\"{optref|s-char-sequence}\"" - val: "{optref|encoding-prefix}R{raw-string}" s-char-sequence: - val: "{s-char}" - val: "{s-char-sequence}{s-char}" s-char: - val: "{noescape_char}" - val: "'" - val: "{escape-sequence}" - val: "{universal-character-name}" raw-string: - val: '"({r-char-sequence})"' r-char-sequence: - val: "{r-char}" - val: "{r-char-sequence}{r-char}" r-char: - val: "{basic-char}" character-literal: - val: "{optref|encoding-prefix}'{c-char-sequence}'" c-char-sequence: - val: "{c-char}" freq: 10 - val: "{c-char-sequence}{c-char}" c-char: - val: "{noescape_char}" - val: "\"" - val: "{escape-sequence}" - val: "{universal-character-name}" escape-sequence: - val: "{simple-escape-sequence}" - val: "{octal-escape-sequence}" - val: "{hexadecimal-escape-sequence}" simple-escape-sequence: - val: "{bs}'" - val: '{bs}"' - val: '{bs}?' - val: '{bs}{bs}' - val: '{bs}a' - val: '{bs}b' - val: '{bs}f' - val: '{bs}n' - val: '{bs}r' - val: '{bs}t' - val: '{bs}v' octal-escape-sequence: - val: "{bs}{octal-digit}" - val: "{bs}{octal-digit}{octal-digit}" - val: "{bs}{octal-digit}{octal-digit}{octal-digit}" hexadecimal-escape-sequence: - val: '{bs}x{hexadecimal-digit}' - val: "{hexadecimal-escape-sequence}{hexadecimal-digit}" universal-character-name: - val: '\\u{hex-quad}' - val: '\\U{hex-quad}{hex-quad}' hex-quad: - val: "{hexadecimal-digit}{hexadecimal-digit}{hexadecimal-digit}\ {hexadecimal-digit}" encoding-prefix: - val: "u8" - val: "u" - val: "U" - val: "L" user-defined-string-literal: - val: "{string-literal}{ud-suffix}" user-defined-character-literal: - val: "{character-literal}{ud-suffix}" ud-suffix: - val: "{identifier}"