opt|: - val: "" - val: "<0>" opt||: - val: "" - val: "<0>" freq: "<1>" optref|: - val: "" - val: "{<0>}" optref||: - val: "" - val: "{<0>}" freq: "<1>" 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: "" new-line: - val: "\n" identifier: - val: "{alpha}" freq: "" - val: "{identifier}{alpha}" - val: "{identifier}{digit}" alpha: - 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}" - val: "_" freq: .0769231 int: - val: "{dec-number}" - val: "0x{hex-number}" freq: .1 float: - val: "{opt|-|.5}{float1}" freq: 4 - val: "{opt|-|.5}{float1}e{sign}{dec-number}" - val: "{opt|-|.5}{float1}E{sign}{dec-number}" float1: - val: "{dec-number}" - val: ".{dec-number}" - val: "{dec-number}." - val: "{dec-number}.{dec-number}" dec-number: - val: "{digit}" - val: "{dec-number}{digit}" hex-number: - val: "{hexadecimal-digit}" - val: "{hex-number}{hexadecimal-digit}" 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: "{alpha}" freq: 50 - val: "{digit}" freq: 20 - val: "{punct-char}" - val: '' - val: '' - val: '"' - val: "'" noescape_char: - val: "{basic-char!0 1 2 3 4}" string-literal: - val: "\"{optref|s-char-sequence}\"" s-char-sequence: - val: "{s-char}" freq: "" - val: "{s-char-sequence}{s-char}" s-char: - val: "{noescape_char}" freq: 70 - val: "'" - val: "{escape-sequence}" freq: .5 - val: "{universal-character-name}" freq: .1 character-literal: - val: "'{c-char}'" c-char-sequence: - val: "{c-char}" freq: 10 - val: "{c-char-sequence}{c-char}" c-char: - val: "{noescape_char}" freq: 70 - val: '"' - val: "{escape-sequence}" freq: .5 - val: "{universal-character-name}" freq: .1 escape-sequence: - val: "{simple-escape-sequence}" - val: "{octal-escape-sequence}" - val: "{hexadecimal-escape-sequence}" simple-escape-sequence: - 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: "{bs}x{hexadecimal-digit}{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}" str: - val: "{string-literal}" freq: 4 - val: "{character-literal}" expression: - val: "{identifier}" - val: "{int}" - val: "{float}" - val: "{str}" expression|: - val: "{identifier}" - val: "{<0>}" expression-list: - val: "" - val: "{expression}" - val: "{expression}, {expression-list-1}" expression-list-1: - val: "{expression}" - val: "{expression}, {expression-list-1}" expression-list|: - val: "" - val: "{expression|<0>}" - val: "{expression|<0>}, {expression-list-1|<0>}" expression-list-1|: - val: "{expression|<0>}" - val: "{expression|<0>}, {expression-list-1|<0>}" ref-expression: - val: "&{identifier}" array-expression: - val: "[{expression-list|int}]" - val: "[{expression-list|float}]" - val: "[{expression-list|str}]" variable-decl: - val: "let {opt|mut |.5}{identifier} = {expression}" freq: 4 - val: "let {opt|mut |.5}{identifier} = {array-expression}" - val: "let mut {identifier} : {owner-type}{type-specifier}" - val: "let {opt|mut |.5}{identifier} : {owner-type}{type-specifier} {lb}{expression-list}{rb}" - val: "let {opt|mut |.5}{identifier} : {owner-type}{typed-initializer}" typed-initializer: - val: "{type-specifier|int|0} = {expression|int}" - val: "{type-specifier|float|0} = {expression|float}" - val: "{type-specifier|str|0} = {expression|str}" - val: "{type-specifier|int|1} = {ref-expression}" - val: "{type-specifier|float|1} = {ref-expression}" - val: "{type-specifier|str|1} = {ref-expression}" - val: "[{int}]{type-specifier|int|0} = [{expression-list|int:0}]" - val: "[{int}]{type-specifier|float|0} = [{expression-list|float:0}]" - val: "[{int}]{type-specifier|str|0} = [{expression-list|str:0}]" - val: "[]{type-specifier|int|0} = [{expression-list|int}]" - val: "[]{type-specifier|float|0} = [{expression-list|float}]" - val: "[]{type-specifier|str|0} = [{expression-list|str}]" owner-type: - val: "" - val: "owner " - val: "shared " type-specifier: - val: "{type-specifier|int|0}" - val: "{type-specifier|float|0}" - val: "{type-specifier|str|0}" type-specifier||: - val: "<0>" - val: "&{opt| }{type-specifier-2|<0>|<1>}" freq: "<1>" type-specifier-2||: - val: "{type-specifier|<0>|<1>}" freq: 3 - val: "mut {type-specifier|<0>|<1>}" - val: "[{optref|int}]{type-specifier-2|<0>|<1>}" - val: ""