--- /srv/rebuilderd/tmp/rebuilderd2TZjLz/inputs/rust-doc_1.96.1+dfsg1-2_all.deb +++ /srv/rebuilderd/tmp/rebuilderd2TZjLz/out/rust-doc_1.96.1+dfsg1-2_all.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2026-10-04 17:37:30.000000 debian-binary │ --rw-r--r-- 0 0 0 1095924 2026-10-04 17:37:30.000000 control.tar.xz │ --rw-r--r-- 0 0 0 25033536 2026-10-04 17:37:30.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 1095916 2026-10-04 17:37:30.000000 control.tar.xz │ +-rw-r--r-- 0 0 0 25033552 2026-10-04 17:37:30.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── ./usr/share/doc/rust-doc/html/reference/grammar.html │ │ │ @@ -179,3314 +179,6311 @@ │ │ │ }); │ │ │ │ │ │ │ │ │
│ │ │
│ │ │

Grammar summary

│ │ │

The following is a summary of the grammar production rules. For details on the syntax of this grammar, see notation.grammar.syntax.

│ │ │ -

Attributes summary

│ │ │ +

Items summary

│ │ │
│ │ │

Syntax │ │ │
│ │ │ -ProcMacroDeriveAttribute →
    proc_macro_derive ( DeriveMacroName ( , DeriveMacroAttributes )? ,? )

│ │ │ -

DeriveMacroName → IDENTIFIER

│ │ │ -

DeriveMacroAttributes →
    attributes ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ -

InnerAttribute → # ! [ Attr ]

│ │ │ -

OuterAttribute → # [ Attr ]

│ │ │ -

Attr →
      SimplePath AttrInput?
    | unsafe ( SimplePath AttrInput? )

│ │ │ -

AttrInput →
      DelimTokenTree
    | = Expression

│ │ │ -

MetaItem →
      SimplePath
    | SimplePath = Expression
    | SimplePath ( MetaSeq? )

│ │ │ -

MetaSeq →
    MetaItemInner ( , MetaItemInner )* ,?

│ │ │ -

MetaItemInner →
      MetaItem
    | Expression

│ │ │ -

MetaWord →
    IDENTIFIER

│ │ │ -

MetaNameValueStr →
    IDENTIFIER = ( STRING_LITERAL | RAW_STRING_LITERAL )

│ │ │ -

MetaListPaths →
    IDENTIFIER ( ( SimplePath ( , SimplePath )* ,? )? )

│ │ │ -

MetaListIdents →
    IDENTIFIER ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ -

MetaListNameValueStr →
    IDENTIFIER ( ( MetaNameValueStr ( , MetaNameValueStr )* ,? )? )

│ │ │ -

CollapseDebuginfoAttribute → collapse_debuginfo ( CollapseDebuginfoOption )

│ │ │ -

CollapseDebuginfoOption →
      yes
    | no
    | external

│ │ │ -

InlineAttribute →
      inline ( always )
    | inline ( never )
    | inline

│ │ │ +Item →
    OuterAttribute* ( VisItem | MacroItem )

│ │ │ +

VisItem →
    Visibility?
    (
        Module
      | ExternCrate
      | UseDeclaration
      | Function
      | TypeAlias
      | Struct
      | Enumeration
      | Union
      | ConstantItem
      | StaticItem
      | Trait
      | Implementation
      | ExternBlock
    )

│ │ │ +

MacroItem →
      MacroInvocationSemi
    | MacroRulesDefinition

│ │ │ +

Crate →
    InnerAttribute*
    Item*

│ │ │ +

Visibility →
      pub
    | pub ( crate )
    | pub ( self )
    | pub ( super )
    | pub ( in SimplePath )

│ │ │ +

Trait →
    unsafe? trait IDENTIFIER GenericParams? ( : TypeParamBounds? )? WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

TypeAlias →
    type IDENTIFIER GenericParams? ( : TypeParamBounds )?
        WhereClause?
        ( = Type WhereClause? )? ;

│ │ │ +

ConstantItem →
    const ( IDENTIFIER | _ ) : Type ( = Expression )? ;

│ │ │ +

Struct →
      StructStruct
    | TupleStruct

│ │ │ +

StructStruct →
    struct IDENTIFIER GenericParams? WhereClause? ( { StructFields? } | ; )

│ │ │ +

TupleStruct →
    struct IDENTIFIER GenericParams? ( TupleFields? ) WhereClause? ;

│ │ │ +

StructFields → StructField ( , StructField )* ,?

│ │ │ +

StructField → OuterAttribute* Visibility? IDENTIFIER : Type

│ │ │ +

TupleFields → TupleField ( , TupleField )* ,?

│ │ │ +

TupleField → OuterAttribute* Visibility? Type

│ │ │ +

Implementation → InherentImpl | TraitImpl

│ │ │ +

InherentImpl →
    impl GenericParams? Type WhereClause? {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

TraitImpl →
    unsafe? impl GenericParams? !? TypePath for Type
    WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

Function →
    FunctionQualifiers fn IDENTIFIER GenericParams?
        ( FunctionParameters? )
        FunctionReturnType? WhereClause?
        ( BlockExpression | ; )

│ │ │ +

FunctionQualifiers → const? async? ItemSafety? ( extern Abi? )?

│ │ │ +

ItemSafety → safe | unsafe

│ │ │ +

Abi → STRING_LITERAL | RAW_STRING_LITERAL

│ │ │ +

FunctionParameters →
      SelfParam ,?
    | ( SelfParam , )? FunctionParam ( , FunctionParam )* ,?

│ │ │ +

SelfParam → OuterAttribute* ( ShorthandSelf | TypedSelf )

│ │ │ +

ShorthandSelf → ( & | & Lifetime )? mut? self

│ │ │ +

TypedSelf → mut? self : Type

│ │ │ +

FunctionParam → OuterAttribute* ( FunctionParamPattern | ... | Type )

│ │ │ +

FunctionParamPattern → PatternNoTopAlt : ( Type | ... )

│ │ │ +

FunctionReturnType → -> Type

│ │ │ +

GenericParams → < ( GenericParam ( , GenericParam )* ,? )? >

│ │ │ +

GenericParam → OuterAttribute* ( LifetimeParam | TypeParam | ConstParam )

│ │ │ +

LifetimeParam → Lifetime ( : LifetimeBounds )?

│ │ │ +

TypeParam → IDENTIFIER ( : TypeParamBounds? )? ( = Type )?

│ │ │ +

ConstParam →
    const IDENTIFIER : Type
    ( = ( BlockExpression | IDENTIFIER | -? LiteralExpression ) )?

│ │ │ +

WhereClause → where ( WhereClauseItem , )* WhereClauseItem?

│ │ │ +

WhereClauseItem →
      LifetimeWhereClauseItem
    | TypeBoundWhereClauseItem

│ │ │ +

LifetimeWhereClauseItem → Lifetime : LifetimeBounds

│ │ │ +

TypeBoundWhereClauseItem → ForLifetimes? Type : TypeParamBounds?

│ │ │ +

StaticItem →
    ItemSafety? static mut? IDENTIFIER : Type ( = Expression )? ;

│ │ │ +

ExternCrate → extern crate CrateRef AsClause? ;

│ │ │ +

CrateRef → IDENTIFIER | self

│ │ │ +

AsClause → as ( IDENTIFIER | _ )

│ │ │ +

AssociatedItem →
    OuterAttribute* (
        MacroInvocationSemi
      | ( Visibility? ( TypeAlias | ConstantItem | Function ) )
    )

│ │ │ +

ExternBlock →
    unsafe? extern Abi? {
        InnerAttribute*
        ExternalItem*
    }

│ │ │ +

ExternalItem →
    OuterAttribute* (
        MacroInvocationSemi
      | Visibility? StaticItem
      | Visibility? Function
    )

│ │ │ +

Union →
    union IDENTIFIER GenericParams? WhereClause? { StructFields? }

│ │ │ +

UseDeclaration → use UseTree ;

│ │ │ +

UseTree →
      ( SimplePath? :: )? *
    | ( SimplePath? :: )? { ( UseTree ( , UseTree )* ,? )? }
    | SimplePath ( as ( IDENTIFIER | _ ) )?

│ │ │ +

Module →
      unsafe? mod IDENTIFIER ;
    | unsafe? mod IDENTIFIER {
        InnerAttribute*
        Item*
      }

│ │ │ +

Enumeration →
    enum IDENTIFIER GenericParams? WhereClause? { EnumVariants? }

│ │ │ +

EnumVariants → EnumVariant ( , EnumVariant )* ,?

│ │ │ +

EnumVariant →
    OuterAttribute* Visibility?
    IDENTIFIER ( EnumVariantTuple | EnumVariantStruct )? EnumVariantDiscriminant?

│ │ │ +

EnumVariantTuple → ( TupleFields? )

│ │ │ +

EnumVariantStruct → { StructFields? }

│ │ │ +

EnumVariantDiscriminant → = Expression

│ │ │

│ │ │
│ │ │ │ │ │
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DeriveMacroAttributes │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -attributes │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternCrate │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ + │ │ │ + │ │ │ +UseDeclaration │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ + │ │ │ + │ │ │ +Function │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Struct │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Enumeration │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Union │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Trait │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Implementation │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Attr │ │ │ + │ │ │ + │ │ │ +ExternBlock │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MetaItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +super │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +in │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaSeq │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaListPaths │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +type │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +TypeParamBounds │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaListNameValueStr │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +const │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ IDENTIFIER │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +_ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MetaNameValueStr │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaNameValueStr │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InlineAttribute │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -inline │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -always │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inline │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -never │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inline │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Configuration summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -ConfigurationPredicate →
      ConfigurationOption
    | ConfigurationAll
    | ConfigurationAny
    | ConfigurationNot
    | true
    | false

│ │ │ -

ConfigurationOption →
    IDENTIFIER ( = ( STRING_LITERAL | RAW_STRING_LITERAL ) )?

│ │ │ -

ConfigurationAll →
    all ( ConfigurationPredicateList? )

│ │ │ -

ConfigurationAny →
    any ( ConfigurationPredicateList? )

│ │ │ -

ConfigurationNot →
    not ( ConfigurationPredicate )

│ │ │ -

ConfigurationPredicateList →
    ConfigurationPredicate ( , ConfigurationPredicate )* ,?

│ │ │ -

CfgAttribute → cfg ( ConfigurationPredicate )

│ │ │ -

CfgAttrAttribute → cfg_attr ( ConfigurationPredicate , CfgAttrs? )

│ │ │ -

CfgAttrs → Attr ( , Attr )* ,?

│ │ │ -

CfgSelect → CfgSelectArms?

│ │ │ -

CfgSelectArms →
    CfgSelectConfigurationPredicate =>
    (
        { ^ TokenTree } ,? CfgSelectArms?
      | ExpressionWithBlockNoAttrs ,? CfgSelectArms?
      | ExpressionWithoutBlockNoAttrs ( , CfgSelectArms? )?
    )

│ │ │ -

CfgSelectConfigurationPredicate →
    ConfigurationPredicate | _

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationPredicate │ │ │ + │ │ │ + │ │ │ +TupleStruct │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConfigurationOption │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +struct │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationAll │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationAny │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationNot │ │ │ + │ │ │ + │ │ │ +TupleFields │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -true │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -false │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConfigurationAny │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -any │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationPredicateList │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CfgSelectConfigurationPredicate │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -=> │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -{ │ │ │ + │ │ │ + │ │ │ +impl │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +for │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExpressionWithoutBlockNoAttrs │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +AssociatedItem │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ - │ │ │ -

Lexer summary

│ │ │ -
│ │ │ -

Lexer │ │ │ -
│ │ │ -WHITESPACE →
      U+0009 // Horizontal tab, '\t'
    | U+000A // Line feed, '\n'
    | U+000B // Vertical tab
    | U+000C // Form feed
    | U+000D // Carriage return, '\r'
    | U+0020 // Space, ' '
    | U+0085 // Next line
    | U+200E // Left-to-right mark
    | U+200F // Right-to-left mark
    | U+2028 // Line separator
    | U+2029 // Paragraph separator

│ │ │ -

TAB → U+0009 // Horizontal tab, '\t'

│ │ │ -

LF → U+000A // Line feed, '\n'

│ │ │ -

CR → U+000D // Carriage return, '\r'

│ │ │ -

Token →
      RESERVED_TOKEN
    | RAW_IDENTIFIER
    | CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | FLOAT_LITERAL
    | INTEGER_LITERAL
    | LIFETIME_TOKEN
    | PUNCTUATION
    | IDENTIFIER_OR_KEYWORD

│ │ │ -

SUFFIX →
      _ ^ XID_Continue+
    | XID_Start XID_Continue*

│ │ │ -

CHAR_LITERAL →
    '
        ( ~[' \ LF CR TAB] | QUOTE_ESCAPE | ASCII_ESCAPE | UNICODE_ESCAPE )
    ' SUFFIX?

│ │ │ -

QUOTE_ESCAPE → \' | \"

│ │ │ -

ASCII_ESCAPE →
      \x OCT_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0

│ │ │ -

UNICODE_ESCAPE →
    \u{ ( HEX_DIGIT _* )1..=6valid hex char value }

│ │ │ -

STRING_LITERAL →
    " (
        ~[" \ CR]
      | QUOTE_ESCAPE
      | ASCII_ESCAPE
      | UNICODE_ESCAPE
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ -

STRING_CONTINUE → \ LF

│ │ │ -

RAW_STRING_LITERAL →
      r " ^ RAW_STRING_CONTENT " SUFFIX?
    | r #n:1..=255 ^ " RAW_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_STRING_CONTENT → ( !" ~CR )*

│ │ │ -

RAW_STRING_CONTENT_HASHED → ( !( " #n ) ~CR )*

│ │ │ -

BYTE_LITERAL →
    b' ^ ( ASCII_FOR_CHAR | BYTE_ESCAPE ) ' SUFFIX?

│ │ │ -

ASCII_FOR_CHAR → ![' \ LF CR TAB] ASCII

│ │ │ -

BYTE_ESCAPE →
      \x HEX_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0 | \' | \"

│ │ │ -

BYTE_STRING_LITERAL →
    b" ^ ( ASCII_FOR_STRING | BYTE_ESCAPE | STRING_CONTINUE )* " SUFFIX?

│ │ │ -

ASCII_FOR_STRING → ![" \ CR] ASCII

│ │ │ -

RAW_BYTE_STRING_LITERAL →
      br " ^ RAW_BYTE_STRING_CONTENT " SUFFIX?
    | br #n:1..=255 ^ " RAW_BYTE_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_BYTE_STRING_CONTENT → ( !" ASCII_FOR_RAW )*

│ │ │ -

RAW_BYTE_STRING_CONTENT_HASHED → ( !( " #n ) ASCII_FOR_RAW )*

│ │ │ -

ASCII_FOR_RAW → !CR ASCII

│ │ │ -

C_STRING_LITERAL →
    c" ^ (
        ~[" \ CR NUL]
      | BYTE_ESCAPEexcept \0 or \x00
      | UNICODE_ESCAPEexcept \u{0}, \u{00}, …, \u{000000}
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ -

RAW_C_STRING_LITERAL →
      cr " ^ RAW_C_STRING_CONTENT " SUFFIX?
    | cr #n:1..=255 ^ " RAW_C_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_C_STRING_CONTENT → ( !" ~[CR NUL] )*

│ │ │ -

RAW_C_STRING_CONTENT_HASHED → ( !( " #n ) ~[CR NUL] )*

│ │ │ -

INTEGER_LITERAL →
    ( BIN_LITERAL | OCT_LITERAL | HEX_LITERAL | DEC_LITERAL )
    ^ !RESERVED_FLOAT SUFFIX?

│ │ │ -

DEC_LITERAL → DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ -

BIN_LITERAL → 0b ^ _* BIN_DIGIT ( BIN_DIGIT | _ )* ![e E 2-9]

│ │ │ -

OCT_LITERAL → 0o ^ _* OCT_DIGIT ( OCT_DIGIT | _ )* ![e E 8-9]

│ │ │ -

HEX_LITERAL → 0x ^ _* HEX_DIGIT ( HEX_DIGIT | _ )*

│ │ │ -

BIN_DIGIT → [0-1]

│ │ │ -

OCT_DIGIT → [0-7]

│ │ │ -

DEC_DIGIT → [0-9]

│ │ │ -

HEX_DIGIT → [0-9 a-f A-F]

│ │ │ -

RESERVED_FLOAT → . !( . | _ | XID_Start )

│ │ │ -

TUPLE_INDEX → DEC_LITERAL | BIN_LITERAL | OCT_LITERAL | HEX_LITERAL

│ │ │ -

FLOAT_LITERAL →
      DEC_LITERAL ( . DEC_LITERAL )? FLOAT_EXPONENT SUFFIX?
    | DEC_LITERAL . DEC_LITERAL SUFFIX?
    | DEC_LITERAL . !( . | _ | XID_Start )

│ │ │ -

FLOAT_EXPONENT →
    ( e | E ) ^ ( + | - )? _* DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ -

LIFETIME_TOKEN →
      RAW_LIFETIME
    | ' IDENTIFIER_OR_KEYWORD !'

│ │ │ -

LIFETIME_OR_LABEL →
      RAW_LIFETIME
    | ' NON_KEYWORD_IDENTIFIER !'

│ │ │ -

RAW_LIFETIME →
    'r# ^ IDENTIFIER_OR_KEYWORD !'

│ │ │ -

RESERVED_RAW_LIFETIME → 'r# ( _ | crate | self | Self | super ) !( ' | XID_Continue )

│ │ │ -

PUNCTUATION →
      ...
    | ..=
    | <<=
    | >>=
    | !=
    | %=
    | &&
    | &=
    | *=
    | +=
    | -=
    | ->
    | ..
    | /=
    | ::
    | <-
    | <<
    | <=
    | ==
    | =>
    | >=
    | >>
    | ^=
    | |=
    | ||
    | !
    | #
    | $
    | %
    | &
    | (
    | )
    | *
    | +
    | ,
    | -
    | .
    | /
    | :
    | ;
    | <
    | =
    | >
    | ?
    | @
    | [
    | ]
    | ^
    | {
    | |
    | }
    | ~

│ │ │ -

RESERVED_TOKEN →
      RESERVED_GUARDED_STRING_LITERAL
    | RESERVED_POUNDS
    | RESERVED_RAW_IDENTIFIER
    | RESERVED_RAW_LIFETIME
    | RESERVED_TOKEN_DOUBLE_QUOTE
    | RESERVED_TOKEN_LIFETIME
    | RESERVED_TOKEN_POUND
    | RESERVED_TOKEN_SINGLE_QUOTE

│ │ │ -

RESERVED_TOKEN_DOUBLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b or c or r or br or cr "

│ │ │ -

RESERVED_TOKEN_SINGLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b '

│ │ │ -

RESERVED_TOKEN_POUND →
    IDENTIFIER_OR_KEYWORDexcept r or br or cr #

│ │ │ -

RESERVED_TOKEN_LIFETIME →
    ' IDENTIFIER_OR_KEYWORDexcept r #

│ │ │ -

RESERVED_GUARDED_STRING_LITERAL → #+ STRING_LITERAL

│ │ │ -

RESERVED_POUNDS → #2..

│ │ │ -

SHEBANG →
    #! !( ( WHITESPACE | LINE_COMMENT | BLOCK_COMMENT )* [ )
    ~LF* ( LF | EOF )

│ │ │ -

CHAR → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value

│ │ │ -

ASCII → [U+0000-U+007F]

│ │ │ -

NUL → U+0000

│ │ │ -

EOF → !CHAR // End of file or input

│ │ │ -

IDENTIFIER_OR_KEYWORD → ( XID_Start | _ ) XID_Continue*

│ │ │ -

XID_Start → <XID_Start defined by Unicode>

│ │ │ -

XID_Continue → <XID_Continue defined by Unicode>

│ │ │ -

RAW_IDENTIFIER → r# IDENTIFIER_OR_KEYWORD

│ │ │ -

NON_KEYWORD_IDENTIFIER → IDENTIFIER_OR_KEYWORDexcept a strict or reserved keyword

│ │ │ -

IDENTIFIER → NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

│ │ │ -

RESERVED_RAW_IDENTIFIER →
    r# ( _ | crate | self | Self | super ) !XID_Continue

│ │ │ -

COMMENT →
      LINE_COMMENT
    | INNER_LINE_DOC
    | OUTER_LINE_DOC
    | INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ -

LINE_COMMENT →
      // ( ~[/ ! LF] | // ) ~LF*
    | // EOF
    | //immediately followed by LF

│ │ │ -

BLOCK_COMMENT →
    /* ^
      ( BLOCK_COMMENT_OR_DOC | ( !*/ CHAR ) )*
    */

│ │ │ -

INNER_LINE_DOC →
    //! ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ -

LINE_DOC_COMMENT_CONTENT → ( !CR ~LF )*

│ │ │ -

INNER_BLOCK_DOC →
    /*! ^ ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )* */

│ │ │ -

OUTER_LINE_DOC →
    /// ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ -

OUTER_BLOCK_DOC →
    /** ![* /]
      ^
      ( ~* | BLOCK_COMMENT_OR_DOC )
      ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )*
    */

│ │ │ -

BLOCK_CHAR → ( !( */ | CR ) CHAR )

│ │ │ -

BLOCK_COMMENT_OR_DOC →
      INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WHITESPACE │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0009 │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+000A │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -U+000B │ │ │ - │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+000C │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionParameters │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -U+000D │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0020 │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionReturnType │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0085 │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+200E │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+200F │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -U+2028 │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+2029 │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionParameters │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +SelfParam │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ +SelfParam │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BYTE_STRING_LITERAL │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +FunctionParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +FunctionParam │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_C_STRING_LITERAL │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +ShorthandSelf │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -_ │ │ │ + │ │ │ + │ │ │ +& │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +& │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ + │ │ │ + │ │ │ +Lifetime │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mut │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -\u{ │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -valid hex char value │ │ │ - │ │ │ - │ │ │ - │ │ │ -at most 5 more times │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -HEX_DIGIT │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -_ │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -} │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -\ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CR │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ + │ │ │ + │ │ │ +LifetimeParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ +TypeParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ +ConstParam │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UNICODE_ESCAPE │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +ConstParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -r │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ +const │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -repeat count n │ │ │ - │ │ │ - │ │ │ - │ │ │ -at most 254 more times │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -# │ │ │ + │ │ │ + │ │ │ +- │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +LiteralExpression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ItemSafety │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -' │ │ │ + │ │ │ + │ │ │ +static │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -\ │ │ │ + │ │ │ + │ │ │ +mut │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LF │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CR │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TAB │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CrateRef │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssociatedItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Function │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +extern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Abi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternalItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternalItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Function │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Union │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +union │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseDeclaration │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +use │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +:: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +:: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Module │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mod │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mod │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Item │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Enumeration │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +enum │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariants │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariants │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantTuple │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantStruct │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantTuple │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantStruct │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ +

Lexer summary

│ │ │ +
│ │ │ +

Lexer │ │ │ +
│ │ │ +CHAR → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value

│ │ │ +

ASCII → [U+0000-U+007F]

│ │ │ +

NUL → U+0000

│ │ │ +

EOF → !CHAR // End of file or input

│ │ │ +

SHEBANG →
    #! !( ( WHITESPACE | LINE_COMMENT | BLOCK_COMMENT )* [ )
    ~LF* ( LF | EOF )

│ │ │ +

COMMENT →
      LINE_COMMENT
    | INNER_LINE_DOC
    | OUTER_LINE_DOC
    | INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ +

LINE_COMMENT →
      // ( ~[/ ! LF] | // ) ~LF*
    | // EOF
    | //immediately followed by LF

│ │ │ +

BLOCK_COMMENT →
    /* ^
      ( BLOCK_COMMENT_OR_DOC | ( !*/ CHAR ) )*
    */

│ │ │ +

INNER_LINE_DOC →
    //! ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ +

LINE_DOC_COMMENT_CONTENT → ( !CR ~LF )*

│ │ │ +

INNER_BLOCK_DOC →
    /*! ^ ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )* */

│ │ │ +

OUTER_LINE_DOC →
    /// ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ +

OUTER_BLOCK_DOC →
    /** ![* /]
      ^
      ( ~* | BLOCK_COMMENT_OR_DOC )
      ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )*
    */

│ │ │ +

BLOCK_CHAR → ( !( */ | CR ) CHAR )

│ │ │ +

BLOCK_COMMENT_OR_DOC →
      INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ +

Token →
      RESERVED_TOKEN
    | RAW_IDENTIFIER
    | CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | FLOAT_LITERAL
    | INTEGER_LITERAL
    | LIFETIME_TOKEN
    | PUNCTUATION
    | IDENTIFIER_OR_KEYWORD

│ │ │ +

SUFFIX →
      _ ^ XID_Continue+
    | XID_Start XID_Continue*

│ │ │ +

CHAR_LITERAL →
    '
        ( ~[' \ LF CR TAB] | QUOTE_ESCAPE | ASCII_ESCAPE | UNICODE_ESCAPE )
    ' SUFFIX?

│ │ │ +

QUOTE_ESCAPE → \' | \"

│ │ │ +

ASCII_ESCAPE →
      \x OCT_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0

│ │ │ +

UNICODE_ESCAPE →
    \u{ ( HEX_DIGIT _* )1..=6valid hex char value }

│ │ │ +

STRING_LITERAL →
    " (
        ~[" \ CR]
      | QUOTE_ESCAPE
      | ASCII_ESCAPE
      | UNICODE_ESCAPE
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ +

STRING_CONTINUE → \ LF

│ │ │ +

RAW_STRING_LITERAL →
      r " ^ RAW_STRING_CONTENT " SUFFIX?
    | r #n:1..=255 ^ " RAW_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_STRING_CONTENT → ( !" ~CR )*

│ │ │ +

RAW_STRING_CONTENT_HASHED → ( !( " #n ) ~CR )*

│ │ │ +

BYTE_LITERAL →
    b' ^ ( ASCII_FOR_CHAR | BYTE_ESCAPE ) ' SUFFIX?

│ │ │ +

ASCII_FOR_CHAR → ![' \ LF CR TAB] ASCII

│ │ │ +

BYTE_ESCAPE →
      \x HEX_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0 | \' | \"

│ │ │ +

BYTE_STRING_LITERAL →
    b" ^ ( ASCII_FOR_STRING | BYTE_ESCAPE | STRING_CONTINUE )* " SUFFIX?

│ │ │ +

ASCII_FOR_STRING → ![" \ CR] ASCII

│ │ │ +

RAW_BYTE_STRING_LITERAL →
      br " ^ RAW_BYTE_STRING_CONTENT " SUFFIX?
    | br #n:1..=255 ^ " RAW_BYTE_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_BYTE_STRING_CONTENT → ( !" ASCII_FOR_RAW )*

│ │ │ +

RAW_BYTE_STRING_CONTENT_HASHED → ( !( " #n ) ASCII_FOR_RAW )*

│ │ │ +

ASCII_FOR_RAW → !CR ASCII

│ │ │ +

C_STRING_LITERAL →
    c" ^ (
        ~[" \ CR NUL]
      | BYTE_ESCAPEexcept \0 or \x00
      | UNICODE_ESCAPEexcept \u{0}, \u{00}, …, \u{000000}
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ +

RAW_C_STRING_LITERAL →
      cr " ^ RAW_C_STRING_CONTENT " SUFFIX?
    | cr #n:1..=255 ^ " RAW_C_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_C_STRING_CONTENT → ( !" ~[CR NUL] )*

│ │ │ +

RAW_C_STRING_CONTENT_HASHED → ( !( " #n ) ~[CR NUL] )*

│ │ │ +

INTEGER_LITERAL →
    ( BIN_LITERAL | OCT_LITERAL | HEX_LITERAL | DEC_LITERAL )
    ^ !RESERVED_FLOAT SUFFIX?

│ │ │ +

DEC_LITERAL → DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ +

BIN_LITERAL → 0b ^ _* BIN_DIGIT ( BIN_DIGIT | _ )* ![e E 2-9]

│ │ │ +

OCT_LITERAL → 0o ^ _* OCT_DIGIT ( OCT_DIGIT | _ )* ![e E 8-9]

│ │ │ +

HEX_LITERAL → 0x ^ _* HEX_DIGIT ( HEX_DIGIT | _ )*

│ │ │ +

BIN_DIGIT → [0-1]

│ │ │ +

OCT_DIGIT → [0-7]

│ │ │ +

DEC_DIGIT → [0-9]

│ │ │ +

HEX_DIGIT → [0-9 a-f A-F]

│ │ │ +

RESERVED_FLOAT → . !( . | _ | XID_Start )

│ │ │ +

TUPLE_INDEX → DEC_LITERAL | BIN_LITERAL | OCT_LITERAL | HEX_LITERAL

│ │ │ +

FLOAT_LITERAL →
      DEC_LITERAL ( . DEC_LITERAL )? FLOAT_EXPONENT SUFFIX?
    | DEC_LITERAL . DEC_LITERAL SUFFIX?
    | DEC_LITERAL . !( . | _ | XID_Start )

│ │ │ +

FLOAT_EXPONENT →
    ( e | E ) ^ ( + | - )? _* DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ +

LIFETIME_TOKEN →
      RAW_LIFETIME
    | ' IDENTIFIER_OR_KEYWORD !'

│ │ │ +

LIFETIME_OR_LABEL →
      RAW_LIFETIME
    | ' NON_KEYWORD_IDENTIFIER !'

│ │ │ +

RAW_LIFETIME →
    'r# ^ IDENTIFIER_OR_KEYWORD !'

│ │ │ +

RESERVED_RAW_LIFETIME → 'r# ( _ | crate | self | Self | super ) !( ' | XID_Continue )

│ │ │ +

PUNCTUATION →
      ...
    | ..=
    | <<=
    | >>=
    | !=
    | %=
    | &&
    | &=
    | *=
    | +=
    | -=
    | ->
    | ..
    | /=
    | ::
    | <-
    | <<
    | <=
    | ==
    | =>
    | >=
    | >>
    | ^=
    | |=
    | ||
    | !
    | #
    | $
    | %
    | &
    | (
    | )
    | *
    | +
    | ,
    | -
    | .
    | /
    | :
    | ;
    | <
    | =
    | >
    | ?
    | @
    | [
    | ]
    | ^
    | {
    | |
    | }
    | ~

│ │ │ +

RESERVED_TOKEN →
      RESERVED_GUARDED_STRING_LITERAL
    | RESERVED_POUNDS
    | RESERVED_RAW_IDENTIFIER
    | RESERVED_RAW_LIFETIME
    | RESERVED_TOKEN_DOUBLE_QUOTE
    | RESERVED_TOKEN_LIFETIME
    | RESERVED_TOKEN_POUND
    | RESERVED_TOKEN_SINGLE_QUOTE

│ │ │ +

RESERVED_TOKEN_DOUBLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b or c or r or br or cr "

│ │ │ +

RESERVED_TOKEN_SINGLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b '

│ │ │ +

RESERVED_TOKEN_POUND →
    IDENTIFIER_OR_KEYWORDexcept r or br or cr #

│ │ │ +

RESERVED_TOKEN_LIFETIME →
    ' IDENTIFIER_OR_KEYWORDexcept r #

│ │ │ +

RESERVED_GUARDED_STRING_LITERAL → #+ STRING_LITERAL

│ │ │ +

RESERVED_POUNDS → #2..

│ │ │ +

IDENTIFIER_OR_KEYWORD → ( XID_Start | _ ) XID_Continue*

│ │ │ +

XID_Start → <XID_Start defined by Unicode>

│ │ │ +

XID_Continue → <XID_Continue defined by Unicode>

│ │ │ +

RAW_IDENTIFIER → r# IDENTIFIER_OR_KEYWORD

│ │ │ +

NON_KEYWORD_IDENTIFIER → IDENTIFIER_OR_KEYWORDexcept a strict or reserved keyword

│ │ │ +

IDENTIFIER → NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

│ │ │ +

RESERVED_RAW_IDENTIFIER →
    r# ( _ | crate | self | Self | super ) !XID_Continue

│ │ │ +

WHITESPACE →
      U+0009 // Horizontal tab, '\t'
    | U+000A // Line feed, '\n'
    | U+000B // Vertical tab
    | U+000C // Form feed
    | U+000D // Carriage return, '\r'
    | U+0020 // Space, ' '
    | U+0085 // Next line
    | U+200E // Left-to-right mark
    | U+200F // Right-to-left mark
    | U+2028 // Line separator
    | U+2029 // Paragraph separator

│ │ │ +

TAB → U+0009 // Horizontal tab, '\t'

│ │ │ +

LF → U+000A // Line feed, '\n'

│ │ │ +

CR → U+000D // Carriage return, '\r'

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000-U+D7FF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+E000-U+10FFFF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000-U+007F │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +NUL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000 │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SHEBANG │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +#! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WHITESPACE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +immediately followed by LF │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +//! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/*! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/** │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Token │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RESERVED_TOKEN │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_TOKEN │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PUNCTUATION │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER_OR_KEYWORD │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Start │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\x │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OCT_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\n │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\t │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\0 │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\u{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +valid hex char value │ │ │ + │ │ │ + │ │ │ + │ │ │ +at most 5 more times │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_CONTINUE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_CONTINUE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat count n │ │ │ + │ │ │ + │ │ │ + │ │ │ +at most 254 more times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +b' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\x │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ \n │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ \r │ │ │ @@ -6213,5846 +9210,729 @@ │ │ │ │ │ │ │ │ │ RESERVED_TOKEN_SINGLE_QUOTE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `b` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -' │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_TOKEN_POUND │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `r` or `br` or `cr` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_TOKEN_LIFETIME │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -' │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `r` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_GUARDED_STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_POUNDS │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SHEBANG │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -#! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WHITESPACE │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000-U+D7FF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+E000-U+10FFFF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ASCII │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000-U+007F │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NUL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000 │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -`XID_Start` defined by Unicode │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -`XID_Continue` defined by Unicode │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NON_KEYWORD_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except a strict or reserved keyword │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NON_KEYWORD_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -immediately followed by LF │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -//! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/*! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/** │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ -

Items summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Visibility →
      pub
    | pub ( crate )
    | pub ( self )
    | pub ( super )
    | pub ( in SimplePath )

│ │ │ -

Item →
    OuterAttribute* ( VisItem | MacroItem )

│ │ │ -

VisItem →
    Visibility?
    (
        Module
      | ExternCrate
      | UseDeclaration
      | Function
      | TypeAlias
      | Struct
      | Enumeration
      | Union
      | ConstantItem
      | StaticItem
      | Trait
      | Implementation
      | ExternBlock
    )

│ │ │ -

MacroItem →
      MacroInvocationSemi
    | MacroRulesDefinition

│ │ │ -

UseDeclaration → use UseTree ;

│ │ │ -

UseTree →
      ( SimplePath? :: )? *
    | ( SimplePath? :: )? { ( UseTree ( , UseTree )* ,? )? }
    | SimplePath ( as ( IDENTIFIER | _ ) )?

│ │ │ -

Union →
    union IDENTIFIER GenericParams? WhereClause? { StructFields? }

│ │ │ -

TypeAlias →
    type IDENTIFIER GenericParams? ( : TypeParamBounds )?
        WhereClause?
        ( = Type WhereClause? )? ;

│ │ │ -

Trait →
    unsafe? trait IDENTIFIER GenericParams? ( : TypeParamBounds? )? WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

Struct →
      StructStruct
    | TupleStruct

│ │ │ -

StructStruct →
    struct IDENTIFIER GenericParams? WhereClause? ( { StructFields? } | ; )

│ │ │ -

TupleStruct →
    struct IDENTIFIER GenericParams? ( TupleFields? ) WhereClause? ;

│ │ │ -

StructFields → StructField ( , StructField )* ,?

│ │ │ -

StructField → OuterAttribute* Visibility? IDENTIFIER : Type

│ │ │ -

TupleFields → TupleField ( , TupleField )* ,?

│ │ │ -

TupleField → OuterAttribute* Visibility? Type

│ │ │ -

StaticItem →
    ItemSafety? static mut? IDENTIFIER : Type ( = Expression )? ;

│ │ │ -

Module →
      unsafe? mod IDENTIFIER ;
    | unsafe? mod IDENTIFIER {
        InnerAttribute*
        Item*
      }

│ │ │ -

Implementation → InherentImpl | TraitImpl

│ │ │ -

InherentImpl →
    impl GenericParams? Type WhereClause? {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

TraitImpl →
    unsafe? impl GenericParams? !? TypePath for Type
    WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

GenericParams → < ( GenericParam ( , GenericParam )* ,? )? >

│ │ │ -

GenericParam → OuterAttribute* ( LifetimeParam | TypeParam | ConstParam )

│ │ │ -

LifetimeParam → Lifetime ( : LifetimeBounds )?

│ │ │ -

TypeParam → IDENTIFIER ( : TypeParamBounds? )? ( = Type )?

│ │ │ -

ConstParam →
    const IDENTIFIER : Type
    ( = ( BlockExpression | IDENTIFIER | -? LiteralExpression ) )?

│ │ │ -

WhereClause → where ( WhereClauseItem , )* WhereClauseItem?

│ │ │ -

WhereClauseItem →
      LifetimeWhereClauseItem
    | TypeBoundWhereClauseItem

│ │ │ -

LifetimeWhereClauseItem → Lifetime : LifetimeBounds

│ │ │ -

TypeBoundWhereClauseItem → ForLifetimes? Type : TypeParamBounds?

│ │ │ -

Function →
    FunctionQualifiers fn IDENTIFIER GenericParams?
        ( FunctionParameters? )
        FunctionReturnType? WhereClause?
        ( BlockExpression | ; )

│ │ │ -

FunctionQualifiers → const? async? ItemSafety? ( extern Abi? )?

│ │ │ -

ItemSafety → safe | unsafe

│ │ │ -

Abi → STRING_LITERAL | RAW_STRING_LITERAL

│ │ │ -

FunctionParameters →
      SelfParam ,?
    | ( SelfParam , )? FunctionParam ( , FunctionParam )* ,?

│ │ │ -

SelfParam → OuterAttribute* ( ShorthandSelf | TypedSelf )

│ │ │ -

ShorthandSelf → ( & | & Lifetime )? mut? self

│ │ │ -

TypedSelf → mut? self : Type

│ │ │ -

FunctionParam → OuterAttribute* ( FunctionParamPattern | ... | Type )

│ │ │ -

FunctionParamPattern → PatternNoTopAlt : ( Type | ... )

│ │ │ -

FunctionReturnType → -> Type

│ │ │ -

ExternBlock →
    unsafe? extern Abi? {
        InnerAttribute*
        ExternalItem*
    }

│ │ │ -

ExternalItem →
    OuterAttribute* (
        MacroInvocationSemi
      | Visibility? StaticItem
      | Visibility? Function
    )

│ │ │ -

ExternCrate → extern crate CrateRef AsClause? ;

│ │ │ -

CrateRef → IDENTIFIER | self

│ │ │ -

AsClause → as ( IDENTIFIER | _ )

│ │ │ -

Enumeration →
    enum IDENTIFIER GenericParams? WhereClause? { EnumVariants? }

│ │ │ -

EnumVariants → EnumVariant ( , EnumVariant )* ,?

│ │ │ -

EnumVariant →
    OuterAttribute* Visibility?
    IDENTIFIER ( EnumVariantTuple | EnumVariantStruct )? EnumVariantDiscriminant?

│ │ │ -

EnumVariantTuple → ( TupleFields? )

│ │ │ -

EnumVariantStruct → { StructFields? }

│ │ │ -

EnumVariantDiscriminant → = Expression

│ │ │ -

ConstantItem →
    const ( IDENTIFIER | _ ) : Type ( = Expression )? ;

│ │ │ -

AssociatedItem →
    OuterAttribute* (
        MacroInvocationSemi
      | ( Visibility? ( TypeAlias | ConstantItem | Function ) )
    )

│ │ │ -

Crate →
    InnerAttribute*
    Item*

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -in │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Item │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -VisItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -VisItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Module │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternCrate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseDeclaration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeAlias │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Enumeration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstantItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Implementation │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternBlock │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroRulesDefinition │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseDeclaration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -use │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -as │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeAlias │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -static │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Module │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mod │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mod │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Item │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Implementation │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InherentImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InherentImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -for │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -- │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LiteralExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -where │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeBoundWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeBoundWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ForLifetimes │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionQualifiers │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -fn │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParameters │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionReturnType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionQualifiers │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -async │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -safe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParameters │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ShorthandSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypedSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ShorthandSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypedSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParamPattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -... │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParamPattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -PatternNoTopAlt │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -... │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionReturnType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ --> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternBlock │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternalItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternalItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternCrate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CrateRef │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CrateRef │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -as │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Enumeration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -enum │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariants │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariants │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariant │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariant │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RESERVED_TOKEN_POUND │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except `r` or `br` or `cr` │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ +IDENTIFIER_OR_KEYWORD │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +`XID_Continue` defined by Unicode │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -

Types summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Type →
      TypeNoBounds
    | ImplTraitType
    | TraitObjectType

│ │ │ -

TypeNoBounds →
      ParenthesizedType
    | ImplTraitTypeOneBound
    | TraitObjectTypeOneBound
    | TypePath
    | TupleType
    | NeverType
    | RawPointerType
    | ReferenceType
    | ArrayType
    | SliceType
    | InferredType
    | QualifiedPathInType
    | BareFunctionType
    | MacroInvocation

│ │ │ -

ParenthesizedType → ( Type )

│ │ │ -

TupleType →
      ( )
    | ( ( Type , )+ Type? )

│ │ │ -

TraitObjectType → dyn? TypeParamBounds

│ │ │ -

TraitObjectTypeOneBound → dyn? TraitBound

│ │ │ -

SliceType → [ Type ]

│ │ │ -

ReferenceType → & Lifetime? mut? TypeNoBounds

│ │ │ -

RawPointerType → * ( mut | const ) TypeNoBounds

│ │ │ -

NeverType → !

│ │ │ -

InferredType → _

│ │ │ -

ImplTraitType → impl TypeParamBounds

│ │ │ -

ImplTraitTypeOneBound → impl TraitBound

│ │ │ -

BareFunctionType →
    ForLifetimes? FunctionTypeQualifiers fn
       ( FunctionParametersMaybeNamedVariadic? ) BareFunctionReturnType?

│ │ │ -

FunctionTypeQualifiers → unsafe? ( extern Abi? )?

│ │ │ -

BareFunctionReturnType → -> TypeNoBounds

│ │ │ -

FunctionParametersMaybeNamedVariadic →
    MaybeNamedFunctionParameters | MaybeNamedFunctionParametersVariadic

│ │ │ -

MaybeNamedFunctionParameters →
    MaybeNamedParam ( , MaybeNamedParam )* ,?

│ │ │ -

MaybeNamedParam →
    OuterAttribute* ( ( IDENTIFIER | _ ) : )? Type

│ │ │ -

MaybeNamedFunctionParametersVariadic →
    ( MaybeNamedParam , )* MaybeNamedParam , OuterAttribute* ...

│ │ │ -

ArrayType → [ Type ; Expression ]

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +RESERVED_RAW_IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ +r# │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitType │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +crate │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +super │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TraitObjectType │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ +WHITESPACE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ParenthesizedType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0009 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitTypeOneBound │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000A │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitObjectTypeOneBound │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000B │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000C │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000D │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NeverType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0020 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RawPointerType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0085 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ReferenceType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+200E │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ArrayType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+200F │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SliceType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+2028 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InferredType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+2029 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -QualifiedPathInType │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BareFunctionType │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0009 │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocation │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ +

Types summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +ArrayType → [ Type ; Expression ]

│ │ │ +

TraitObjectType → dyn? TypeParamBounds

│ │ │ +

TraitObjectTypeOneBound → dyn? TraitBound

│ │ │ +

InferredType → _

│ │ │ +

BareFunctionType →
    ForLifetimes? FunctionTypeQualifiers fn
       ( FunctionParametersMaybeNamedVariadic? ) BareFunctionReturnType?

│ │ │ +

FunctionTypeQualifiers → unsafe? ( extern Abi? )?

│ │ │ +

BareFunctionReturnType → -> TypeNoBounds

│ │ │ +

FunctionParametersMaybeNamedVariadic →
    MaybeNamedFunctionParameters | MaybeNamedFunctionParametersVariadic

│ │ │ +

MaybeNamedFunctionParameters →
    MaybeNamedParam ( , MaybeNamedParam )* ,?

│ │ │ +

MaybeNamedParam →
    OuterAttribute* ( ( IDENTIFIER | _ ) : )? Type

│ │ │ +

MaybeNamedFunctionParametersVariadic →
    ( MaybeNamedParam , )* MaybeNamedParam , OuterAttribute* ...

│ │ │ +

NeverType → !

│ │ │ +

SliceType → [ Type ]

│ │ │ +

ReferenceType → & Lifetime? mut? TypeNoBounds

│ │ │ +

RawPointerType → * ( mut | const ) TypeNoBounds

│ │ │ +

TupleType →
      ( )
    | ( ( Type , )+ Type? )

│ │ │ +

ImplTraitType → impl TypeParamBounds

│ │ │ +

ImplTraitTypeOneBound → impl TraitBound

│ │ │ +

Type →
      TypeNoBounds
    | ImplTraitType
    | TraitObjectType

│ │ │ +

TypeNoBounds →
      ParenthesizedType
    | ImplTraitTypeOneBound
    | TraitObjectTypeOneBound
    | TypePath
    | TupleType
    | NeverType
    | RawPointerType
    | ReferenceType
    | ArrayType
    | SliceType
    | InferredType
    | QualifiedPathInType
    | BareFunctionType
    | MacroInvocation

│ │ │ +

ParenthesizedType → ( Type )

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayType │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +[ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Type │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -12120,174 +10000,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SliceType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ReferenceType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RawPointerType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NeverType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ InferredType │ │ │ │ │ │ @@ -12302,78 +10022,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitTypeOneBound │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitBound │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ BareFunctionType │ │ │ │ │ │ @@ -12772,20 +10428,42 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SliceType │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -12797,839 +10475,522 @@ │ │ │ │ │ │ Type │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ ] │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Miscellaneous summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -TypeParamBounds → TypeParamBound ( + TypeParamBound )* +?

│ │ │ -

TypeParamBound → Lifetime | TraitBound | UseBound

│ │ │ -

TraitBound →
      ( ? | ForLifetimes )? TypePath
    | ( ( ? | ForLifetimes )? TypePath )

│ │ │ -

LifetimeBounds → ( Lifetime + )* Lifetime?

│ │ │ -

Lifetime →
      LIFETIME_OR_LABEL
    | 'static
    | '_

│ │ │ -

UseBound → use UseBoundGenericArgs

│ │ │ -

UseBoundGenericArgs →
      < >
    | < ( UseBoundGenericArg , )* UseBoundGenericArg ,? >

│ │ │ -

UseBoundGenericArg →
      Lifetime
    | IDENTIFIER
    | Self

│ │ │ -

ForLifetimes → for GenericParams

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -'static │ │ │ - │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -'_ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -

Statements summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Statement →
      ;
    | Item
    | LetStatement
    | ExpressionStatement
    | OuterAttribute* MacroInvocationSemi

│ │ │ -

LetStatement →
    OuterAttribute* let PatternNoTopAlt ( : Type )?
    (
          = Expression
        | = Expressionexcept LazyBooleanExpression or end with a } else BlockExpression
    )? ;

│ │ │ -

ExpressionStatement →
      ExpressionWithoutBlock ;
    | ExpressionWithBlock ;?

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Statement │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ImplTraitTypeOneBound │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Item │ │ │ + │ │ │ + │ │ │ +TraitObjectTypeOneBound │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LetStatement │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionStatement │ │ │ + │ │ │ + │ │ │ +TupleType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +NeverType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ +RawPointerType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LetStatement │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +ReferenceType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -let │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PatternNoTopAlt │ │ │ + │ │ │ + │ │ │ +ArrayType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +SliceType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +InferredType │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except LazyBooleanExpression or end with a `}` │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +QualifiedPathInType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -else │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +BareFunctionType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocation │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ │ │ │ @@ -15137,1405 +12498,1138 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ -

Paths summary

│ │ │ +

Attributes summary

│ │ │
│ │ │

Syntax │ │ │
│ │ │ -SimplePath →
    ::? SimplePathSegment ( :: SimplePathSegment )*

│ │ │ -

SimplePathSegment →
    IDENTIFIER | super | self | crate | $crate

│ │ │ -

PathInExpression →
    ::? PathExprSegment ( :: PathExprSegment )*

│ │ │ -

PathExprSegment →
    PathIdentSegment ( :: GenericArgs )?

│ │ │ -

PathIdentSegment →
    IDENTIFIER | super | self | Self | crate | $crate

│ │ │ -

GenericArgs →
      < >
    | < ( GenericArg , )* GenericArg ,? >

│ │ │ -

GenericArg →
    Lifetime | Type | GenericArgsConst | GenericArgsBinding | GenericArgsBounds

│ │ │ -

GenericArgsConst →
      BlockExpression
    | LiteralExpression
    | - LiteralExpression
    | SimplePathSegment

│ │ │ -

GenericArgsBinding →
    IDENTIFIER GenericArgs? = Type

│ │ │ -

GenericArgsBounds →
    IDENTIFIER GenericArgs? : TypeParamBounds

│ │ │ -

QualifiedPathInExpression → QualifiedPathType ( :: PathExprSegment )+

│ │ │ -

QualifiedPathType → < Type ( as TypePath )? >

│ │ │ -

QualifiedPathInType → QualifiedPathType ( :: TypePathSegment )+

│ │ │ -

TypePath → ::? TypePathSegment ( :: TypePathSegment )*

│ │ │ -

TypePathSegment → PathIdentSegment ( ::? ( GenericArgs | TypePathFn ) )?

│ │ │ -

TypePathFn → ( TypePathFnInputs? ) ( -> TypeNoBounds )?

│ │ │ -

TypePathFnInputs → Type ( , Type )* ,?

│ │ │ +InnerAttribute → # ! [ Attr ]

│ │ │ +

OuterAttribute → # [ Attr ]

│ │ │ +

Attr →
      SimplePath AttrInput?
    | unsafe ( SimplePath AttrInput? )

│ │ │ +

AttrInput →
      DelimTokenTree
    | = Expression

│ │ │ +

MetaItem →
      SimplePath
    | SimplePath = Expression
    | SimplePath ( MetaSeq? )

│ │ │ +

MetaSeq →
    MetaItemInner ( , MetaItemInner )* ,?

│ │ │ +

MetaItemInner →
      MetaItem
    | Expression

│ │ │ +

MetaWord →
    IDENTIFIER

│ │ │ +

MetaNameValueStr →
    IDENTIFIER = ( STRING_LITERAL | RAW_STRING_LITERAL )

│ │ │ +

MetaListPaths →
    IDENTIFIER ( ( SimplePath ( , SimplePath )* ,? )? )

│ │ │ +

MetaListIdents →
    IDENTIFIER ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ +

MetaListNameValueStr →
    IDENTIFIER ( ( MetaNameValueStr ( , MetaNameValueStr )* ,? )? )

│ │ │ +

InlineAttribute →
      inline ( always )
    | inline ( never )
    | inline

│ │ │ +

CollapseDebuginfoAttribute → collapse_debuginfo ( CollapseDebuginfoOption )

│ │ │ +

CollapseDebuginfoOption →
      yes
    | no
    | external

│ │ │ +

ProcMacroDeriveAttribute →
    proc_macro_derive ( DeriveMacroName ( , DeriveMacroAttributes )? ,? )

│ │ │ +

DeriveMacroName → IDENTIFIER

│ │ │ +

DeriveMacroAttributes →
    attributes ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │

│ │ │
│ │ │ │ │ │
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -PathInExpression │ │ │ + │ │ │ + │ │ │ +Attr │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AttrInput │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -:: │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathExprSegment │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathExprSegment │ │ │ + │ │ │ + │ │ │ +AttrInput │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -PathIdentSegment │ │ │ + │ │ │ + │ │ │ +MetaItem │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ -IDENTIFIER │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -self │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -crate │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaSeq │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -$crate │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -GenericArgs │ │ │ + │ │ │ + │ │ │ +MetaSeq │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaItemInner │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericArg │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaItemInner │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericArg │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -QualifiedPathType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -as │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -> │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypePathSegment │ │ │ + │ │ │ + │ │ │ +MetaListNameValueStr │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathIdentSegment │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaNameValueStr │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -GenericArgs │ │ │ + │ │ │ + │ │ │ +MetaNameValueStr │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePathFn │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypePathFn │ │ │ + │ │ │ + │ │ │ +InlineAttribute │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePathFnInputs │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +always │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ --> │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +never │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ - │ │ │ -

Macros summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -MacroInvocation →
    SimplePath ! DelimTokenTree

│ │ │ -

DelimTokenTree →
      ( TokenTree* )
    | [ TokenTree* ]
    | { TokenTree* }

│ │ │ -

TokenTree →
    Tokenexcept delimiters | DelimTokenTree

│ │ │ -

MacroInvocationSemi →
      SimplePath ! ( TokenTree* ) ;
    | SimplePath ! [ TokenTree* ] ;
    | SimplePath ! { TokenTree* }

│ │ │ -

MacroRulesDefinition →
    macro_rules ! IDENTIFIER MacroRulesDef

│ │ │ -

MacroRulesDef →
      ( MacroRules ) ;
    | [ MacroRules ] ;
    | { MacroRules }

│ │ │ -

MacroRules →
    MacroRule ( ; MacroRule )* ;?

│ │ │ -

MacroRule →
    MacroMatcher => MacroTranscriber

│ │ │ -

MacroMatcher →
      ( MacroMatch* )
    | [ MacroMatch* ]
    | { MacroMatch* }

│ │ │ -

MacroMatch →
      Tokenexcept $ and delimiters
    | MacroMatcher
    | $ ( IDENTIFIER_OR_KEYWORDexcept crate | RAW_IDENTIFIER ) : MacroFragSpec
    | $ ( MacroMatch+ ) MacroRepSep? MacroRepOp

│ │ │ -

MacroFragSpec →
      block | expr | expr_2021 | ident | item | lifetime | literal
    | meta | pat | pat_param | path | stmt | tt | ty | vis

│ │ │ -

MacroRepSep → Tokenexcept delimiters and MacroRepOp

│ │ │ -

MacroRepOp → * | + | ?

│ │ │ -

MacroTranscriber → DelimTokenTree

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -DelimTokenTree │ │ │ + │ │ │ + │ │ │ +ProcMacroDeriveAttribute │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +proc_macro_derive │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +DeriveMacroName │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -[ │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +DeriveMacroAttributes │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ +DeriveMacroAttributes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ + │ │ │ +attributes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ +
│ │ │ + │ │ │ +

Macros summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +MacroRulesDefinition →
    macro_rules ! IDENTIFIER MacroRulesDef

│ │ │ +

MacroRulesDef →
      ( MacroRules ) ;
    | [ MacroRules ] ;
    | { MacroRules }

│ │ │ +

MacroRules →
    MacroRule ( ; MacroRule )* ;?

│ │ │ +

MacroRule →
    MacroMatcher => MacroTranscriber

│ │ │ +

MacroMatcher →
      ( MacroMatch* )
    | [ MacroMatch* ]
    | { MacroMatch* }

│ │ │ +

MacroMatch →
      Tokenexcept $ and delimiters
    | MacroMatcher
    | $ ( IDENTIFIER_OR_KEYWORDexcept crate | RAW_IDENTIFIER ) : MacroFragSpec
    | $ ( MacroMatch+ ) MacroRepSep? MacroRepOp

│ │ │ +

MacroFragSpec →
      block | expr | expr_2021 | ident | item | lifetime | literal
    | meta | pat | pat_param | path | stmt | tt | ty | vis

│ │ │ +

MacroRepSep → Tokenexcept delimiters and MacroRepOp

│ │ │ +

MacroRepOp → * | + | ?

│ │ │ +

MacroTranscriber → DelimTokenTree

│ │ │ +

MacroInvocation →
    SimplePath ! DelimTokenTree

│ │ │ +

DelimTokenTree →
      ( TokenTree* )
    | [ TokenTree* ]
    | { TokenTree* }

│ │ │ +

TokenTree →
    Tokenexcept delimiters | DelimTokenTree

│ │ │ +

MacroInvocationSemi →
      SimplePath ! ( TokenTree* ) ;
    | SimplePath ! [ TokenTree* ] ;
    | SimplePath ! { TokenTree* }

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ MacroRulesDefinition │ │ │ │ │ │ @@ -17246,1104 +14340,913 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Assembly summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -AsmArgs → AsmAttrFormatString ( , AsmAttrFormatString )* ( , AsmAttrOperand )* ,?

│ │ │ -

FormatString → STRING_LITERAL | RAW_STRING_LITERAL | MacroInvocation

│ │ │ -

AsmAttrFormatString → ( OuterAttribute )* FormatString

│ │ │ -

AsmOperand →
      ClobberAbi
    | AsmOptions
    | RegOperand

│ │ │ -

AsmAttrOperand → ( OuterAttribute )* AsmOperand

│ │ │ -

ClobberAbi → clobber_abi ( Abi ( , Abi )* ,? )

│ │ │ -

AsmOptions →
    options ( ( AsmOption ( , AsmOption )* ,? )? )

│ │ │ -

AsmOption →
      pure
    | nomem
    | readonly
    | preserves_flags
    | noreturn
    | nostack
    | att_syntax
    | raw

│ │ │ -

RegOperand → ( ParamName = )?
    (
          DirSpec ( RegSpec ) Expression
        | DualDirSpec ( RegSpec ) DualDirSpecExpression
        | sym PathExpression
        | const Expression
        | label { Statements? }
    )

│ │ │ -

ParamName → IDENTIFIER_OR_KEYWORD | RAW_IDENTIFIER

│ │ │ -

DualDirSpecExpression →
      Expression
    | Expression => Expression

│ │ │ -

RegSpec → RegisterClass | ExplicitRegister

│ │ │ -

RegisterClass → IDENTIFIER_OR_KEYWORD

│ │ │ -

ExplicitRegister → STRING_LITERAL

│ │ │ -

DirSpec →
      in
    | out
    | lateout

│ │ │ -

DualDirSpec →
      inout
    | inlateout

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmArgs │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOperand │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClobberAbi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOptions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RegOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClobberAbi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -clobber_abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -AsmOption │ │ │ + │ │ │ + │ │ │ +DelimTokenTree │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -pure │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -nomem │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -readonly │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -preserves_flags │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -noreturn │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -nostack │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -att_syntax │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -raw │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DirSpec │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RegSpec │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DualDirSpec │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RegSpec │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +[ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DualDirSpecExpression │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -sym │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -PathExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -label │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ { │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Statements │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ } │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Expressions summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +LiteralExpression →
      CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | INTEGER_LITERAL
    | FLOAT_LITERAL
    | true
    | false

│ │ │ +

AwaitExpression → Expression . await

│ │ │ +

MethodCallExpression → Expression . PathExprSegment ( CallParams? )

│ │ │ +

ReturnExpression → return Expression?

│ │ │ +

ClosureExpression →
    async?
    move?
    ( || | | ClosureParameters? | )
    ( Expression | -> TypeNoBounds BlockExpression )

│ │ │ +

ClosureParameters → ClosureParam ( , ClosureParam )* ,?

│ │ │ +

ClosureParam → OuterAttribute* PatternNoTopAlt ( : Type )?

│ │ │ +

FieldExpression → Expression . IDENTIFIER

│ │ │ +

IfExpression →
    if Conditions BlockExpression
    ( else ( BlockExpression | IfExpression ) )?

│ │ │ +

Conditions →
      Expressionexcept StructExpression
    | LetChain

│ │ │ +

LetChain → LetChainCondition ( && LetChainCondition )*

│ │ │ +

LetChainCondition →
      Expressionexcept ExcludedConditions
    | OuterAttribute* let Pattern = Scrutineeexcept ExcludedConditions

│ │ │ +

ExcludedConditions →
      StructExpression
    | LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

UnderscoreExpression → _

│ │ │ +

TupleExpression → ( TupleElements? )

│ │ │ +

TupleElements → ( Expression , )+ Expression?

│ │ │ +

TupleIndexingExpression → Expression . TUPLE_INDEX

│ │ │ +

ArrayExpression → [ ArrayElements? ]

│ │ │ +

ArrayElements →
      Expression ( , Expression )* ,?
    | Expression ; Expression

│ │ │ +

IndexExpression → Expression [ Expression ]

│ │ │ +

StructExpression →
    PathInExpression { ( StructExprFields | StructBase )? }

│ │ │ +

StructExprFields →
    StructExprField ( , StructExprField )* ( , StructBase | ,? )

│ │ │ +

StructExprField →
    OuterAttribute*
    (
        IDENTIFIER
      | ( IDENTIFIER | TUPLE_INDEX ) : Expression
    )

│ │ │ +

StructBase → .. Expression

│ │ │ +

PathExpression →
      PathInExpression
    | QualifiedPathInExpression

│ │ │ +

RangeExpression →
      RangeExpr
    | RangeFromExpr
    | RangeToExpr
    | RangeFullExpr
    | RangeInclusiveExpr
    | RangeToInclusiveExpr

│ │ │ +

RangeExpr → Expression .. Expression

│ │ │ +

RangeFromExpr → Expression ..

│ │ │ +

RangeToExpr → .. Expression

│ │ │ +

RangeFullExpr → ..

│ │ │ +

RangeInclusiveExpr → Expression ..= Expression

│ │ │ +

RangeToInclusiveExpr → ..= Expression

│ │ │ +

MatchExpression →
    match Scrutinee {
        InnerAttribute*
        MatchArms?
    }

│ │ │ +

Scrutinee → Expressionexcept StructExpression

│ │ │ +

MatchArms →
    ( MatchArm => ( ExpressionWithoutBlock , | ExpressionWithBlock ,? ) )*
    MatchArm => Expression ,?

│ │ │ +

MatchArm → OuterAttribute* Pattern MatchArmGuard?

│ │ │ +

MatchArmGuard → if MatchConditions

│ │ │ +

MatchConditions →
     MatchGuardChain
   | Expression

│ │ │ +

MatchGuardChain → MatchGuardCondition ( && MatchGuardCondition )*

│ │ │ +

MatchGuardCondition →
     Expressionexcept ExcludedMatchConditions
   | OuterAttribute* let Pattern = MatchGuardScrutinee

│ │ │ +

MatchGuardScrutinee → Expressionexcept ExcludedMatchConditions

│ │ │ +

ExcludedMatchConditions →
      LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

LoopExpression →
    LoopLabel? (
        InfiniteLoopExpression
      | PredicateLoopExpression
      | IteratorLoopExpression
      | LabelBlockExpression
    )

│ │ │ +

InfiniteLoopExpression → loop BlockExpression

│ │ │ +

PredicateLoopExpression → while Conditions BlockExpression

│ │ │ +

IteratorLoopExpression →
    for Pattern in Expressionexcept StructExpression BlockExpression

│ │ │ +

LoopLabel → LIFETIME_OR_LABEL :

│ │ │ +

BreakExpression → break LIFETIME_OR_LABEL? Expression?

│ │ │ +

LabelBlockExpression → BlockExpression

│ │ │ +

ContinueExpression → continue LIFETIME_OR_LABEL?

│ │ │ +

CallExpression → Expression ( CallParams? )

│ │ │ +

CallParams → Expression ( , Expression )* ,?

│ │ │ +

OperatorExpression →
      BorrowExpression
    | DereferenceExpression
    | TryPropagationExpression
    | NegationExpression
    | ArithmeticOrLogicalExpression
    | ComparisonExpression
    | LazyBooleanExpression
    | TypeCastExpression
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

BorrowExpression →
      ( & | && ) Expression
    | ( & | && ) mut Expression
    | ( & | && ) raw const Expression
    | ( & | && ) raw mut Expression

│ │ │ +

DereferenceExpression → * Expression

│ │ │ +

TryPropagationExpression → Expression ?

│ │ │ +

NegationExpression →
      - Expression
    | ! Expression

│ │ │ +

ArithmeticOrLogicalExpression →
      Expression + Expression
    | Expression - Expression
    | Expression * Expression
    | Expression / Expression
    | Expression % Expression
    | Expression & Expression
    | Expression | Expression
    | Expression ^ Expression
    | Expression << Expression
    | Expression >> Expression

│ │ │ +

ComparisonExpression →
      Expression == Expression
    | Expression != Expression
    | Expression > Expression
    | Expression < Expression
    | Expression >= Expression
    | Expression <= Expression

│ │ │ +

LazyBooleanExpression →
      Expression || Expression
    | Expression && Expression

│ │ │ +

TypeCastExpression → Expression as TypeNoBounds

│ │ │ +

AssignmentExpression → Expression = Expression

│ │ │ +

CompoundAssignmentExpression →
      Expression += Expression
    | Expression -= Expression
    | Expression *= Expression
    | Expression /= Expression
    | Expression %= Expression
    | Expression &= Expression
    | Expression |= Expression
    | Expression ^= Expression
    | Expression <<= Expression
    | Expression >>= Expression

│ │ │ +

GroupedExpression → ( Expression )

│ │ │ +

BlockExpression →
    {
        InnerAttribute*
        Statements?
    }

│ │ │ +

Statements →
      Statement+
    | Statement+ ExpressionWithoutBlock
    | ExpressionWithoutBlock

│ │ │ +

AsyncBlockExpression → async move? BlockExpression

│ │ │ +

ConstBlockExpression → const BlockExpression

│ │ │ +

UnsafeBlockExpression → unsafe BlockExpression

│ │ │ +

Expression →
      ExpressionWithoutBlock
    | ExpressionWithBlock

│ │ │ +

ExpressionWithoutBlock →
    OuterAttribute* ExpressionWithoutBlockNoAttrs

│ │ │ +

ExpressionWithoutBlockNoAttrs →
      LiteralExpression
    | PathExpression
    | OperatorExpression
    | GroupedExpression
    | ArrayExpression
    | AwaitExpression
    | IndexExpression
    | TupleExpression
    | TupleIndexingExpression
    | StructExpression
    | CallExpression
    | MethodCallExpression
    | FieldExpression
    | ClosureExpression
    | AsyncBlockExpression
    | ContinueExpression
    | BreakExpression
    | RangeExpression
    | ReturnExpression
    | UnderscoreExpression
    | MacroInvocation

│ │ │ +

ExpressionWithBlock →
    OuterAttribute* ExpressionWithBlockNoAttrs

│ │ │ +

ExpressionWithBlockNoAttrs →
      BlockExpression
    | ConstBlockExpression
    | UnsafeBlockExpression
    | LoopExpression
    | IfExpression
    | MatchExpression

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DualDirSpecExpression │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +RAW_BYTE_STRING_LITERAL │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +C_STRING_LITERAL │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -=> │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +RAW_C_STRING_LITERAL │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +true │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +false │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DualDirSpec │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -inout │ │ │ + │ │ │ + │ │ │ +-> │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeNoBounds │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inlateout │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Expressions summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Expression →
      ExpressionWithoutBlock
    | ExpressionWithBlock

│ │ │ -

ExpressionWithoutBlock →
    OuterAttribute* ExpressionWithoutBlockNoAttrs

│ │ │ -

ExpressionWithoutBlockNoAttrs →
      LiteralExpression
    | PathExpression
    | OperatorExpression
    | GroupedExpression
    | ArrayExpression
    | AwaitExpression
    | IndexExpression
    | TupleExpression
    | TupleIndexingExpression
    | StructExpression
    | CallExpression
    | MethodCallExpression
    | FieldExpression
    | ClosureExpression
    | AsyncBlockExpression
    | ContinueExpression
    | BreakExpression
    | RangeExpression
    | ReturnExpression
    | UnderscoreExpression
    | MacroInvocation

│ │ │ -

ExpressionWithBlock →
    OuterAttribute* ExpressionWithBlockNoAttrs

│ │ │ -

ExpressionWithBlockNoAttrs →
      BlockExpression
    | ConstBlockExpression
    | UnsafeBlockExpression
    | LoopExpression
    | IfExpression
    | MatchExpression

│ │ │ -

UnderscoreExpression → _

│ │ │ -

TupleExpression → ( TupleElements? )

│ │ │ -

TupleElements → ( Expression , )+ Expression?

│ │ │ -

TupleIndexingExpression → Expression . TUPLE_INDEX

│ │ │ -

StructExpression →
    PathInExpression { ( StructExprFields | StructBase )? }

│ │ │ -

StructExprFields →
    StructExprField ( , StructExprField )* ( , StructBase | ,? )

│ │ │ -

StructExprField →
    OuterAttribute*
    (
        IDENTIFIER
      | ( IDENTIFIER | TUPLE_INDEX ) : Expression
    )

│ │ │ -

StructBase → .. Expression

│ │ │ -

ReturnExpression → return Expression?

│ │ │ -

RangeExpression →
      RangeExpr
    | RangeFromExpr
    | RangeToExpr
    | RangeFullExpr
    | RangeInclusiveExpr
    | RangeToInclusiveExpr

│ │ │ -

RangeExpr → Expression .. Expression

│ │ │ -

RangeFromExpr → Expression ..

│ │ │ -

RangeToExpr → .. Expression

│ │ │ -

RangeFullExpr → ..

│ │ │ -

RangeInclusiveExpr → Expression ..= Expression

│ │ │ -

RangeToInclusiveExpr → ..= Expression

│ │ │ -

PathExpression →
      PathInExpression
    | QualifiedPathInExpression

│ │ │ -

OperatorExpression →
      BorrowExpression
    | DereferenceExpression
    | TryPropagationExpression
    | NegationExpression
    | ArithmeticOrLogicalExpression
    | ComparisonExpression
    | LazyBooleanExpression
    | TypeCastExpression
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

BorrowExpression →
      ( & | && ) Expression
    | ( & | && ) mut Expression
    | ( & | && ) raw const Expression
    | ( & | && ) raw mut Expression

│ │ │ -

DereferenceExpression → * Expression

│ │ │ -

TryPropagationExpression → Expression ?

│ │ │ -

NegationExpression →
      - Expression
    | ! Expression

│ │ │ -

ArithmeticOrLogicalExpression →
      Expression + Expression
    | Expression - Expression
    | Expression * Expression
    | Expression / Expression
    | Expression % Expression
    | Expression & Expression
    | Expression | Expression
    | Expression ^ Expression
    | Expression << Expression
    | Expression >> Expression

│ │ │ -

ComparisonExpression →
      Expression == Expression
    | Expression != Expression
    | Expression > Expression
    | Expression < Expression
    | Expression >= Expression
    | Expression <= Expression

│ │ │ -

LazyBooleanExpression →
      Expression || Expression
    | Expression && Expression

│ │ │ -

TypeCastExpression → Expression as TypeNoBounds

│ │ │ -

AssignmentExpression → Expression = Expression

│ │ │ -

CompoundAssignmentExpression →
      Expression += Expression
    | Expression -= Expression
    | Expression *= Expression
    | Expression /= Expression
    | Expression %= Expression
    | Expression &= Expression
    | Expression |= Expression
    | Expression ^= Expression
    | Expression <<= Expression
    | Expression >>= Expression

│ │ │ -

MethodCallExpression → Expression . PathExprSegment ( CallParams? )

│ │ │ -

MatchExpression →
    match Scrutinee {
        InnerAttribute*
        MatchArms?
    }

│ │ │ -

Scrutinee → Expressionexcept StructExpression

│ │ │ -

MatchArms →
    ( MatchArm => ( ExpressionWithoutBlock , | ExpressionWithBlock ,? ) )*
    MatchArm => Expression ,?

│ │ │ -

MatchArm → OuterAttribute* Pattern MatchArmGuard?

│ │ │ -

MatchArmGuard → if MatchConditions

│ │ │ -

MatchConditions →
     MatchGuardChain
   | Expression

│ │ │ -

MatchGuardChain → MatchGuardCondition ( && MatchGuardCondition )*

│ │ │ -

MatchGuardCondition →
     Expressionexcept ExcludedMatchConditions
   | OuterAttribute* let Pattern = MatchGuardScrutinee

│ │ │ -

MatchGuardScrutinee → Expressionexcept ExcludedMatchConditions

│ │ │ -

ExcludedMatchConditions →
      LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

LoopExpression →
    LoopLabel? (
        InfiniteLoopExpression
      | PredicateLoopExpression
      | IteratorLoopExpression
      | LabelBlockExpression
    )

│ │ │ -

InfiniteLoopExpression → loop BlockExpression

│ │ │ -

PredicateLoopExpression → while Conditions BlockExpression

│ │ │ -

IteratorLoopExpression →
    for Pattern in Expressionexcept StructExpression BlockExpression

│ │ │ -

LoopLabel → LIFETIME_OR_LABEL :

│ │ │ -

BreakExpression → break LIFETIME_OR_LABEL? Expression?

│ │ │ -

LabelBlockExpression → BlockExpression

│ │ │ -

ContinueExpression → continue LIFETIME_OR_LABEL?

│ │ │ -

LiteralExpression →
      CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | INTEGER_LITERAL
    | FLOAT_LITERAL
    | true
    | false

│ │ │ -

IfExpression →
    if Conditions BlockExpression
    ( else ( BlockExpression | IfExpression ) )?

│ │ │ -

Conditions →
      Expressionexcept StructExpression
    | LetChain

│ │ │ -

LetChain → LetChainCondition ( && LetChainCondition )*

│ │ │ -

LetChainCondition →
      Expressionexcept ExcludedConditions
    | OuterAttribute* let Pattern = Scrutineeexcept ExcludedConditions

│ │ │ -

ExcludedConditions →
      StructExpression
    | LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

GroupedExpression → ( Expression )

│ │ │ -

FieldExpression → Expression . IDENTIFIER

│ │ │ -

ClosureExpression →
    async?
    move?
    ( || | | ClosureParameters? | )
    ( Expression | -> TypeNoBounds BlockExpression )

│ │ │ -

ClosureParameters → ClosureParam ( , ClosureParam )* ,?

│ │ │ -

ClosureParam → OuterAttribute* PatternNoTopAlt ( : Type )?

│ │ │ -

CallExpression → Expression ( CallParams? )

│ │ │ -

CallParams → Expression ( , Expression )* ,?

│ │ │ -

BlockExpression →
    {
        InnerAttribute*
        Statements?
    }

│ │ │ -

Statements →
      Statement+
    | Statement+ ExpressionWithoutBlock
    | ExpressionWithoutBlock

│ │ │ -

AsyncBlockExpression → async move? BlockExpression

│ │ │ -

ConstBlockExpression → const BlockExpression

│ │ │ -

UnsafeBlockExpression → unsafe BlockExpression

│ │ │ -

AwaitExpression → Expression . await

│ │ │ -

ArrayExpression → [ ArrayElements? ]

│ │ │ -

ArrayElements →
      Expression ( , Expression )* ,?
    | Expression ; Expression

│ │ │ -

IndexExpression → Expression [ Expression ]

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IfExpression │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ArrayExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AwaitExpression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +if │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IndexExpression │ │ │ + │ │ │ + │ │ │ +Conditions │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TupleExpression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleIndexingExpression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +else │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -StructExpression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CallExpression │ │ │ + │ │ │ + │ │ │ +IfExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MethodCallExpression │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FieldExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClosureExpression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ +LetChainCondition │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +let │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Scrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +ExcludedConditions │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +StructExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConstBlockExpression │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -UnsafeBlockExpression │ │ │ + │ │ │ + │ │ │ +RangeExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LoopExpression │ │ │ + │ │ │ + │ │ │ +RangeFromExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +RangeInclusiveExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchExpression │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -18893,14 +15829,187 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayElements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +] │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayElements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IndexExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +] │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ StructExpression │ │ │ │ │ │ @@ -19147,44 +16256,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │
│ │ │ │ │ │ @@ -19462,47 +16574,1041 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Scrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArms │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +=> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +=> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArmGuard │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArmGuard │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +if │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardChain │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&& │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +let │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardScrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardScrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeFromExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopLabel │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LabelBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +loop │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +while │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Conditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +for │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +in │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopLabel │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BreakExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +break │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LabelBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ContinueExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -20130,920 +18236,2530 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Expression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ComparisonExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +== │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +!= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +<= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +|| │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&& │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeCastExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ++= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +-= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +%= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +|= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +^= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +<<= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>>= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GroupedExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsyncBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +async │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +move │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +const │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UnsafeBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LiteralExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OperatorExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GroupedExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AwaitExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IndexExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleIndexingExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MethodCallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FieldExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ClosureExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsyncBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ContinueExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BreakExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ReturnExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UnderscoreExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocation │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Statements summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +Statement →
      ;
    | Item
    | LetStatement
    | ExpressionStatement
    | OuterAttribute* MacroInvocationSemi

│ │ │ +

LetStatement →
    OuterAttribute* let PatternNoTopAlt ( : Type )?
    (
          = Expression
        | = Expressionexcept LazyBooleanExpression or end with a } else BlockExpression
    )? ;

│ │ │ +

ExpressionStatement →
      ExpressionWithoutBlock ;
    | ExpressionWithBlock ;?

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ComparisonExpression │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -== │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +Item │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +LetStatement │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -!= │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ExpressionStatement │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LetStatement │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -< │ │ │ + │ │ │ + │ │ │ +let │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +PatternNoTopAlt │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ ->= │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Expression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except LazyBooleanExpression or end with a `}` │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Expression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -<= │ │ │ + │ │ │ + │ │ │ +else │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Configuration summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +ConfigurationPredicate →
      ConfigurationOption
    | ConfigurationAll
    | ConfigurationAny
    | ConfigurationNot
    | true
    | false

│ │ │ +

ConfigurationOption →
    IDENTIFIER ( = ( STRING_LITERAL | RAW_STRING_LITERAL ) )?

│ │ │ +

ConfigurationAll →
    all ( ConfigurationPredicateList? )

│ │ │ +

ConfigurationAny →
    any ( ConfigurationPredicateList? )

│ │ │ +

ConfigurationNot →
    not ( ConfigurationPredicate )

│ │ │ +

ConfigurationPredicateList →
    ConfigurationPredicate ( , ConfigurationPredicate )* ,?

│ │ │ +

CfgAttribute → cfg ( ConfigurationPredicate )

│ │ │ +

CfgAttrAttribute → cfg_attr ( ConfigurationPredicate , CfgAttrs? )

│ │ │ +

CfgAttrs → Attr ( , Attr )* ,?

│ │ │ +

CfgSelect → CfgSelectArms?

│ │ │ +

CfgSelectArms →
    CfgSelectConfigurationPredicate =>
    (
        { ^ TokenTree } ,? CfgSelectArms?
      | ExpressionWithBlockNoAttrs ,? CfgSelectArms?
      | ExpressionWithoutBlockNoAttrs ( , CfgSelectArms? )?
    )

│ │ │ +

CfgSelectConfigurationPredicate →
    ConfigurationPredicate | _

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ +ConfigurationAll │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +all │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -+= │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicateList │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ --= │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicateList │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicate │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -|= │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicate │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -^= │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -<<= │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArms │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArm │ │ │ + │ │ │ + │ │ │ +CfgSelectConfigurationPredicate │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ => │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlockNoAttrs │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +

Assembly summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +AsmArgs → AsmAttrFormatString ( , AsmAttrFormatString )* ( , AsmAttrOperand )* ,?

│ │ │ +

FormatString → STRING_LITERAL | RAW_STRING_LITERAL | MacroInvocation

│ │ │ +

AsmAttrFormatString → ( OuterAttribute )* FormatString

│ │ │ +

AsmOperand →
      ClobberAbi
    | AsmOptions
    | RegOperand

│ │ │ +

AsmAttrOperand → ( OuterAttribute )* AsmOperand

│ │ │ +

ClobberAbi → clobber_abi ( Abi ( , Abi )* ,? )

│ │ │ +

AsmOptions →
    options ( ( AsmOption ( , AsmOption )* ,? )? )

│ │ │ +

AsmOption →
      pure
    | nomem
    | readonly
    | preserves_flags
    | noreturn
    | nostack
    | att_syntax
    | raw

│ │ │ +

RegOperand → ( ParamName = )?
    (
          DirSpec ( RegSpec ) Expression
        | DualDirSpec ( RegSpec ) DualDirSpecExpression
        | sym PathExpression
        | const Expression
        | label { Statements? }
    )

│ │ │ +

ParamName → IDENTIFIER_OR_KEYWORD | RAW_IDENTIFIER

│ │ │ +

DualDirSpecExpression →
      Expression
    | Expression => Expression

│ │ │ +

RegSpec → RegisterClass | ExplicitRegister

│ │ │ +

RegisterClass → IDENTIFIER_OR_KEYWORD

│ │ │ +

ExplicitRegister → STRING_LITERAL

│ │ │ +

DirSpec →
      in
    | out
    | lateout

│ │ │ +

DualDirSpec →
      inout
    | inlateout

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmArgs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrOperand │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -21054,2038 +20770,2322 @@ │ │ │ │ │ │ │ │ │ OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArmGuard │ │ │ + │ │ │ + │ │ │ +FormatString │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchGuardCondition │ │ │ + │ │ │ + │ │ │ +AsmOptions │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedMatchConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +options │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmOption │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +AsmOption │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -let │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MatchGuardScrutinee │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExcludedMatchConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +readonly │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +preserves_flags │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeFromExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +noreturn │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +nostack │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +att_syntax │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +raw │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -LoopExpression │ │ │ + │ │ │ + │ │ │ +RegOperand │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ -LoopLabel │ │ │ +ParamName │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ +DirSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ +RegSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LabelBlockExpression │ │ │ + │ │ │ + │ │ │ +DualDirSpec │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RegSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +DualDirSpecExpression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +sym │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathExpression │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ +

Miscellaneous summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +TypeParamBounds → TypeParamBound ( + TypeParamBound )* +?

│ │ │ +

TypeParamBound → Lifetime | TraitBound | UseBound

│ │ │ +

TraitBound →
      ( ? | ForLifetimes )? TypePath
    | ( ( ? | ForLifetimes )? TypePath )

│ │ │ +

LifetimeBounds → ( Lifetime + )* Lifetime?

│ │ │ +

Lifetime →
      LIFETIME_OR_LABEL
    | 'static
    | '_

│ │ │ +

UseBound → use UseBoundGenericArgs

│ │ │ +

UseBoundGenericArgs →
      < >
    | < ( UseBoundGenericArg , )* UseBoundGenericArg ,? >

│ │ │ +

UseBoundGenericArg →
      Lifetime
    | IDENTIFIER
    | Self

│ │ │ +

ForLifetimes → for GenericParams

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +TraitBound │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -if │ │ │ + │ │ │ + │ │ │ +? │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Conditions │ │ │ + │ │ │ + │ │ │ +ForLifetimes │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -else │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +? │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +ForLifetimes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -LetChainCondition │ │ │ + │ │ │ + │ │ │ +UseBound │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -let │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ +use │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedConditions │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Scrutinee │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArgs │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExcludedConditions │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArgs │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LazyBooleanExpression │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RangeExpr │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArg │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeFromExpr │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArg │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssignmentExpression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Paths summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +SimplePath →
    ::? SimplePathSegment ( :: SimplePathSegment )*

│ │ │ +

SimplePathSegment →
    IDENTIFIER | super | self | crate | $crate

│ │ │ +

PathInExpression →
    ::? PathExprSegment ( :: PathExprSegment )*

│ │ │ +

PathExprSegment →
    PathIdentSegment ( :: GenericArgs )?

│ │ │ +

PathIdentSegment →
    IDENTIFIER | super | self | Self | crate | $crate

│ │ │ +

GenericArgs →
      < >
    | < ( GenericArg , )* GenericArg ,? >

│ │ │ +

GenericArg →
    Lifetime | Type | GenericArgsConst | GenericArgsBinding | GenericArgsBounds

│ │ │ +

GenericArgsConst →
      BlockExpression
    | LiteralExpression
    | - LiteralExpression
    | SimplePathSegment

│ │ │ +

GenericArgsBinding →
    IDENTIFIER GenericArgs? = Type

│ │ │ +

GenericArgsBounds →
    IDENTIFIER GenericArgs? : TypeParamBounds

│ │ │ +

QualifiedPathInExpression → QualifiedPathType ( :: PathExprSegment )+

│ │ │ +

QualifiedPathType → < Type ( as TypePath )? >

│ │ │ +

QualifiedPathInType → QualifiedPathType ( :: TypePathSegment )+

│ │ │ +

TypePath → ::? TypePathSegment ( :: TypePathSegment )*

│ │ │ +

TypePathSegment → PathIdentSegment ( ::? ( GenericArgs | TypePathFn ) )?

│ │ │ +

TypePathFn → ( TypePathFnInputs? ) ( -> TypeNoBounds )?

│ │ │ +

TypePathFnInputs → Type ( , Type )* ,?

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ClosureExpression │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -async │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePathSegment │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -move │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -|| │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -| │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ClosureParameters │ │ │ + │ │ │ + │ │ │ +SimplePathSegment │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -| │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -CallParams │ │ │ + │ │ │ + │ │ │ +GenericArgs │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArg │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArg │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypePathSegment │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathIdentSegment │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArgs │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypePathFn │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ ├── html2text {} │ │ │ │ @@ -11,142 +11,267 @@ │ │ │ │ * Navy │ │ │ │ * Ayu │ │ │ │ ************ TThhee RRuusstt RReeffeerreennccee ************ │ │ │ │ [Unknown INPUT type] │ │ │ │ ************ _GG_rr_aa_mm_mm_aa_rr_ _ss_uu_mm_mm_aa_rr_yy ************ │ │ │ │ The following is a summary of the grammar production rules. For details on the │ │ │ │ syntax of this grammar, see _nn_oo_tt_aa_tt_ii_oo_nn_.._gg_rr_aa_mm_mm_aa_rr_.._ss_yy_nn_tt_aa_xx. │ │ │ │ -********** _AA_tt_tt_rr_ii_bb_uu_tt_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_P_r_o_c_M_a_c_r_o_D_e_r_i_v_e_A_t_t_r_i_b_u_t_e → │ │ │ │ -    proc_macro_derive ( _D_e_r_i_v_e_M_a_c_r_o_N_a_m_e ( , _D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s )? ,? ) │ │ │ │ -_D_e_r_i_v_e_M_a_c_r_o_N_a_m_e → _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s → │ │ │ │ -    attributes ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ -_I_n_n_e_r_A_t_t_r_i_b_u_t_e → # ! [ _A_t_t_r ] │ │ │ │ -_O_u_t_e_r_A_t_t_r_i_b_u_t_e → # [ _A_t_t_r ] │ │ │ │ -_A_t_t_r → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? │ │ │ │ -    | unsafe ( _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? ) │ │ │ │ -_A_t_t_r_I_n_p_u_t → │ │ │ │ -      _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -    | = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_a_I_t_e_m → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ( _M_e_t_a_S_e_q? ) │ │ │ │ -_M_e_t_a_S_e_q → │ │ │ │ -    _M_e_t_a_I_t_e_m_I_n_n_e_r ( , _M_e_t_a_I_t_e_m_I_n_n_e_r )* ,? │ │ │ │ -_M_e_t_a_I_t_e_m_I_n_n_e_r → │ │ │ │ -      _M_e_t_a_I_t_e_m │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_a_W_o_r_d → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) │ │ │ │ -_M_e_t_a_L_i_s_t_P_a_t_h_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _S_i_m_p_l_e_P_a_t_h ( , _S_i_m_p_l_e_P_a_t_h )* ,? )? ) │ │ │ │ -_M_e_t_a_L_i_s_t_I_d_e_n_t_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ -_M_e_t_a_L_i_s_t_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r ( , _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r )* ,? )? ) │ │ │ │ -_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_A_t_t_r_i_b_u_t_e → collapse_debuginfo ( _C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n ) │ │ │ │ -_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n → │ │ │ │ -      yes │ │ │ │ -    | no │ │ │ │ -    | external │ │ │ │ -_I_n_l_i_n_e_A_t_t_r_i_b_u_t_e → │ │ │ │ -      inline ( always ) │ │ │ │ -    | inline ( never ) │ │ │ │ -    | inline │ │ │ │ -Show Railroad │ │ │ │ -ProcMacroDeriveAttribute proc_macro_derive ( DeriveMacroName , │ │ │ │ -DeriveMacroAttributes , ) │ │ │ │ -DeriveMacroName IDENTIFIER │ │ │ │ -DeriveMacroAttributes attributes ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ -InnerAttribute # ! [ Attr ] │ │ │ │ -OuterAttribute # [ Attr ] │ │ │ │ -Attr SimplePath AttrInput unsafe ( SimplePath AttrInput ) │ │ │ │ -AttrInput DelimTokenTree = Expression │ │ │ │ -MetaItem SimplePath SimplePath = Expression SimplePath ( MetaSeq ) │ │ │ │ -MetaSeq MetaItemInner , MetaItemInner , │ │ │ │ -MetaItemInner MetaItem Expression │ │ │ │ -MetaWord IDENTIFIER │ │ │ │ -MetaNameValueStr IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -MetaListPaths IDENTIFIER ( SimplePath , SimplePath , ) │ │ │ │ -MetaListIdents IDENTIFIER ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ -MetaListNameValueStr IDENTIFIER ( MetaNameValueStr , MetaNameValueStr , ) │ │ │ │ -CollapseDebuginfoAttribute collapse_debuginfo ( CollapseDebuginfoOption ) │ │ │ │ -CollapseDebuginfoOption yes no external │ │ │ │ -InlineAttribute inline ( always ) inline ( never ) inline │ │ │ │ -********** _CC_oo_nn_ff_ii_gg_uu_rr_aa_tt_ii_oo_nn_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +********** _II_tt_ee_mm_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ -      _C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t │ │ │ │ -    | true │ │ │ │ -    | false │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) )? │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l → │ │ │ │ -    all ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y → │ │ │ │ -    any ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t → │ │ │ │ -    not ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t → │ │ │ │ -    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ( , _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e )* ,? │ │ │ │ -_C_f_g_A_t_t_r_i_b_u_t_e → cfg ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ -_C_f_g_A_t_t_r_A_t_t_r_i_b_u_t_e → cfg_attr ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e , _C_f_g_A_t_t_r_s? ) │ │ │ │ -_C_f_g_A_t_t_r_s → _A_t_t_r ( , _A_t_t_r )* ,? │ │ │ │ -_C_f_g_S_e_l_e_c_t → _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -_C_f_g_S_e_l_e_c_t_A_r_m_s → │ │ │ │ -    _C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e => │ │ │ │ +_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _V_i_s_I_t_e_m | _M_a_c_r_o_I_t_e_m ) │ │ │ │ +_V_i_s_I_t_e_m → │ │ │ │ +    _V_i_s_i_b_i_l_i_t_y? │ │ │ │     ( │ │ │ │ -        { ^ _T_o_k_e_n_T_r_e_e } ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s ( , _C_f_g_S_e_l_e_c_t_A_r_m_s? )? │ │ │ │ +        _M_o_d_u_l_e │ │ │ │ +      | _E_x_t_e_r_n_C_r_a_t_e │ │ │ │ +      | _U_s_e_D_e_c_l_a_r_a_t_i_o_n │ │ │ │ +      | _F_u_n_c_t_i_o_n │ │ │ │ +      | _T_y_p_e_A_l_i_a_s │ │ │ │ +      | _S_t_r_u_c_t │ │ │ │ +      | _E_n_u_m_e_r_a_t_i_o_n │ │ │ │ +      | _U_n_i_o_n │ │ │ │ +      | _C_o_n_s_t_a_n_t_I_t_e_m │ │ │ │ +      | _S_t_a_t_i_c_I_t_e_m │ │ │ │ +      | _T_r_a_i_t │ │ │ │ +      | _I_m_p_l_e_m_e_n_t_a_t_i_o_n │ │ │ │ +      | _E_x_t_e_r_n_B_l_o_c_k │ │ │ │     ) │ │ │ │ -_C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ -    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e | _ │ │ │ │ +_M_a_c_r_o_I_t_e_m → │ │ │ │ +      _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +    | _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n │ │ │ │ +_C_r_a_t_e → │ │ │ │ +    _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +    _I_t_e_m* │ │ │ │ +_V_i_s_i_b_i_l_i_t_y → │ │ │ │ +      pub │ │ │ │ +    | pub ( crate ) │ │ │ │ +    | pub ( self ) │ │ │ │ +    | pub ( super ) │ │ │ │ +    | pub ( in _S_i_m_p_l_e_P_a_t_h ) │ │ │ │ +_T_r_a_i_t → │ │ │ │ +    unsafe? trait _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +    { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_T_y_p_e_A_l_i_a_s → │ │ │ │ +    type _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s )? │ │ │ │ +        _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +        ( = _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? )? ; │ │ │ │ +_C_o_n_s_t_a_n_t_I_t_e_m → │ │ │ │ +    const ( _I_D_E_N_T_I_F_I_E_R | _ ) : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ +_S_t_r_u_c_t → │ │ │ │ +      _S_t_r_u_c_t_S_t_r_u_c_t │ │ │ │ +    | _T_u_p_l_e_S_t_r_u_c_t │ │ │ │ +_S_t_r_u_c_t_S_t_r_u_c_t → │ │ │ │ +    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? ( { _S_t_r_u_c_t_F_i_e_l_d_s? } | ; ) │ │ │ │ +_T_u_p_l_e_S_t_r_u_c_t → │ │ │ │ +    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( _T_u_p_l_e_F_i_e_l_d_s? ) _W_h_e_r_e_C_l_a_u_s_e? ; │ │ │ │ +_S_t_r_u_c_t_F_i_e_l_d_s → _S_t_r_u_c_t_F_i_e_l_d ( , _S_t_r_u_c_t_F_i_e_l_d )* ,? │ │ │ │ +_S_t_r_u_c_t_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ +_T_u_p_l_e_F_i_e_l_d_s → _T_u_p_l_e_F_i_e_l_d ( , _T_u_p_l_e_F_i_e_l_d )* ,? │ │ │ │ +_T_u_p_l_e_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _T_y_p_e │ │ │ │ +_I_m_p_l_e_m_e_n_t_a_t_i_o_n → _I_n_h_e_r_e_n_t_I_m_p_l | _T_r_a_i_t_I_m_p_l │ │ │ │ +_I_n_h_e_r_e_n_t_I_m_p_l → │ │ │ │ +    impl _G_e_n_e_r_i_c_P_a_r_a_m_s? _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_T_r_a_i_t_I_m_p_l → │ │ │ │ +    unsafe? impl _G_e_n_e_r_i_c_P_a_r_a_m_s? !? _T_y_p_e_P_a_t_h for _T_y_p_e │ │ │ │ +    _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +    { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_F_u_n_c_t_i_o_n → │ │ │ │ +    _F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s fn _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? │ │ │ │ +        ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s? ) │ │ │ │ +        _F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +        ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | ; ) │ │ │ │ +_F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s → const? async? _I_t_e_m_S_a_f_e_t_y? ( extern _A_b_i? )? │ │ │ │ +_I_t_e_m_S_a_f_e_t_y → safe | unsafe │ │ │ │ +_A_b_i → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ +      _S_e_l_f_P_a_r_a_m ,? │ │ │ │ +    | ( _S_e_l_f_P_a_r_a_m , )? _F_u_n_c_t_i_o_n_P_a_r_a_m ( , _F_u_n_c_t_i_o_n_P_a_r_a_m )* ,? │ │ │ │ +_S_e_l_f_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _S_h_o_r_t_h_a_n_d_S_e_l_f | _T_y_p_e_d_S_e_l_f ) │ │ │ │ +_S_h_o_r_t_h_a_n_d_S_e_l_f → ( & | & _L_i_f_e_t_i_m_e )? mut? self │ │ │ │ +_T_y_p_e_d_S_e_l_f → mut? self : _T_y_p_e │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n | ... | _T_y_p_e ) │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n → _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t : ( _T_y_p_e | ... ) │ │ │ │ +_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e │ │ │ │ +_G_e_n_e_r_i_c_P_a_r_a_m_s → < ( _G_e_n_e_r_i_c_P_a_r_a_m ( , _G_e_n_e_r_i_c_P_a_r_a_m )* ,? )? > │ │ │ │ +_G_e_n_e_r_i_c_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _L_i_f_e_t_i_m_e_P_a_r_a_m | _T_y_p_e_P_a_r_a_m | _C_o_n_s_t_P_a_r_a_m ) │ │ │ │ +_L_i_f_e_t_i_m_e_P_a_r_a_m → _L_i_f_e_t_i_m_e ( : _L_i_f_e_t_i_m_e_B_o_u_n_d_s )? │ │ │ │ +_T_y_p_e_P_a_r_a_m → _I_D_E_N_T_I_F_I_E_R ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? ( = _T_y_p_e )? │ │ │ │ +_C_o_n_s_t_P_a_r_a_m → │ │ │ │ +    const _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ +    ( = ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_D_E_N_T_I_F_I_E_R | -? _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e → where ( _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m , )* _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → │ │ │ │ +      _L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ +    | _T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ +_L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _L_i_f_e_t_i_m_e : _L_i_f_e_t_i_m_e_B_o_u_n_d_s │ │ │ │ +_T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _F_o_r_L_i_f_e_t_i_m_e_s? _T_y_p_e : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? │ │ │ │ +_S_t_a_t_i_c_I_t_e_m → │ │ │ │ +    _I_t_e_m_S_a_f_e_t_y? static mut? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ +_E_x_t_e_r_n_C_r_a_t_e → extern crate _C_r_a_t_e_R_e_f _A_s_C_l_a_u_s_e? ; │ │ │ │ +_C_r_a_t_e_R_e_f → _I_D_E_N_T_I_F_I_E_R | self │ │ │ │ +_A_s_C_l_a_u_s_e → as ( _I_D_E_N_T_I_F_I_E_R | _ ) │ │ │ │ +_A_s_s_o_c_i_a_t_e_d_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ +        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +      | ( _V_i_s_i_b_i_l_i_t_y? ( _T_y_p_e_A_l_i_a_s | _C_o_n_s_t_a_n_t_I_t_e_m | _F_u_n_c_t_i_o_n ) ) │ │ │ │ +    ) │ │ │ │ +_E_x_t_e_r_n_B_l_o_c_k → │ │ │ │ +    unsafe? extern _A_b_i? { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _E_x_t_e_r_n_a_l_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_E_x_t_e_r_n_a_l_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ +        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +      | _V_i_s_i_b_i_l_i_t_y? _S_t_a_t_i_c_I_t_e_m │ │ │ │ +      | _V_i_s_i_b_i_l_i_t_y? _F_u_n_c_t_i_o_n │ │ │ │ +    ) │ │ │ │ +_U_n_i_o_n → │ │ │ │ +    union _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ +_U_s_e_D_e_c_l_a_r_a_t_i_o_n → use _U_s_e_T_r_e_e ; │ │ │ │ +_U_s_e_T_r_e_e → │ │ │ │ +      ( _S_i_m_p_l_e_P_a_t_h? :: )? * │ │ │ │ +    | ( _S_i_m_p_l_e_P_a_t_h? :: )? { ( _U_s_e_T_r_e_e ( , _U_s_e_T_r_e_e )* ,? )? } │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ( as ( _I_D_E_N_T_I_F_I_E_R | _ ) )? │ │ │ │ +_M_o_d_u_l_e → │ │ │ │ +      unsafe? mod _I_D_E_N_T_I_F_I_E_R ; │ │ │ │ +    | unsafe? mod _I_D_E_N_T_I_F_I_E_R { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _I_t_e_m* │ │ │ │ +      } │ │ │ │ +_E_n_u_m_e_r_a_t_i_o_n → │ │ │ │ +    enum _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _E_n_u_m_V_a_r_i_a_n_t_s? } │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_s → _E_n_u_m_V_a_r_i_a_n_t ( , _E_n_u_m_V_a_r_i_a_n_t )* ,? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( _E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e | _E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t )? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e → ( _T_u_p_l_e_F_i_e_l_d_s? ) │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t → { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t → = _E_x_p_r_e_s_s_i_o_n │ │ │ │ Show Railroad │ │ │ │ -ConfigurationPredicate ConfigurationOption ConfigurationAll ConfigurationAny │ │ │ │ -ConfigurationNot true false │ │ │ │ -ConfigurationOption IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -ConfigurationAll all ( ConfigurationPredicateList ) │ │ │ │ -ConfigurationAny any ( ConfigurationPredicateList ) │ │ │ │ -ConfigurationNot not ( ConfigurationPredicate ) │ │ │ │ -ConfigurationPredicateList ConfigurationPredicate , ConfigurationPredicate , │ │ │ │ -CfgAttribute cfg ( ConfigurationPredicate ) │ │ │ │ -CfgAttrAttribute cfg_attr ( ConfigurationPredicate , CfgAttrs ) │ │ │ │ -CfgAttrs Attr , Attr , │ │ │ │ -CfgSelect CfgSelectArms │ │ │ │ -CfgSelectArms CfgSelectConfigurationPredicate => { no backtracking TokenTree } │ │ │ │ -, CfgSelectArms ExpressionWithBlockNoAttrs , CfgSelectArms │ │ │ │ -ExpressionWithoutBlockNoAttrs , CfgSelectArms │ │ │ │ -CfgSelectConfigurationPredicate ConfigurationPredicate _ │ │ │ │ +Item OuterAttribute VisItem MacroItem │ │ │ │ +VisItem Visibility Module ExternCrate UseDeclaration Function TypeAlias Struct │ │ │ │ +Enumeration Union ConstantItem StaticItem Trait Implementation ExternBlock │ │ │ │ +MacroItem MacroInvocationSemi MacroRulesDefinition │ │ │ │ +Crate InnerAttribute Item │ │ │ │ +Visibility pub pub ( crate ) pub ( self ) pub ( super ) pub ( in SimplePath ) │ │ │ │ +Trait unsafe trait IDENTIFIER GenericParams : TypeParamBounds WhereClause │ │ │ │ +{ InnerAttribute AssociatedItem } │ │ │ │ +TypeAlias type IDENTIFIER GenericParams : TypeParamBounds WhereClause = Type │ │ │ │ +WhereClause ; │ │ │ │ +ConstantItem const IDENTIFIER _ : Type = Expression ; │ │ │ │ +Struct StructStruct TupleStruct │ │ │ │ +StructStruct struct IDENTIFIER GenericParams WhereClause { StructFields } ; │ │ │ │ +TupleStruct struct IDENTIFIER GenericParams ( TupleFields ) WhereClause ; │ │ │ │ +StructFields StructField , StructField , │ │ │ │ +StructField OuterAttribute Visibility IDENTIFIER : Type │ │ │ │ +TupleFields TupleField , TupleField , │ │ │ │ +TupleField OuterAttribute Visibility Type │ │ │ │ +Implementation InherentImpl TraitImpl │ │ │ │ +InherentImpl impl GenericParams Type WhereClause { InnerAttribute │ │ │ │ +AssociatedItem } │ │ │ │ +TraitImpl unsafe impl GenericParams ! TypePath for Type WhereClause │ │ │ │ +{ InnerAttribute AssociatedItem } │ │ │ │ +Function FunctionQualifiers fn IDENTIFIER GenericParams ( FunctionParameters ) │ │ │ │ +FunctionReturnType WhereClause BlockExpression ; │ │ │ │ +FunctionQualifiers const async ItemSafety extern Abi │ │ │ │ +ItemSafety safe unsafe │ │ │ │ +Abi STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +FunctionParameters SelfParam , SelfParam , FunctionParam , FunctionParam , │ │ │ │ +SelfParam OuterAttribute ShorthandSelf TypedSelf │ │ │ │ +ShorthandSelf & & Lifetime mut self │ │ │ │ +TypedSelf mut self : Type │ │ │ │ +FunctionParam OuterAttribute FunctionParamPattern ... Type │ │ │ │ +FunctionParamPattern PatternNoTopAlt : Type ... │ │ │ │ +FunctionReturnType -> Type │ │ │ │ +GenericParams < GenericParam , GenericParam , > │ │ │ │ +GenericParam OuterAttribute LifetimeParam TypeParam ConstParam │ │ │ │ +LifetimeParam Lifetime : LifetimeBounds │ │ │ │ +TypeParam IDENTIFIER : TypeParamBounds = Type │ │ │ │ +ConstParam const IDENTIFIER : Type = BlockExpression IDENTIFIER - │ │ │ │ +LiteralExpression │ │ │ │ +WhereClause where WhereClauseItem , WhereClauseItem │ │ │ │ +WhereClauseItem LifetimeWhereClauseItem TypeBoundWhereClauseItem │ │ │ │ +LifetimeWhereClauseItem Lifetime : LifetimeBounds │ │ │ │ +TypeBoundWhereClauseItem ForLifetimes Type : TypeParamBounds │ │ │ │ +StaticItem ItemSafety static mut IDENTIFIER : Type = Expression ; │ │ │ │ +ExternCrate extern crate CrateRef AsClause ; │ │ │ │ +CrateRef IDENTIFIER self │ │ │ │ +AsClause as IDENTIFIER _ │ │ │ │ +AssociatedItem OuterAttribute MacroInvocationSemi Visibility TypeAlias │ │ │ │ +ConstantItem Function │ │ │ │ +ExternBlock unsafe extern Abi { InnerAttribute ExternalItem } │ │ │ │ +ExternalItem OuterAttribute MacroInvocationSemi Visibility StaticItem │ │ │ │ +Visibility Function │ │ │ │ +Union union IDENTIFIER GenericParams WhereClause { StructFields } │ │ │ │ +UseDeclaration use UseTree ; │ │ │ │ +UseTree SimplePath :: * SimplePath :: { UseTree , UseTree , } SimplePath as │ │ │ │ +IDENTIFIER _ │ │ │ │ +Module unsafe mod IDENTIFIER ; unsafe mod IDENTIFIER { InnerAttribute Item } │ │ │ │ +Enumeration enum IDENTIFIER GenericParams WhereClause { EnumVariants } │ │ │ │ +EnumVariants EnumVariant , EnumVariant , │ │ │ │ +EnumVariant OuterAttribute Visibility IDENTIFIER EnumVariantTuple │ │ │ │ +EnumVariantStruct EnumVariantDiscriminant │ │ │ │ +EnumVariantTuple ( TupleFields ) │ │ │ │ +EnumVariantStruct { StructFields } │ │ │ │ +EnumVariantDiscriminant = Expression │ │ │ │ ********** _LL_ee_xx_ee_rr_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ LLeexxeerr │ │ │ │ -_W_H_I_T_E_S_P_A_C_E → │ │ │ │ -      U+0009 // Horizontal tab, '\t' │ │ │ │ -    | U+000A // Line feed, '\n' │ │ │ │ -    | U+000B // Vertical tab │ │ │ │ -    | U+000C // Form feed │ │ │ │ -    | U+000D // Carriage return, '\r' │ │ │ │ -    | U+0020 // Space, ' ' │ │ │ │ -    | U+0085 // Next line │ │ │ │ -    | U+200E // Left-to-right mark │ │ │ │ -    | U+200F // Right-to-left mark │ │ │ │ -    | U+2028 // Line separator │ │ │ │ -    | U+2029 // Paragraph separator │ │ │ │ -_T_A_B → U+0009 // Horizontal tab, '\t' │ │ │ │ -_L_F → U+000A // Line feed, '\n' │ │ │ │ -_C_R → U+000D // Carriage return, '\r' │ │ │ │ +_C_H_A_R → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value │ │ │ │ +_A_S_C_I_I → [U+0000-U+007F] │ │ │ │ +_N_U_L → U+0000 │ │ │ │ +_E_O_F → !_C_H_A_R // End of file or input │ │ │ │ +_S_H_E_B_A_N_G → │ │ │ │ +    #! !( ( _W_H_I_T_E_S_P_A_C_E | _L_I_N_E___C_O_M_M_E_N_T | _B_L_O_C_K___C_O_M_M_E_N_T )* [ ) │ │ │ │ +    ~_L_F* ( _L_F | _E_O_F ) │ │ │ │ +_C_O_M_M_E_N_T → │ │ │ │ +      _L_I_N_E___C_O_M_M_E_N_T │ │ │ │ +    | _I_N_N_E_R___L_I_N_E___D_O_C │ │ │ │ +    | _O_U_T_E_R___L_I_N_E___D_O_C │ │ │ │ +    | _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ +_L_I_N_E___C_O_M_M_E_N_T → │ │ │ │ +      // ( ~[/ ! _L_F] | // ) ~_L_F* │ │ │ │ +    | // _E_O_F │ │ │ │ +    | //immediately followed by LF │ │ │ │ +_B_L_O_C_K___C_O_M_M_E_N_T → │ │ │ │ +    /* ^ │ │ │ │ +      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | ( !*/ _C_H_A_R ) )* │ │ │ │ +    */ │ │ │ │ +_I_N_N_E_R___L_I_N_E___D_O_C → │ │ │ │ +    //! ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ +_L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T → ( !_C_R ~_L_F )* │ │ │ │ +_I_N_N_E_R___B_L_O_C_K___D_O_C → │ │ │ │ +    /*! ^ ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* */ │ │ │ │ +_O_U_T_E_R___L_I_N_E___D_O_C → │ │ │ │ +    /// ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ +_O_U_T_E_R___B_L_O_C_K___D_O_C → │ │ │ │ +    /** ![* /] │ │ │ │ +      ^ │ │ │ │ +      ( ~* | _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C ) │ │ │ │ +      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* │ │ │ │ +    */ │ │ │ │ +_B_L_O_C_K___C_H_A_R → ( !( */ | _C_R ) _C_H_A_R ) │ │ │ │ +_B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C → │ │ │ │ +      _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ _T_o_k_e_n → │ │ │ │       _R_E_S_E_R_V_E_D___T_O_K_E_N │ │ │ │     | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │     | _C_H_A_R___L_I_T_E_R_A_L │ │ │ │     | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │     | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │     | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ @@ -310,69 +435,59 @@ │ │ │ │     _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept b ' │ │ │ │ _R_E_S_E_R_V_E_D___T_O_K_E_N___P_O_U_N_D → │ │ │ │     _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept r or br or cr # │ │ │ │ _R_E_S_E_R_V_E_D___T_O_K_E_N___L_I_F_E_T_I_M_E → │ │ │ │     ' _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept r # │ │ │ │ _R_E_S_E_R_V_E_D___G_U_A_R_D_E_D___S_T_R_I_N_G___L_I_T_E_R_A_L → #+ _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ _R_E_S_E_R_V_E_D___P_O_U_N_D_S → #2.. │ │ │ │ -_S_H_E_B_A_N_G → │ │ │ │ -    #! !( ( _W_H_I_T_E_S_P_A_C_E | _L_I_N_E___C_O_M_M_E_N_T | _B_L_O_C_K___C_O_M_M_E_N_T )* [ ) │ │ │ │ -    ~_L_F* ( _L_F | _E_O_F ) │ │ │ │ -_C_H_A_R → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value │ │ │ │ -_A_S_C_I_I → [U+0000-U+007F] │ │ │ │ -_N_U_L → U+0000 │ │ │ │ -_E_O_F → !_C_H_A_R // End of file or input │ │ │ │ _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D → ( _X_I_D___S_t_a_r_t | _ ) _X_I_D___C_o_n_t_i_n_u_e* │ │ │ │ _X_I_D___S_t_a_r_t → │ │ │ │ _X_I_D___C_o_n_t_i_n_u_e → │ │ │ │ _R_A_W___I_D_E_N_T_I_F_I_E_R → r# _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ _N_O_N___K_E_Y_W_O_R_D___I_D_E_N_T_I_F_I_E_R → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept a _s_t_r_i_c_t or _r_e_s_e_r_v_e_d │ │ │ │ keyword │ │ │ │ _I_D_E_N_T_I_F_I_E_R → _N_O_N___K_E_Y_W_O_R_D___I_D_E_N_T_I_F_I_E_R | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ _R_E_S_E_R_V_E_D___R_A_W___I_D_E_N_T_I_F_I_E_R → │ │ │ │     r# ( _ | crate | self | Self | super ) !_X_I_D___C_o_n_t_i_n_u_e │ │ │ │ -_C_O_M_M_E_N_T → │ │ │ │ -      _L_I_N_E___C_O_M_M_E_N_T │ │ │ │ -    | _I_N_N_E_R___L_I_N_E___D_O_C │ │ │ │ -    | _O_U_T_E_R___L_I_N_E___D_O_C │ │ │ │ -    | _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ -_L_I_N_E___C_O_M_M_E_N_T → │ │ │ │ -      // ( ~[/ ! _L_F] | // ) ~_L_F* │ │ │ │ -    | // _E_O_F │ │ │ │ -    | //immediately followed by LF │ │ │ │ -_B_L_O_C_K___C_O_M_M_E_N_T → │ │ │ │ -    /* ^ │ │ │ │ -      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | ( !*/ _C_H_A_R ) )* │ │ │ │ -    */ │ │ │ │ -_I_N_N_E_R___L_I_N_E___D_O_C → │ │ │ │ -    //! ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ -_L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T → ( !_C_R ~_L_F )* │ │ │ │ -_I_N_N_E_R___B_L_O_C_K___D_O_C → │ │ │ │ -    /*! ^ ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* */ │ │ │ │ -_O_U_T_E_R___L_I_N_E___D_O_C → │ │ │ │ -    /// ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ -_O_U_T_E_R___B_L_O_C_K___D_O_C → │ │ │ │ -    /** ![* /] │ │ │ │ -      ^ │ │ │ │ -      ( ~* | _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C ) │ │ │ │ -      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* │ │ │ │ -    */ │ │ │ │ -_B_L_O_C_K___C_H_A_R → ( !( */ | _C_R ) _C_H_A_R ) │ │ │ │ -_B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C → │ │ │ │ -      _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ +_W_H_I_T_E_S_P_A_C_E → │ │ │ │ +      U+0009 // Horizontal tab, '\t' │ │ │ │ +    | U+000A // Line feed, '\n' │ │ │ │ +    | U+000B // Vertical tab │ │ │ │ +    | U+000C // Form feed │ │ │ │ +    | U+000D // Carriage return, '\r' │ │ │ │ +    | U+0020 // Space, ' ' │ │ │ │ +    | U+0085 // Next line │ │ │ │ +    | U+200E // Left-to-right mark │ │ │ │ +    | U+200F // Right-to-left mark │ │ │ │ +    | U+2028 // Line separator │ │ │ │ +    | U+2029 // Paragraph separator │ │ │ │ +_T_A_B → U+0009 // Horizontal tab, '\t' │ │ │ │ +_L_F → U+000A // Line feed, '\n' │ │ │ │ +_C_R → U+000D // Carriage return, '\r' │ │ │ │ Show Railroad │ │ │ │ -WHITESPACE U+0009 U+000A U+000B U+000C U+000D U+0020 U+0085 U+200E U+200F │ │ │ │ -U+2028 U+2029 │ │ │ │ -TAB U+0009 │ │ │ │ -LF U+000A │ │ │ │ -CR U+000D │ │ │ │ +CHAR U+0000-U+D7FF U+E000-U+10FFFF │ │ │ │ +ASCII U+0000-U+007F │ │ │ │ +NUL U+0000 │ │ │ │ +EOF not followed by CHAR │ │ │ │ +SHEBANG #! not followed by WHITESPACE LINE_COMMENT BLOCK_COMMENT [ ⚠️ with the │ │ │ │ +exception of LF CHAR LF EOF │ │ │ │ +COMMENT LINE_COMMENT INNER_LINE_DOC OUTER_LINE_DOC INNER_BLOCK_DOC │ │ │ │ +OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ +LINE_COMMENT // ⚠️ with the exception of / ! LF CHAR // ⚠️ with the exception │ │ │ │ +of LF CHAR // EOF immediately followed by LF // │ │ │ │ +BLOCK_COMMENT /* no backtracking BLOCK_COMMENT_OR_DOC not followed by */ CHAR │ │ │ │ +*/ │ │ │ │ +INNER_LINE_DOC //! no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ +LINE_DOC_COMMENT_CONTENT not followed by CR ⚠️ with the exception of LF CHAR │ │ │ │ +INNER_BLOCK_DOC /*! no backtracking BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ +OUTER_LINE_DOC /// no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ +OUTER_BLOCK_DOC /** not followed by * / no backtracking ⚠️ with the exception │ │ │ │ +of * CHAR BLOCK_COMMENT_OR_DOC BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ +BLOCK_CHAR not followed by */ CR CHAR │ │ │ │ +BLOCK_COMMENT_OR_DOC INNER_BLOCK_DOC OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ Token RESERVED_TOKEN RAW_IDENTIFIER CHAR_LITERAL STRING_LITERAL │ │ │ │ RAW_STRING_LITERAL BYTE_LITERAL BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL │ │ │ │ C_STRING_LITERAL RAW_C_STRING_LITERAL FLOAT_LITERAL INTEGER_LITERAL │ │ │ │ LIFETIME_TOKEN PUNCTUATION IDENTIFIER_OR_KEYWORD │ │ │ │ SUFFIX _ no backtracking XID_Continue XID_Start XID_Continue │ │ │ │ CHAR_LITERAL ' ⚠️ with the exception of ' \ LF CR TAB CHAR QUOTE_ESCAPE │ │ │ │ ASCII_ESCAPE UNICODE_ESCAPE ' SUFFIX │ │ │ │ @@ -438,255 +553,55 @@ │ │ │ │ RESERVED_TOKEN_DOUBLE_QUOTE except `b` or `c` or `r` or `br` or `cr` │ │ │ │ IDENTIFIER_OR_KEYWORD " │ │ │ │ RESERVED_TOKEN_SINGLE_QUOTE except `b` IDENTIFIER_OR_KEYWORD ' │ │ │ │ RESERVED_TOKEN_POUND except `r` or `br` or `cr` IDENTIFIER_OR_KEYWORD # │ │ │ │ RESERVED_TOKEN_LIFETIME ' except `r` IDENTIFIER_OR_KEYWORD # │ │ │ │ RESERVED_GUARDED_STRING_LITERAL # STRING_LITERAL │ │ │ │ RESERVED_POUNDS # # │ │ │ │ -SHEBANG #! not followed by WHITESPACE LINE_COMMENT BLOCK_COMMENT [ ⚠️ with the │ │ │ │ -exception of LF CHAR LF EOF │ │ │ │ -CHAR U+0000-U+D7FF U+E000-U+10FFFF │ │ │ │ -ASCII U+0000-U+007F │ │ │ │ -NUL U+0000 │ │ │ │ -EOF not followed by CHAR │ │ │ │ IDENTIFIER_OR_KEYWORD XID_Start _ XID_Continue │ │ │ │ XID_Start `XID_Start` defined by Unicode │ │ │ │ XID_Continue `XID_Continue` defined by Unicode │ │ │ │ RAW_IDENTIFIER r# IDENTIFIER_OR_KEYWORD │ │ │ │ NON_KEYWORD_IDENTIFIER except a strict or reserved keyword │ │ │ │ IDENTIFIER_OR_KEYWORD │ │ │ │ IDENTIFIER NON_KEYWORD_IDENTIFIER RAW_IDENTIFIER │ │ │ │ RESERVED_RAW_IDENTIFIER r# _ crate self Self super not followed by XID_Continue │ │ │ │ -COMMENT LINE_COMMENT INNER_LINE_DOC OUTER_LINE_DOC INNER_BLOCK_DOC │ │ │ │ -OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ -LINE_COMMENT // ⚠️ with the exception of / ! LF CHAR // ⚠️ with the exception │ │ │ │ -of LF CHAR // EOF immediately followed by LF // │ │ │ │ -BLOCK_COMMENT /* no backtracking BLOCK_COMMENT_OR_DOC not followed by */ CHAR │ │ │ │ -*/ │ │ │ │ -INNER_LINE_DOC //! no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ -LINE_DOC_COMMENT_CONTENT not followed by CR ⚠️ with the exception of LF CHAR │ │ │ │ -INNER_BLOCK_DOC /*! no backtracking BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ -OUTER_LINE_DOC /// no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ -OUTER_BLOCK_DOC /** not followed by * / no backtracking ⚠️ with the exception │ │ │ │ -of * CHAR BLOCK_COMMENT_OR_DOC BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ -BLOCK_CHAR not followed by */ CR CHAR │ │ │ │ -BLOCK_COMMENT_OR_DOC INNER_BLOCK_DOC OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ -********** _II_tt_ee_mm_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_V_i_s_i_b_i_l_i_t_y → │ │ │ │ -      pub │ │ │ │ -    | pub ( crate ) │ │ │ │ -    | pub ( self ) │ │ │ │ -    | pub ( super ) │ │ │ │ -    | pub ( in _S_i_m_p_l_e_P_a_t_h ) │ │ │ │ -_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _V_i_s_I_t_e_m | _M_a_c_r_o_I_t_e_m ) │ │ │ │ -_V_i_s_I_t_e_m → │ │ │ │ -    _V_i_s_i_b_i_l_i_t_y? │ │ │ │ -    ( │ │ │ │ -        _M_o_d_u_l_e │ │ │ │ -      | _E_x_t_e_r_n_C_r_a_t_e │ │ │ │ -      | _U_s_e_D_e_c_l_a_r_a_t_i_o_n │ │ │ │ -      | _F_u_n_c_t_i_o_n │ │ │ │ -      | _T_y_p_e_A_l_i_a_s │ │ │ │ -      | _S_t_r_u_c_t │ │ │ │ -      | _E_n_u_m_e_r_a_t_i_o_n │ │ │ │ -      | _U_n_i_o_n │ │ │ │ -      | _C_o_n_s_t_a_n_t_I_t_e_m │ │ │ │ -      | _S_t_a_t_i_c_I_t_e_m │ │ │ │ -      | _T_r_a_i_t │ │ │ │ -      | _I_m_p_l_e_m_e_n_t_a_t_i_o_n │ │ │ │ -      | _E_x_t_e_r_n_B_l_o_c_k │ │ │ │ -    ) │ │ │ │ -_M_a_c_r_o_I_t_e_m → │ │ │ │ -      _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -    | _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n │ │ │ │ -_U_s_e_D_e_c_l_a_r_a_t_i_o_n → use _U_s_e_T_r_e_e ; │ │ │ │ -_U_s_e_T_r_e_e → │ │ │ │ -      ( _S_i_m_p_l_e_P_a_t_h? :: )? * │ │ │ │ -    | ( _S_i_m_p_l_e_P_a_t_h? :: )? { ( _U_s_e_T_r_e_e ( , _U_s_e_T_r_e_e )* ,? )? } │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ( as ( _I_D_E_N_T_I_F_I_E_R | _ ) )? │ │ │ │ -_U_n_i_o_n → │ │ │ │ -    union _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ -_T_y_p_e_A_l_i_a_s → │ │ │ │ -    type _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s )? │ │ │ │ -        _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -        ( = _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? )? ; │ │ │ │ -_T_r_a_i_t → │ │ │ │ -    unsafe? trait _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -    { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_S_t_r_u_c_t → │ │ │ │ -      _S_t_r_u_c_t_S_t_r_u_c_t │ │ │ │ -    | _T_u_p_l_e_S_t_r_u_c_t │ │ │ │ -_S_t_r_u_c_t_S_t_r_u_c_t → │ │ │ │ -    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? ( { _S_t_r_u_c_t_F_i_e_l_d_s? } | ; ) │ │ │ │ -_T_u_p_l_e_S_t_r_u_c_t → │ │ │ │ -    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( _T_u_p_l_e_F_i_e_l_d_s? ) _W_h_e_r_e_C_l_a_u_s_e? ; │ │ │ │ -_S_t_r_u_c_t_F_i_e_l_d_s → _S_t_r_u_c_t_F_i_e_l_d ( , _S_t_r_u_c_t_F_i_e_l_d )* ,? │ │ │ │ -_S_t_r_u_c_t_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ -_T_u_p_l_e_F_i_e_l_d_s → _T_u_p_l_e_F_i_e_l_d ( , _T_u_p_l_e_F_i_e_l_d )* ,? │ │ │ │ -_T_u_p_l_e_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _T_y_p_e │ │ │ │ -_S_t_a_t_i_c_I_t_e_m → │ │ │ │ -    _I_t_e_m_S_a_f_e_t_y? static mut? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ -_M_o_d_u_l_e → │ │ │ │ -      unsafe? mod _I_D_E_N_T_I_F_I_E_R ; │ │ │ │ -    | unsafe? mod _I_D_E_N_T_I_F_I_E_R { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _I_t_e_m* │ │ │ │ -      } │ │ │ │ -_I_m_p_l_e_m_e_n_t_a_t_i_o_n → _I_n_h_e_r_e_n_t_I_m_p_l | _T_r_a_i_t_I_m_p_l │ │ │ │ -_I_n_h_e_r_e_n_t_I_m_p_l → │ │ │ │ -    impl _G_e_n_e_r_i_c_P_a_r_a_m_s? _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_T_r_a_i_t_I_m_p_l → │ │ │ │ -    unsafe? impl _G_e_n_e_r_i_c_P_a_r_a_m_s? !? _T_y_p_e_P_a_t_h for _T_y_p_e │ │ │ │ -    _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -    { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_G_e_n_e_r_i_c_P_a_r_a_m_s → < ( _G_e_n_e_r_i_c_P_a_r_a_m ( , _G_e_n_e_r_i_c_P_a_r_a_m )* ,? )? > │ │ │ │ -_G_e_n_e_r_i_c_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _L_i_f_e_t_i_m_e_P_a_r_a_m | _T_y_p_e_P_a_r_a_m | _C_o_n_s_t_P_a_r_a_m ) │ │ │ │ -_L_i_f_e_t_i_m_e_P_a_r_a_m → _L_i_f_e_t_i_m_e ( : _L_i_f_e_t_i_m_e_B_o_u_n_d_s )? │ │ │ │ -_T_y_p_e_P_a_r_a_m → _I_D_E_N_T_I_F_I_E_R ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? ( = _T_y_p_e )? │ │ │ │ -_C_o_n_s_t_P_a_r_a_m → │ │ │ │ -    const _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ -    ( = ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_D_E_N_T_I_F_I_E_R | -? _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e → where ( _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m , )* _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → │ │ │ │ -      _L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ -    | _T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ -_L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _L_i_f_e_t_i_m_e : _L_i_f_e_t_i_m_e_B_o_u_n_d_s │ │ │ │ -_T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _F_o_r_L_i_f_e_t_i_m_e_s? _T_y_p_e : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? │ │ │ │ -_F_u_n_c_t_i_o_n → │ │ │ │ -    _F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s fn _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? │ │ │ │ -        ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s? ) │ │ │ │ -        _F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -        ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | ; ) │ │ │ │ -_F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s → const? async? _I_t_e_m_S_a_f_e_t_y? ( extern _A_b_i? )? │ │ │ │ -_I_t_e_m_S_a_f_e_t_y → safe | unsafe │ │ │ │ -_A_b_i → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ -      _S_e_l_f_P_a_r_a_m ,? │ │ │ │ -    | ( _S_e_l_f_P_a_r_a_m , )? _F_u_n_c_t_i_o_n_P_a_r_a_m ( , _F_u_n_c_t_i_o_n_P_a_r_a_m )* ,? │ │ │ │ -_S_e_l_f_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _S_h_o_r_t_h_a_n_d_S_e_l_f | _T_y_p_e_d_S_e_l_f ) │ │ │ │ -_S_h_o_r_t_h_a_n_d_S_e_l_f → ( & | & _L_i_f_e_t_i_m_e )? mut? self │ │ │ │ -_T_y_p_e_d_S_e_l_f → mut? self : _T_y_p_e │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n | ... | _T_y_p_e ) │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n → _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t : ( _T_y_p_e | ... ) │ │ │ │ -_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e │ │ │ │ -_E_x_t_e_r_n_B_l_o_c_k → │ │ │ │ -    unsafe? extern _A_b_i? { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _E_x_t_e_r_n_a_l_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_E_x_t_e_r_n_a_l_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ -        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -      | _V_i_s_i_b_i_l_i_t_y? _S_t_a_t_i_c_I_t_e_m │ │ │ │ -      | _V_i_s_i_b_i_l_i_t_y? _F_u_n_c_t_i_o_n │ │ │ │ -    ) │ │ │ │ -_E_x_t_e_r_n_C_r_a_t_e → extern crate _C_r_a_t_e_R_e_f _A_s_C_l_a_u_s_e? ; │ │ │ │ -_C_r_a_t_e_R_e_f → _I_D_E_N_T_I_F_I_E_R | self │ │ │ │ -_A_s_C_l_a_u_s_e → as ( _I_D_E_N_T_I_F_I_E_R | _ ) │ │ │ │ -_E_n_u_m_e_r_a_t_i_o_n → │ │ │ │ -    enum _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _E_n_u_m_V_a_r_i_a_n_t_s? } │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_s → _E_n_u_m_V_a_r_i_a_n_t ( , _E_n_u_m_V_a_r_i_a_n_t )* ,? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( _E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e | _E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t )? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e → ( _T_u_p_l_e_F_i_e_l_d_s? ) │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t → { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t → = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_C_o_n_s_t_a_n_t_I_t_e_m → │ │ │ │ -    const ( _I_D_E_N_T_I_F_I_E_R | _ ) : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ -_A_s_s_o_c_i_a_t_e_d_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ -        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -      | ( _V_i_s_i_b_i_l_i_t_y? ( _T_y_p_e_A_l_i_a_s | _C_o_n_s_t_a_n_t_I_t_e_m | _F_u_n_c_t_i_o_n ) ) │ │ │ │ -    ) │ │ │ │ -_C_r_a_t_e → │ │ │ │ -    _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -    _I_t_e_m* │ │ │ │ -Show Railroad │ │ │ │ -Visibility pub pub ( crate ) pub ( self ) pub ( super ) pub ( in SimplePath ) │ │ │ │ -Item OuterAttribute VisItem MacroItem │ │ │ │ -VisItem Visibility Module ExternCrate UseDeclaration Function TypeAlias Struct │ │ │ │ -Enumeration Union ConstantItem StaticItem Trait Implementation ExternBlock │ │ │ │ -MacroItem MacroInvocationSemi MacroRulesDefinition │ │ │ │ -UseDeclaration use UseTree ; │ │ │ │ -UseTree SimplePath :: * SimplePath :: { UseTree , UseTree , } SimplePath as │ │ │ │ -IDENTIFIER _ │ │ │ │ -Union union IDENTIFIER GenericParams WhereClause { StructFields } │ │ │ │ -TypeAlias type IDENTIFIER GenericParams : TypeParamBounds WhereClause = Type │ │ │ │ -WhereClause ; │ │ │ │ -Trait unsafe trait IDENTIFIER GenericParams : TypeParamBounds WhereClause │ │ │ │ -{ InnerAttribute AssociatedItem } │ │ │ │ -Struct StructStruct TupleStruct │ │ │ │ -StructStruct struct IDENTIFIER GenericParams WhereClause { StructFields } ; │ │ │ │ -TupleStruct struct IDENTIFIER GenericParams ( TupleFields ) WhereClause ; │ │ │ │ -StructFields StructField , StructField , │ │ │ │ -StructField OuterAttribute Visibility IDENTIFIER : Type │ │ │ │ -TupleFields TupleField , TupleField , │ │ │ │ -TupleField OuterAttribute Visibility Type │ │ │ │ -StaticItem ItemSafety static mut IDENTIFIER : Type = Expression ; │ │ │ │ -Module unsafe mod IDENTIFIER ; unsafe mod IDENTIFIER { InnerAttribute Item } │ │ │ │ -Implementation InherentImpl TraitImpl │ │ │ │ -InherentImpl impl GenericParams Type WhereClause { InnerAttribute │ │ │ │ -AssociatedItem } │ │ │ │ -TraitImpl unsafe impl GenericParams ! TypePath for Type WhereClause │ │ │ │ -{ InnerAttribute AssociatedItem } │ │ │ │ -GenericParams < GenericParam , GenericParam , > │ │ │ │ -GenericParam OuterAttribute LifetimeParam TypeParam ConstParam │ │ │ │ -LifetimeParam Lifetime : LifetimeBounds │ │ │ │ -TypeParam IDENTIFIER : TypeParamBounds = Type │ │ │ │ -ConstParam const IDENTIFIER : Type = BlockExpression IDENTIFIER - │ │ │ │ -LiteralExpression │ │ │ │ -WhereClause where WhereClauseItem , WhereClauseItem │ │ │ │ -WhereClauseItem LifetimeWhereClauseItem TypeBoundWhereClauseItem │ │ │ │ -LifetimeWhereClauseItem Lifetime : LifetimeBounds │ │ │ │ -TypeBoundWhereClauseItem ForLifetimes Type : TypeParamBounds │ │ │ │ -Function FunctionQualifiers fn IDENTIFIER GenericParams ( FunctionParameters ) │ │ │ │ -FunctionReturnType WhereClause BlockExpression ; │ │ │ │ -FunctionQualifiers const async ItemSafety extern Abi │ │ │ │ -ItemSafety safe unsafe │ │ │ │ -Abi STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -FunctionParameters SelfParam , SelfParam , FunctionParam , FunctionParam , │ │ │ │ -SelfParam OuterAttribute ShorthandSelf TypedSelf │ │ │ │ -ShorthandSelf & & Lifetime mut self │ │ │ │ -TypedSelf mut self : Type │ │ │ │ -FunctionParam OuterAttribute FunctionParamPattern ... Type │ │ │ │ -FunctionParamPattern PatternNoTopAlt : Type ... │ │ │ │ -FunctionReturnType -> Type │ │ │ │ -ExternBlock unsafe extern Abi { InnerAttribute ExternalItem } │ │ │ │ -ExternalItem OuterAttribute MacroInvocationSemi Visibility StaticItem │ │ │ │ -Visibility Function │ │ │ │ -ExternCrate extern crate CrateRef AsClause ; │ │ │ │ -CrateRef IDENTIFIER self │ │ │ │ -AsClause as IDENTIFIER _ │ │ │ │ -Enumeration enum IDENTIFIER GenericParams WhereClause { EnumVariants } │ │ │ │ -EnumVariants EnumVariant , EnumVariant , │ │ │ │ -EnumVariant OuterAttribute Visibility IDENTIFIER EnumVariantTuple │ │ │ │ -EnumVariantStruct EnumVariantDiscriminant │ │ │ │ -EnumVariantTuple ( TupleFields ) │ │ │ │ -EnumVariantStruct { StructFields } │ │ │ │ -EnumVariantDiscriminant = Expression │ │ │ │ -ConstantItem const IDENTIFIER _ : Type = Expression ; │ │ │ │ -AssociatedItem OuterAttribute MacroInvocationSemi Visibility TypeAlias │ │ │ │ -ConstantItem Function │ │ │ │ -Crate InnerAttribute Item │ │ │ │ +WHITESPACE U+0009 U+000A U+000B U+000C U+000D U+0020 U+0085 U+200E U+200F │ │ │ │ +U+2028 U+2029 │ │ │ │ +TAB U+0009 │ │ │ │ +LF U+000A │ │ │ │ +CR U+000D │ │ │ │ ********** _TT_yy_pp_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ +_A_r_r_a_y_T_y_p_e → [ _T_y_p_e ; _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ +_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e → dyn? _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e_O_n_e_B_o_u_n_d → dyn? _T_r_a_i_t_B_o_u_n_d │ │ │ │ +_I_n_f_e_r_r_e_d_T_y_p_e → _ │ │ │ │ +_B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e → │ │ │ │ +    _F_o_r_L_i_f_e_t_i_m_e_s? _F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s fn │ │ │ │ +       ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c? ) _B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? │ │ │ │ +_F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s → unsafe? ( extern _A_b_i? )? │ │ │ │ +_B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c → │ │ │ │ +    _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s | _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ +    _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m ( , _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m )* ,? │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_P_a_r_a_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( ( _I_D_E_N_T_I_F_I_E_R | _ ) : )? _T_y_p_e │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c → │ │ │ │ +    ( _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , )* _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ... │ │ │ │ +_N_e_v_e_r_T_y_p_e → ! │ │ │ │ +_S_l_i_c_e_T_y_p_e → [ _T_y_p_e ] │ │ │ │ +_R_e_f_e_r_e_n_c_e_T_y_p_e → & _L_i_f_e_t_i_m_e? mut? _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_R_a_w_P_o_i_n_t_e_r_T_y_p_e → * ( mut | const ) _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_T_u_p_l_e_T_y_p_e → │ │ │ │ +      ( ) │ │ │ │ +    | ( ( _T_y_p_e , )+ _T_y_p_e? ) │ │ │ │ +_I_m_p_l_T_r_a_i_t_T_y_p_e → impl _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d → impl _T_r_a_i_t_B_o_u_n_d │ │ │ │ _T_y_p_e → │ │ │ │       _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │     | _I_m_p_l_T_r_a_i_t_T_y_p_e │ │ │ │     | _T_r_a_i_t_O_b_j_e_c_t_T_y_p_e │ │ │ │ _T_y_p_e_N_o_B_o_u_n_d_s → │ │ │ │       _P_a_r_e_n_t_h_e_s_i_z_e_d_T_y_p_e │ │ │ │     | _I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d │ │ │ │ @@ -699,122 +614,41 @@ │ │ │ │     | _A_r_r_a_y_T_y_p_e │ │ │ │     | _S_l_i_c_e_T_y_p_e │ │ │ │     | _I_n_f_e_r_r_e_d_T_y_p_e │ │ │ │     | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e │ │ │ │     | _B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e │ │ │ │     | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ _P_a_r_e_n_t_h_e_s_i_z_e_d_T_y_p_e → ( _T_y_p_e ) │ │ │ │ -_T_u_p_l_e_T_y_p_e → │ │ │ │ -      ( ) │ │ │ │ -    | ( ( _T_y_p_e , )+ _T_y_p_e? ) │ │ │ │ -_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e → dyn? _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e_O_n_e_B_o_u_n_d → dyn? _T_r_a_i_t_B_o_u_n_d │ │ │ │ -_S_l_i_c_e_T_y_p_e → [ _T_y_p_e ] │ │ │ │ -_R_e_f_e_r_e_n_c_e_T_y_p_e → & _L_i_f_e_t_i_m_e? mut? _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_R_a_w_P_o_i_n_t_e_r_T_y_p_e → * ( mut | const ) _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_N_e_v_e_r_T_y_p_e → ! │ │ │ │ -_I_n_f_e_r_r_e_d_T_y_p_e → _ │ │ │ │ -_I_m_p_l_T_r_a_i_t_T_y_p_e → impl _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d → impl _T_r_a_i_t_B_o_u_n_d │ │ │ │ -_B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e → │ │ │ │ -    _F_o_r_L_i_f_e_t_i_m_e_s? _F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s fn │ │ │ │ -       ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c? ) _B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? │ │ │ │ -_F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s → unsafe? ( extern _A_b_i? )? │ │ │ │ -_B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c → │ │ │ │ -    _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s | _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ -    _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m ( , _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m )* ,? │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_P_a_r_a_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( ( _I_D_E_N_T_I_F_I_E_R | _ ) : )? _T_y_p_e │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c → │ │ │ │ -    ( _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , )* _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ... │ │ │ │ -_A_r_r_a_y_T_y_p_e → [ _T_y_p_e ; _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ Show Railroad │ │ │ │ -Type TypeNoBounds ImplTraitType TraitObjectType │ │ │ │ -TypeNoBounds ParenthesizedType ImplTraitTypeOneBound TraitObjectTypeOneBound │ │ │ │ -TypePath TupleType NeverType RawPointerType ReferenceType ArrayType SliceType │ │ │ │ -InferredType QualifiedPathInType BareFunctionType MacroInvocation │ │ │ │ -ParenthesizedType ( Type ) │ │ │ │ -TupleType ( ) ( Type , Type ) │ │ │ │ +ArrayType [ Type ; Expression ] │ │ │ │ TraitObjectType dyn TypeParamBounds │ │ │ │ TraitObjectTypeOneBound dyn TraitBound │ │ │ │ -SliceType [ Type ] │ │ │ │ -ReferenceType & Lifetime mut TypeNoBounds │ │ │ │ -RawPointerType * mut const TypeNoBounds │ │ │ │ -NeverType ! │ │ │ │ InferredType _ │ │ │ │ -ImplTraitType impl TypeParamBounds │ │ │ │ -ImplTraitTypeOneBound impl TraitBound │ │ │ │ BareFunctionType ForLifetimes FunctionTypeQualifiers fn │ │ │ │ ( FunctionParametersMaybeNamedVariadic ) BareFunctionReturnType │ │ │ │ FunctionTypeQualifiers unsafe extern Abi │ │ │ │ BareFunctionReturnType -> TypeNoBounds │ │ │ │ FunctionParametersMaybeNamedVariadic MaybeNamedFunctionParameters │ │ │ │ MaybeNamedFunctionParametersVariadic │ │ │ │ MaybeNamedFunctionParameters MaybeNamedParam , MaybeNamedParam , │ │ │ │ MaybeNamedParam OuterAttribute IDENTIFIER _ : Type │ │ │ │ MaybeNamedFunctionParametersVariadic MaybeNamedParam , MaybeNamedParam , │ │ │ │ OuterAttribute ... │ │ │ │ -ArrayType [ Type ; Expression ] │ │ │ │ -********** _MM_ii_ss_cc_ee_ll_ll_aa_nn_ee_oo_uu_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_T_y_p_e_P_a_r_a_m_B_o_u_n_d_s → _T_y_p_e_P_a_r_a_m_B_o_u_n_d ( + _T_y_p_e_P_a_r_a_m_B_o_u_n_d )* +? │ │ │ │ -_T_y_p_e_P_a_r_a_m_B_o_u_n_d → _L_i_f_e_t_i_m_e | _T_r_a_i_t_B_o_u_n_d | _U_s_e_B_o_u_n_d │ │ │ │ -_T_r_a_i_t_B_o_u_n_d → │ │ │ │ -      ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h │ │ │ │ -    | ( ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h ) │ │ │ │ -_L_i_f_e_t_i_m_e_B_o_u_n_d_s → ( _L_i_f_e_t_i_m_e + )* _L_i_f_e_t_i_m_e? │ │ │ │ -_L_i_f_e_t_i_m_e → │ │ │ │ -      _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L │ │ │ │ -    | 'static │ │ │ │ -    | '_ │ │ │ │ -_U_s_e_B_o_u_n_d → use _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s │ │ │ │ -_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ -      < > │ │ │ │ -    | < ( _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g , )* _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ -_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g → │ │ │ │ -      _L_i_f_e_t_i_m_e │ │ │ │ -    | _I_D_E_N_T_I_F_I_E_R │ │ │ │ -    | Self │ │ │ │ -_F_o_r_L_i_f_e_t_i_m_e_s → for _G_e_n_e_r_i_c_P_a_r_a_m_s │ │ │ │ -Show Railroad │ │ │ │ -TypeParamBounds TypeParamBound + TypeParamBound + │ │ │ │ -TypeParamBound Lifetime TraitBound UseBound │ │ │ │ -TraitBound ? ForLifetimes TypePath ( ? ForLifetimes TypePath ) │ │ │ │ -LifetimeBounds Lifetime + Lifetime │ │ │ │ -Lifetime LIFETIME_OR_LABEL 'static '_ │ │ │ │ -UseBound use UseBoundGenericArgs │ │ │ │ -UseBoundGenericArgs < > < UseBoundGenericArg , UseBoundGenericArg , > │ │ │ │ -UseBoundGenericArg Lifetime IDENTIFIER Self │ │ │ │ -ForLifetimes for GenericParams │ │ │ │ -********** _SS_tt_aa_tt_ee_mm_ee_nn_tt_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_S_t_a_t_e_m_e_n_t → │ │ │ │ -      ; │ │ │ │ -    | _I_t_e_m │ │ │ │ -    | _L_e_t_S_t_a_t_e_m_e_n_t │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t │ │ │ │ -    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -_L_e_t_S_t_a_t_e_m_e_n_t → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ -    ( │ │ │ │ -          = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | = _E_x_p_r_e_s_s_i_o_nexcept _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n or end with a } else │ │ │ │ -_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    )? ; │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k ; │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ;? │ │ │ │ -Show Railroad │ │ │ │ -Statement ; Item LetStatement ExpressionStatement OuterAttribute │ │ │ │ -MacroInvocationSemi │ │ │ │ -LetStatement OuterAttribute let PatternNoTopAlt : Type = Expression = except │ │ │ │ -LazyBooleanExpression or end with a `}` Expression else BlockExpression ; │ │ │ │ -ExpressionStatement ExpressionWithoutBlock ; ExpressionWithBlock ; │ │ │ │ +NeverType ! │ │ │ │ +SliceType [ Type ] │ │ │ │ +ReferenceType & Lifetime mut TypeNoBounds │ │ │ │ +RawPointerType * mut const TypeNoBounds │ │ │ │ +TupleType ( ) ( Type , Type ) │ │ │ │ +ImplTraitType impl TypeParamBounds │ │ │ │ +ImplTraitTypeOneBound impl TraitBound │ │ │ │ +Type TypeNoBounds ImplTraitType TraitObjectType │ │ │ │ +TypeNoBounds ParenthesizedType ImplTraitTypeOneBound TraitObjectTypeOneBound │ │ │ │ +TypePath TupleType NeverType RawPointerType ReferenceType ArrayType SliceType │ │ │ │ +InferredType QualifiedPathInType BareFunctionType MacroInvocation │ │ │ │ +ParenthesizedType ( Type ) │ │ │ │ ********** _PP_aa_tt_tt_ee_rr_nn_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ _P_a_t_t_e_r_n → |? _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( | _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t )* │ │ │ │ _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t → │ │ │ │       _P_a_t_t_e_r_n_W_i_t_h_o_u_t_R_a_n_g_e │ │ │ │     | _R_a_n_g_e_P_a_t_t_e_r_n │ │ │ │ _P_a_t_t_e_r_n_W_i_t_h_o_u_t_R_a_n_g_e → │ │ │ │ @@ -916,80 +750,79 @@ │ │ │ │ TupleStructItems Pattern , Pattern , │ │ │ │ TuplePattern ( TuplePatternItems ) │ │ │ │ TuplePatternItems Pattern , RestPattern Pattern , Pattern , │ │ │ │ GroupedPattern ( Pattern ) │ │ │ │ SlicePattern [ SlicePatternItems ] │ │ │ │ SlicePatternItems Pattern , Pattern , │ │ │ │ PathPattern PathExpression │ │ │ │ -********** _PP_aa_tt_hh_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +********** _AA_tt_tt_rr_ii_bb_uu_tt_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_S_i_m_p_l_e_P_a_t_h → │ │ │ │ -    ::? _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t ( :: _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ -_S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R | super | self | crate | $crate │ │ │ │ -_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    ::? _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )* │ │ │ │ -_P_a_t_h_E_x_p_r_S_e_g_m_e_n_t → │ │ │ │ -    _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( :: _G_e_n_e_r_i_c_A_r_g_s )? │ │ │ │ -_P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R | super | self | Self | crate | $crate │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ -      < > │ │ │ │ -    | < ( _G_e_n_e_r_i_c_A_r_g , )* _G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ -_G_e_n_e_r_i_c_A_r_g → │ │ │ │ -    _L_i_f_e_t_i_m_e | _T_y_p_e | _G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t | _G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g | _G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t → │ │ │ │ -      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | - _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? = _T_y_p_e │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )+ │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e → < _T_y_p_e ( as _T_y_p_e_P_a_t_h )? > │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )+ │ │ │ │ -_T_y_p_e_P_a_t_h → ::? _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ -_T_y_p_e_P_a_t_h_S_e_g_m_e_n_t → _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( ::? ( _G_e_n_e_r_i_c_A_r_g_s | _T_y_p_e_P_a_t_h_F_n ) )? │ │ │ │ -_T_y_p_e_P_a_t_h_F_n → ( _T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s? ) ( -> _T_y_p_e_N_o_B_o_u_n_d_s )? │ │ │ │ -_T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s → _T_y_p_e ( , _T_y_p_e )* ,? │ │ │ │ +_I_n_n_e_r_A_t_t_r_i_b_u_t_e → # ! [ _A_t_t_r ] │ │ │ │ +_O_u_t_e_r_A_t_t_r_i_b_u_t_e → # [ _A_t_t_r ] │ │ │ │ +_A_t_t_r → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? │ │ │ │ +    | unsafe ( _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? ) │ │ │ │ +_A_t_t_r_I_n_p_u_t → │ │ │ │ +      _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +    | = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_e_t_a_I_t_e_m → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ( _M_e_t_a_S_e_q? ) │ │ │ │ +_M_e_t_a_S_e_q → │ │ │ │ +    _M_e_t_a_I_t_e_m_I_n_n_e_r ( , _M_e_t_a_I_t_e_m_I_n_n_e_r )* ,? │ │ │ │ +_M_e_t_a_I_t_e_m_I_n_n_e_r → │ │ │ │ +      _M_e_t_a_I_t_e_m │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_e_t_a_W_o_r_d → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) │ │ │ │ +_M_e_t_a_L_i_s_t_P_a_t_h_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _S_i_m_p_l_e_P_a_t_h ( , _S_i_m_p_l_e_P_a_t_h )* ,? )? ) │ │ │ │ +_M_e_t_a_L_i_s_t_I_d_e_n_t_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ +_M_e_t_a_L_i_s_t_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r ( , _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r )* ,? )? ) │ │ │ │ +_I_n_l_i_n_e_A_t_t_r_i_b_u_t_e → │ │ │ │ +      inline ( always ) │ │ │ │ +    | inline ( never ) │ │ │ │ +    | inline │ │ │ │ +_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_A_t_t_r_i_b_u_t_e → collapse_debuginfo ( _C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n ) │ │ │ │ +_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n → │ │ │ │ +      yes │ │ │ │ +    | no │ │ │ │ +    | external │ │ │ │ +_P_r_o_c_M_a_c_r_o_D_e_r_i_v_e_A_t_t_r_i_b_u_t_e → │ │ │ │ +    proc_macro_derive ( _D_e_r_i_v_e_M_a_c_r_o_N_a_m_e ( , _D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s )? ,? ) │ │ │ │ +_D_e_r_i_v_e_M_a_c_r_o_N_a_m_e → _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s → │ │ │ │ +    attributes ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ Show Railroad │ │ │ │ -SimplePath :: SimplePathSegment :: SimplePathSegment │ │ │ │ -SimplePathSegment IDENTIFIER super self crate $crate │ │ │ │ -PathInExpression :: PathExprSegment :: PathExprSegment │ │ │ │ -PathExprSegment PathIdentSegment :: GenericArgs │ │ │ │ -PathIdentSegment IDENTIFIER super self Self crate $crate │ │ │ │ -GenericArgs < > < GenericArg , GenericArg , > │ │ │ │ -GenericArg Lifetime Type GenericArgsConst GenericArgsBinding GenericArgsBounds │ │ │ │ -GenericArgsConst BlockExpression LiteralExpression - LiteralExpression │ │ │ │ -SimplePathSegment │ │ │ │ -GenericArgsBinding IDENTIFIER GenericArgs = Type │ │ │ │ -GenericArgsBounds IDENTIFIER GenericArgs : TypeParamBounds │ │ │ │ -QualifiedPathInExpression QualifiedPathType :: PathExprSegment │ │ │ │ -QualifiedPathType < Type as TypePath > │ │ │ │ -QualifiedPathInType QualifiedPathType :: TypePathSegment │ │ │ │ -TypePath :: TypePathSegment :: TypePathSegment │ │ │ │ -TypePathSegment PathIdentSegment :: GenericArgs TypePathFn │ │ │ │ -TypePathFn ( TypePathFnInputs ) -> TypeNoBounds │ │ │ │ -TypePathFnInputs Type , Type , │ │ │ │ +InnerAttribute # ! [ Attr ] │ │ │ │ +OuterAttribute # [ Attr ] │ │ │ │ +Attr SimplePath AttrInput unsafe ( SimplePath AttrInput ) │ │ │ │ +AttrInput DelimTokenTree = Expression │ │ │ │ +MetaItem SimplePath SimplePath = Expression SimplePath ( MetaSeq ) │ │ │ │ +MetaSeq MetaItemInner , MetaItemInner , │ │ │ │ +MetaItemInner MetaItem Expression │ │ │ │ +MetaWord IDENTIFIER │ │ │ │ +MetaNameValueStr IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +MetaListPaths IDENTIFIER ( SimplePath , SimplePath , ) │ │ │ │ +MetaListIdents IDENTIFIER ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ +MetaListNameValueStr IDENTIFIER ( MetaNameValueStr , MetaNameValueStr , ) │ │ │ │ +InlineAttribute inline ( always ) inline ( never ) inline │ │ │ │ +CollapseDebuginfoAttribute collapse_debuginfo ( CollapseDebuginfoOption ) │ │ │ │ +CollapseDebuginfoOption yes no external │ │ │ │ +ProcMacroDeriveAttribute proc_macro_derive ( DeriveMacroName , │ │ │ │ +DeriveMacroAttributes , ) │ │ │ │ +DeriveMacroName IDENTIFIER │ │ │ │ +DeriveMacroAttributes attributes ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ ********** _MM_aa_cc_rr_oo_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n → │ │ │ │ -    _S_i_m_p_l_e_P_a_t_h ! _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -_D_e_l_i_m_T_o_k_e_n_T_r_e_e → │ │ │ │ -      ( _T_o_k_e_n_T_r_e_e* ) │ │ │ │ -    | [ _T_o_k_e_n_T_r_e_e* ] │ │ │ │ -    | { _T_o_k_e_n_T_r_e_e* } │ │ │ │ -_T_o_k_e_n_T_r_e_e → │ │ │ │ -    _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s | _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h ! ( _T_o_k_e_n_T_r_e_e* ) ; │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ! [ _T_o_k_e_n_T_r_e_e* ] ; │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ! { _T_o_k_e_n_T_r_e_e* } │ │ │ │ _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n → │ │ │ │     macro_rules ! _I_D_E_N_T_I_F_I_E_R _M_a_c_r_o_R_u_l_e_s_D_e_f │ │ │ │ _M_a_c_r_o_R_u_l_e_s_D_e_f → │ │ │ │       ( _M_a_c_r_o_R_u_l_e_s ) ; │ │ │ │     | [ _M_a_c_r_o_R_u_l_e_s ] ; │ │ │ │     | { _M_a_c_r_o_R_u_l_e_s } │ │ │ │ _M_a_c_r_o_R_u_l_e_s → │ │ │ │ @@ -1007,166 +840,168 @@ │ │ │ │     | $ ( _M_a_c_r_o_M_a_t_c_h+ ) _M_a_c_r_o_R_e_p_S_e_p? _M_a_c_r_o_R_e_p_O_p │ │ │ │ _M_a_c_r_o_F_r_a_g_S_p_e_c → │ │ │ │       block | expr | expr_2021 | ident | item | lifetime | literal │ │ │ │     | meta | pat | pat_param | path | stmt | tt | ty | vis │ │ │ │ _M_a_c_r_o_R_e_p_S_e_p → _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s and _M_a_c_r_o_R_e_p_O_p │ │ │ │ _M_a_c_r_o_R_e_p_O_p → * | + | ? │ │ │ │ _M_a_c_r_o_T_r_a_n_s_c_r_i_b_e_r → _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n → │ │ │ │ +    _S_i_m_p_l_e_P_a_t_h ! _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_D_e_l_i_m_T_o_k_e_n_T_r_e_e → │ │ │ │ +      ( _T_o_k_e_n_T_r_e_e* ) │ │ │ │ +    | [ _T_o_k_e_n_T_r_e_e* ] │ │ │ │ +    | { _T_o_k_e_n_T_r_e_e* } │ │ │ │ +_T_o_k_e_n_T_r_e_e → │ │ │ │ +    _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s | _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h ! ( _T_o_k_e_n_T_r_e_e* ) ; │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ! [ _T_o_k_e_n_T_r_e_e* ] ; │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ! { _T_o_k_e_n_T_r_e_e* } │ │ │ │ Show Railroad │ │ │ │ -MacroInvocation SimplePath ! DelimTokenTree │ │ │ │ -DelimTokenTree ( TokenTree ) [ TokenTree ] { TokenTree } │ │ │ │ -TokenTree except delimiters Token DelimTokenTree │ │ │ │ -MacroInvocationSemi SimplePath ! ( TokenTree ) ; SimplePath ! [ TokenTree ] ; │ │ │ │ -SimplePath ! { TokenTree } │ │ │ │ MacroRulesDefinition macro_rules ! IDENTIFIER MacroRulesDef │ │ │ │ MacroRulesDef ( MacroRules ) ; [ MacroRules ] ; { MacroRules } │ │ │ │ MacroRules MacroRule ; MacroRule ; │ │ │ │ MacroRule MacroMatcher => MacroTranscriber │ │ │ │ MacroMatcher ( MacroMatch ) [ MacroMatch ] { MacroMatch } │ │ │ │ MacroMatch except `$` and delimiters Token MacroMatcher $ except `crate` │ │ │ │ IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER : MacroFragSpec $ ( MacroMatch ) │ │ │ │ MacroRepSep MacroRepOp │ │ │ │ MacroFragSpec block expr expr_2021 ident item lifetime literal meta pat │ │ │ │ pat_param path stmt tt ty vis │ │ │ │ MacroRepSep except delimiters and MacroRepOp Token │ │ │ │ MacroRepOp * + ? │ │ │ │ MacroTranscriber DelimTokenTree │ │ │ │ -********** _AA_ss_ss_ee_mm_bb_ll_yy_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_A_s_m_A_r_g_s → _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g ( , _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g )* ( , _A_s_m_A_t_t_r_O_p_e_r_a_n_d )* │ │ │ │ -,? │ │ │ │ -_F_o_r_m_a_t_S_t_r_i_n_g → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ -_A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _F_o_r_m_a_t_S_t_r_i_n_g │ │ │ │ -_A_s_m_O_p_e_r_a_n_d → │ │ │ │ -      _C_l_o_b_b_e_r_A_b_i │ │ │ │ -    | _A_s_m_O_p_t_i_o_n_s │ │ │ │ -    | _R_e_g_O_p_e_r_a_n_d │ │ │ │ -_A_s_m_A_t_t_r_O_p_e_r_a_n_d → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _A_s_m_O_p_e_r_a_n_d │ │ │ │ -_C_l_o_b_b_e_r_A_b_i → clobber_abi ( _A_b_i ( , _A_b_i )* ,? ) │ │ │ │ -_A_s_m_O_p_t_i_o_n_s → │ │ │ │ -    options ( ( _A_s_m_O_p_t_i_o_n ( , _A_s_m_O_p_t_i_o_n )* ,? )? ) │ │ │ │ -_A_s_m_O_p_t_i_o_n → │ │ │ │ -      pure │ │ │ │ -    | nomem │ │ │ │ -    | readonly │ │ │ │ -    | preserves_flags │ │ │ │ -    | noreturn │ │ │ │ -    | nostack │ │ │ │ -    | att_syntax │ │ │ │ -    | raw │ │ │ │ -_R_e_g_O_p_e_r_a_n_d → ( _P_a_r_a_m_N_a_m_e = )? │ │ │ │ -    ( │ │ │ │ -          _D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | _D_u_a_l_D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | sym _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | const _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | label { _S_t_a_t_e_m_e_n_t_s? } │ │ │ │ -    ) │ │ │ │ -_P_a_r_a_m_N_a_m_e → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ -_D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n => _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_R_e_g_S_p_e_c → _R_e_g_i_s_t_e_r_C_l_a_s_s | _E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r │ │ │ │ -_R_e_g_i_s_t_e_r_C_l_a_s_s → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ -_E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r → _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -_D_i_r_S_p_e_c → │ │ │ │ -      in │ │ │ │ -    | out │ │ │ │ -    | lateout │ │ │ │ -_D_u_a_l_D_i_r_S_p_e_c → │ │ │ │ -      inout │ │ │ │ -    | inlateout │ │ │ │ -Show Railroad │ │ │ │ -AsmArgs AsmAttrFormatString , AsmAttrFormatString , AsmAttrOperand , │ │ │ │ -FormatString STRING_LITERAL RAW_STRING_LITERAL MacroInvocation │ │ │ │ -AsmAttrFormatString OuterAttribute FormatString │ │ │ │ -AsmOperand ClobberAbi AsmOptions RegOperand │ │ │ │ -AsmAttrOperand OuterAttribute AsmOperand │ │ │ │ -ClobberAbi clobber_abi ( Abi , Abi , ) │ │ │ │ -AsmOptions options ( AsmOption , AsmOption , ) │ │ │ │ -AsmOption pure nomem readonly preserves_flags noreturn nostack att_syntax raw │ │ │ │ -RegOperand ParamName = DirSpec ( RegSpec ) Expression DualDirSpec ( RegSpec ) │ │ │ │ -DualDirSpecExpression sym PathExpression const Expression label { Statements } │ │ │ │ -ParamName IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER │ │ │ │ -DualDirSpecExpression Expression Expression => Expression │ │ │ │ -RegSpec RegisterClass ExplicitRegister │ │ │ │ -RegisterClass IDENTIFIER_OR_KEYWORD │ │ │ │ -ExplicitRegister STRING_LITERAL │ │ │ │ -DirSpec in out lateout │ │ │ │ -DualDirSpec inout inlateout │ │ │ │ +MacroInvocation SimplePath ! DelimTokenTree │ │ │ │ +DelimTokenTree ( TokenTree ) [ TokenTree ] { TokenTree } │ │ │ │ +TokenTree except delimiters Token DelimTokenTree │ │ │ │ +MacroInvocationSemi SimplePath ! ( TokenTree ) ; SimplePath ! [ TokenTree ] ; │ │ │ │ +SimplePath ! { TokenTree } │ │ │ │ ********** _EE_xx_pp_rr_ee_ss_ss_ii_oo_nn_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ -      _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_r_r_a_y_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_w_a_i_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _I_n_d_e_x_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _F_i_e_l_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _B_r_e_a_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ -      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _I_f_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_a_t_c_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _C_H_A_R___L_I_T_E_R_A_L │ │ │ │ +    | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ +    | _B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _I_N_T_E_G_E_R___L_I_T_E_R_A_L │ │ │ │ +    | _F_L_O_A_T___L_I_T_E_R_A_L │ │ │ │ +    | true │ │ │ │ +    | false │ │ │ │ +_A_w_a_i_t_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . await │ │ │ │ +_M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ +_R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n → return _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    async? │ │ │ │ +    move? │ │ │ │ +    ( || | | _C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s? | ) │ │ │ │ +    ( _E_x_p_r_e_s_s_i_o_n | -> _T_y_p_e_N_o_B_o_u_n_d_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n ) │ │ │ │ +_C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s → _C_l_o_s_u_r_e_P_a_r_a_m ( , _C_l_o_s_u_r_e_P_a_r_a_m )* ,? │ │ │ │ +_C_l_o_s_u_r_e_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ +_F_i_e_l_d_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_I_f_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    if _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    ( else ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_f_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ +_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_e_t_C_h_a_i_n │ │ │ │ +_L_e_t_C_h_a_i_n → _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n ( && _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n )* │ │ │ │ +_L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ +    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _S_c_r_u_t_i_n_e_eexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ +    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n → _ │ │ │ │ _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n → ( _T_u_p_l_e_E_l_e_m_e_n_t_s? ) │ │ │ │ _T_u_p_l_e_E_l_e_m_e_n_t_s → ( _E_x_p_r_e_s_s_i_o_n , )+ _E_x_p_r_e_s_s_i_o_n? │ │ │ │ _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _T_U_P_L_E___I_N_D_E_X │ │ │ │ +_A_r_r_a_y_E_x_p_r_e_s_s_i_o_n → [ _A_r_r_a_y_E_l_e_m_e_n_t_s? ] │ │ │ │ +_A_r_r_a_y_E_l_e_m_e_n_t_s → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n ; _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_I_n_d_e_x_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n [ _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n → │ │ │ │     _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n { ( _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d_s | _S_t_r_u_c_t_B_a_s_e )? } │ │ │ │ _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d_s → │ │ │ │     _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d ( , _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d )* ( , _S_t_r_u_c_t_B_a_s_e | ,? ) │ │ │ │ _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d → │ │ │ │     _O_u_t_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │     ( │ │ │ │         _I_D_E_N_T_I_F_I_E_R │ │ │ │       | ( _I_D_E_N_T_I_F_I_E_R | _T_U_P_L_E___I_N_D_E_X ) : _E_x_p_r_e_s_s_i_o_n │ │ │ │     ) │ │ │ │ _S_t_r_u_c_t_B_a_s_e → .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n → return _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_P_a_t_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │       _R_a_n_g_e_E_x_p_r │ │ │ │     | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │     | _R_a_n_g_e_T_o_E_x_p_r │ │ │ │     | _R_a_n_g_e_F_u_l_l_E_x_p_r │ │ │ │     | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │     | _R_a_n_g_e_T_o_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ _R_a_n_g_e_E_x_p_r → _E_x_p_r_e_s_s_i_o_n .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_F_r_o_m_E_x_p_r → _E_x_p_r_e_s_s_i_o_n .. │ │ │ │ _R_a_n_g_e_T_o_E_x_p_r → .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_F_u_l_l_E_x_p_r → .. │ │ │ │ _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r → _E_x_p_r_e_s_s_i_o_n ..= _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_T_o_I_n_c_l_u_s_i_v_e_E_x_p_r → ..= _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_P_a_t_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    match _S_c_r_u_t_i_n_e_e { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _M_a_t_c_h_A_r_m_s? │ │ │ │ +    } │ │ │ │ +_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_A_r_m_s → │ │ │ │ +    ( _M_a_t_c_h_A_r_m => ( _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k , | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ,? ) )* │ │ │ │ +    _M_a_t_c_h_A_r_m => _E_x_p_r_e_s_s_i_o_n ,? │ │ │ │ +_M_a_t_c_h_A_r_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n _M_a_t_c_h_A_r_m_G_u_a_r_d? │ │ │ │ +_M_a_t_c_h_A_r_m_G_u_a_r_d → if _M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +     _M_a_t_c_h_G_u_a_r_d_C_h_a_i_n │ │ │ │ +   | _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_C_h_a_i_n → _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n ( && _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n )* │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n → │ │ │ │ +     _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +   | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ +    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    _L_o_o_p_L_a_b_e_l? ( │ │ │ │ +        _I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    ) │ │ │ │ +_I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → loop _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → while _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    for _P_a_t_t_e_r_n in _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_o_o_p_L_a_b_e_l → _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L : │ │ │ │ +_B_r_e_a_k_E_x_p_r_e_s_s_i_o_n → break _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n → continue _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? │ │ │ │ +_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ +_C_a_l_l_P_a_r_a_m_s → _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n → │ │ │ │       _B_o_r_r_o_w_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _D_e_r_e_f_e_r_e_n_c_e_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _T_r_y_P_r_o_p_a_g_a_t_i_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _N_e_g_a_t_i_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _A_r_i_t_h_m_e_t_i_c_O_r_L_o_g_i_c_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _C_o_m_p_a_r_i_s_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ @@ -1214,170 +1049,103 @@ │ │ │ │     | _E_x_p_r_e_s_s_i_o_n /= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n %= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n &= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n |= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n ^= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n <<= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n >>= _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ -_M_a_t_c_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    match _S_c_r_u_t_i_n_e_e { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _M_a_t_c_h_A_r_m_s? │ │ │ │ -    } │ │ │ │ -_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_a_t_c_h_A_r_m_s → │ │ │ │ -    ( _M_a_t_c_h_A_r_m => ( _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k , | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ,? ) )* │ │ │ │ -    _M_a_t_c_h_A_r_m => _E_x_p_r_e_s_s_i_o_n ,? │ │ │ │ -_M_a_t_c_h_A_r_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n _M_a_t_c_h_A_r_m_G_u_a_r_d? │ │ │ │ -_M_a_t_c_h_A_r_m_G_u_a_r_d → if _M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -     _M_a_t_c_h_G_u_a_r_d_C_h_a_i_n │ │ │ │ -   | _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_C_h_a_i_n → _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n ( && _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n )* │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n → │ │ │ │ -     _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -   | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ -    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    _L_o_o_p_L_a_b_e_l? ( │ │ │ │ -        _I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    ) │ │ │ │ -_I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → loop _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → while _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    for _P_a_t_t_e_r_n in _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_L_o_o_p_L_a_b_e_l → _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L : │ │ │ │ -_B_r_e_a_k_E_x_p_r_e_s_s_i_o_n → break _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? _E_x_p_r_e_s_s_i_o_n? │ │ │ │ -_L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n → continue _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? │ │ │ │ -_L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _C_H_A_R___L_I_T_E_R_A_L │ │ │ │ -    | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ -    | _B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _I_N_T_E_G_E_R___L_I_T_E_R_A_L │ │ │ │ -    | _F_L_O_A_T___L_I_T_E_R_A_L │ │ │ │ -    | true │ │ │ │ -    | false │ │ │ │ -_I_f_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    if _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    ( else ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_f_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ -_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_e_t_C_h_a_i_n │ │ │ │ -_L_e_t_C_h_a_i_n → _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n ( && _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n )* │ │ │ │ -_L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ -    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _S_c_r_u_t_i_n_e_eexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ -    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n → ( _E_x_p_r_e_s_s_i_o_n ) │ │ │ │ -_F_i_e_l_d_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    async? │ │ │ │ -    move? │ │ │ │ -    ( || | | _C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s? | ) │ │ │ │ -    ( _E_x_p_r_e_s_s_i_o_n | -> _T_y_p_e_N_o_B_o_u_n_d_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n ) │ │ │ │ -_C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s → _C_l_o_s_u_r_e_P_a_r_a_m ( , _C_l_o_s_u_r_e_P_a_r_a_m )* ,? │ │ │ │ -_C_l_o_s_u_r_e_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ -_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ -_C_a_l_l_P_a_r_a_m_s → _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → │ │ │ │     { │ │ │ │         _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │         _S_t_a_t_e_m_e_n_t_s? │ │ │ │     } │ │ │ │ _S_t_a_t_e_m_e_n_t_s → │ │ │ │       _S_t_a_t_e_m_e_n_t+ │ │ │ │     | _S_t_a_t_e_m_e_n_t+ _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │     | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → async move? _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → const _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → unsafe _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_A_w_a_i_t_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . await │ │ │ │ -_A_r_r_a_y_E_x_p_r_e_s_s_i_o_n → [ _A_r_r_a_y_E_l_e_m_e_n_t_s? ] │ │ │ │ -_A_r_r_a_y_E_l_e_m_e_n_t_s → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n ; _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_I_n_d_e_x_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n [ _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ +_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ +      _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_r_r_a_y_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_w_a_i_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _I_n_d_e_x_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _F_i_e_l_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _B_r_e_a_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ +      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _I_f_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_a_t_c_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ Show Railroad │ │ │ │ -Expression ExpressionWithoutBlock ExpressionWithBlock │ │ │ │ -ExpressionWithoutBlock OuterAttribute ExpressionWithoutBlockNoAttrs │ │ │ │ -ExpressionWithoutBlockNoAttrs LiteralExpression PathExpression │ │ │ │ -OperatorExpression GroupedExpression ArrayExpression AwaitExpression │ │ │ │ -IndexExpression TupleExpression TupleIndexingExpression StructExpression │ │ │ │ -CallExpression MethodCallExpression FieldExpression ClosureExpression │ │ │ │ -AsyncBlockExpression ContinueExpression BreakExpression RangeExpression │ │ │ │ -ReturnExpression UnderscoreExpression MacroInvocation │ │ │ │ -ExpressionWithBlock OuterAttribute ExpressionWithBlockNoAttrs │ │ │ │ -ExpressionWithBlockNoAttrs BlockExpression ConstBlockExpression │ │ │ │ -UnsafeBlockExpression LoopExpression IfExpression MatchExpression │ │ │ │ +LiteralExpression CHAR_LITERAL STRING_LITERAL RAW_STRING_LITERAL BYTE_LITERAL │ │ │ │ +BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL C_STRING_LITERAL │ │ │ │ +RAW_C_STRING_LITERAL INTEGER_LITERAL FLOAT_LITERAL true false │ │ │ │ +AwaitExpression Expression . await │ │ │ │ +MethodCallExpression Expression . PathExprSegment ( CallParams ) │ │ │ │ +ReturnExpression return Expression │ │ │ │ +ClosureExpression async move || | ClosureParameters | Expression - │ │ │ │ +> TypeNoBounds BlockExpression │ │ │ │ +ClosureParameters ClosureParam , ClosureParam , │ │ │ │ +ClosureParam OuterAttribute PatternNoTopAlt : Type │ │ │ │ +FieldExpression Expression . IDENTIFIER │ │ │ │ +IfExpression if Conditions BlockExpression else BlockExpression IfExpression │ │ │ │ +Conditions except StructExpression Expression LetChain │ │ │ │ +LetChain LetChainCondition && LetChainCondition │ │ │ │ +LetChainCondition except ExcludedConditions Expression OuterAttribute let │ │ │ │ +Pattern = except ExcludedConditions Scrutinee │ │ │ │ +ExcludedConditions StructExpression LazyBooleanExpression RangeExpr │ │ │ │ +RangeFromExpr RangeInclusiveExpr AssignmentExpression │ │ │ │ +CompoundAssignmentExpression │ │ │ │ UnderscoreExpression _ │ │ │ │ TupleExpression ( TupleElements ) │ │ │ │ TupleElements Expression , Expression │ │ │ │ TupleIndexingExpression Expression . TUPLE_INDEX │ │ │ │ +ArrayExpression [ ArrayElements ] │ │ │ │ +ArrayElements Expression , Expression , Expression ; Expression │ │ │ │ +IndexExpression Expression [ Expression ] │ │ │ │ StructExpression PathInExpression { StructExprFields StructBase } │ │ │ │ StructExprFields StructExprField , StructExprField , StructBase , │ │ │ │ StructExprField OuterAttribute IDENTIFIER IDENTIFIER TUPLE_INDEX : Expression │ │ │ │ StructBase .. Expression │ │ │ │ -ReturnExpression return Expression │ │ │ │ +PathExpression PathInExpression QualifiedPathInExpression │ │ │ │ RangeExpression RangeExpr RangeFromExpr RangeToExpr RangeFullExpr │ │ │ │ RangeInclusiveExpr RangeToInclusiveExpr │ │ │ │ RangeExpr Expression .. Expression │ │ │ │ RangeFromExpr Expression .. │ │ │ │ RangeToExpr .. Expression │ │ │ │ RangeFullExpr .. │ │ │ │ RangeInclusiveExpr Expression ..= Expression │ │ │ │ RangeToInclusiveExpr ..= Expression │ │ │ │ -PathExpression PathInExpression QualifiedPathInExpression │ │ │ │ -OperatorExpression BorrowExpression DereferenceExpression │ │ │ │ -TryPropagationExpression NegationExpression ArithmeticOrLogicalExpression │ │ │ │ -ComparisonExpression LazyBooleanExpression TypeCastExpression │ │ │ │ -AssignmentExpression CompoundAssignmentExpression │ │ │ │ -BorrowExpression & && Expression & && mut Expression & && raw const Expression │ │ │ │ -& && raw mut Expression │ │ │ │ -DereferenceExpression * Expression │ │ │ │ -TryPropagationExpression Expression ? │ │ │ │ -NegationExpression - Expression ! Expression │ │ │ │ -ArithmeticOrLogicalExpression Expression + Expression Expression - Expression │ │ │ │ -Expression * Expression Expression / Expression Expression % Expression │ │ │ │ -Expression & Expression Expression | Expression Expression ^ Expression │ │ │ │ -Expression << Expression Expression >> Expression │ │ │ │ -ComparisonExpression Expression == Expression Expression != Expression │ │ │ │ -Expression > Expression Expression < Expression Expression >= Expression │ │ │ │ -Expression <= Expression │ │ │ │ -LazyBooleanExpression Expression || Expression Expression && Expression │ │ │ │ -TypeCastExpression Expression as TypeNoBounds │ │ │ │ -AssignmentExpression Expression = Expression │ │ │ │ -CompoundAssignmentExpression Expression += Expression Expression -= Expression │ │ │ │ -Expression *= Expression Expression /= Expression Expression %= Expression │ │ │ │ -Expression &= Expression Expression |= Expression Expression ^= Expression │ │ │ │ -Expression <<= Expression Expression >>= Expression │ │ │ │ -MethodCallExpression Expression . PathExprSegment ( CallParams ) │ │ │ │ MatchExpression match Scrutinee { InnerAttribute MatchArms } │ │ │ │ Scrutinee except StructExpression Expression │ │ │ │ MatchArms MatchArm => ExpressionWithoutBlock , ExpressionWithBlock , MatchArm │ │ │ │ => Expression , │ │ │ │ MatchArm OuterAttribute Pattern MatchArmGuard │ │ │ │ MatchArmGuard if MatchConditions │ │ │ │ MatchConditions MatchGuardChain Expression │ │ │ │ @@ -1393,35 +1161,267 @@ │ │ │ │ PredicateLoopExpression while Conditions BlockExpression │ │ │ │ IteratorLoopExpression for Pattern in except StructExpression Expression │ │ │ │ BlockExpression │ │ │ │ LoopLabel LIFETIME_OR_LABEL : │ │ │ │ BreakExpression break LIFETIME_OR_LABEL Expression │ │ │ │ LabelBlockExpression BlockExpression │ │ │ │ ContinueExpression continue LIFETIME_OR_LABEL │ │ │ │ -LiteralExpression CHAR_LITERAL STRING_LITERAL RAW_STRING_LITERAL BYTE_LITERAL │ │ │ │ -BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL C_STRING_LITERAL │ │ │ │ -RAW_C_STRING_LITERAL INTEGER_LITERAL FLOAT_LITERAL true false │ │ │ │ -IfExpression if Conditions BlockExpression else BlockExpression IfExpression │ │ │ │ -Conditions except StructExpression Expression LetChain │ │ │ │ -LetChain LetChainCondition && LetChainCondition │ │ │ │ -LetChainCondition except ExcludedConditions Expression OuterAttribute let │ │ │ │ -Pattern = except ExcludedConditions Scrutinee │ │ │ │ -ExcludedConditions StructExpression LazyBooleanExpression RangeExpr │ │ │ │ -RangeFromExpr RangeInclusiveExpr AssignmentExpression │ │ │ │ -CompoundAssignmentExpression │ │ │ │ -GroupedExpression ( Expression ) │ │ │ │ -FieldExpression Expression . IDENTIFIER │ │ │ │ -ClosureExpression async move || | ClosureParameters | Expression - │ │ │ │ -> TypeNoBounds BlockExpression │ │ │ │ -ClosureParameters ClosureParam , ClosureParam , │ │ │ │ -ClosureParam OuterAttribute PatternNoTopAlt : Type │ │ │ │ CallExpression Expression ( CallParams ) │ │ │ │ CallParams Expression , Expression , │ │ │ │ +OperatorExpression BorrowExpression DereferenceExpression │ │ │ │ +TryPropagationExpression NegationExpression ArithmeticOrLogicalExpression │ │ │ │ +ComparisonExpression LazyBooleanExpression TypeCastExpression │ │ │ │ +AssignmentExpression CompoundAssignmentExpression │ │ │ │ +BorrowExpression & && Expression & && mut Expression & && raw const Expression │ │ │ │ +& && raw mut Expression │ │ │ │ +DereferenceExpression * Expression │ │ │ │ +TryPropagationExpression Expression ? │ │ │ │ +NegationExpression - Expression ! Expression │ │ │ │ +ArithmeticOrLogicalExpression Expression + Expression Expression - Expression │ │ │ │ +Expression * Expression Expression / Expression Expression % Expression │ │ │ │ +Expression & Expression Expression | Expression Expression ^ Expression │ │ │ │ +Expression << Expression Expression >> Expression │ │ │ │ +ComparisonExpression Expression == Expression Expression != Expression │ │ │ │ +Expression > Expression Expression < Expression Expression >= Expression │ │ │ │ +Expression <= Expression │ │ │ │ +LazyBooleanExpression Expression || Expression Expression && Expression │ │ │ │ +TypeCastExpression Expression as TypeNoBounds │ │ │ │ +AssignmentExpression Expression = Expression │ │ │ │ +CompoundAssignmentExpression Expression += Expression Expression -= Expression │ │ │ │ +Expression *= Expression Expression /= Expression Expression %= Expression │ │ │ │ +Expression &= Expression Expression |= Expression Expression ^= Expression │ │ │ │ +Expression <<= Expression Expression >>= Expression │ │ │ │ +GroupedExpression ( Expression ) │ │ │ │ BlockExpression { InnerAttribute Statements } │ │ │ │ Statements Statement Statement ExpressionWithoutBlock ExpressionWithoutBlock │ │ │ │ AsyncBlockExpression async move BlockExpression │ │ │ │ ConstBlockExpression const BlockExpression │ │ │ │ UnsafeBlockExpression unsafe BlockExpression │ │ │ │ -AwaitExpression Expression . await │ │ │ │ -ArrayExpression [ ArrayElements ] │ │ │ │ -ArrayElements Expression , Expression , Expression ; Expression │ │ │ │ -IndexExpression Expression [ Expression ] │ │ │ │ +Expression ExpressionWithoutBlock ExpressionWithBlock │ │ │ │ +ExpressionWithoutBlock OuterAttribute ExpressionWithoutBlockNoAttrs │ │ │ │ +ExpressionWithoutBlockNoAttrs LiteralExpression PathExpression │ │ │ │ +OperatorExpression GroupedExpression ArrayExpression AwaitExpression │ │ │ │ +IndexExpression TupleExpression TupleIndexingExpression StructExpression │ │ │ │ +CallExpression MethodCallExpression FieldExpression ClosureExpression │ │ │ │ +AsyncBlockExpression ContinueExpression BreakExpression RangeExpression │ │ │ │ +ReturnExpression UnderscoreExpression MacroInvocation │ │ │ │ +ExpressionWithBlock OuterAttribute ExpressionWithBlockNoAttrs │ │ │ │ +ExpressionWithBlockNoAttrs BlockExpression ConstBlockExpression │ │ │ │ +UnsafeBlockExpression LoopExpression IfExpression MatchExpression │ │ │ │ +********** _SS_tt_aa_tt_ee_mm_ee_nn_tt_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_S_t_a_t_e_m_e_n_t → │ │ │ │ +      ; │ │ │ │ +    | _I_t_e_m │ │ │ │ +    | _L_e_t_S_t_a_t_e_m_e_n_t │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t │ │ │ │ +    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +_L_e_t_S_t_a_t_e_m_e_n_t → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ +    ( │ │ │ │ +          = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | = _E_x_p_r_e_s_s_i_o_nexcept _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n or end with a } else │ │ │ │ +_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    )? ; │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k ; │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ;? │ │ │ │ +Show Railroad │ │ │ │ +Statement ; Item LetStatement ExpressionStatement OuterAttribute │ │ │ │ +MacroInvocationSemi │ │ │ │ +LetStatement OuterAttribute let PatternNoTopAlt : Type = Expression = except │ │ │ │ +LazyBooleanExpression or end with a `}` Expression else BlockExpression ; │ │ │ │ +ExpressionStatement ExpressionWithoutBlock ; ExpressionWithBlock ; │ │ │ │ +********** _CC_oo_nn_ff_ii_gg_uu_rr_aa_tt_ii_oo_nn_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ +      _C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t │ │ │ │ +    | true │ │ │ │ +    | false │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) )? │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l → │ │ │ │ +    all ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y → │ │ │ │ +    any ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t → │ │ │ │ +    not ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t → │ │ │ │ +    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ( , _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e )* ,? │ │ │ │ +_C_f_g_A_t_t_r_i_b_u_t_e → cfg ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ +_C_f_g_A_t_t_r_A_t_t_r_i_b_u_t_e → cfg_attr ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e , _C_f_g_A_t_t_r_s? ) │ │ │ │ +_C_f_g_A_t_t_r_s → _A_t_t_r ( , _A_t_t_r )* ,? │ │ │ │ +_C_f_g_S_e_l_e_c_t → _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +_C_f_g_S_e_l_e_c_t_A_r_m_s → │ │ │ │ +    _C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e => │ │ │ │ +    ( │ │ │ │ +        { ^ _T_o_k_e_n_T_r_e_e } ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s ( , _C_f_g_S_e_l_e_c_t_A_r_m_s? )? │ │ │ │ +    ) │ │ │ │ +_C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ +    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e | _ │ │ │ │ +Show Railroad │ │ │ │ +ConfigurationPredicate ConfigurationOption ConfigurationAll ConfigurationAny │ │ │ │ +ConfigurationNot true false │ │ │ │ +ConfigurationOption IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +ConfigurationAll all ( ConfigurationPredicateList ) │ │ │ │ +ConfigurationAny any ( ConfigurationPredicateList ) │ │ │ │ +ConfigurationNot not ( ConfigurationPredicate ) │ │ │ │ +ConfigurationPredicateList ConfigurationPredicate , ConfigurationPredicate , │ │ │ │ +CfgAttribute cfg ( ConfigurationPredicate ) │ │ │ │ +CfgAttrAttribute cfg_attr ( ConfigurationPredicate , CfgAttrs ) │ │ │ │ +CfgAttrs Attr , Attr , │ │ │ │ +CfgSelect CfgSelectArms │ │ │ │ +CfgSelectArms CfgSelectConfigurationPredicate => { no backtracking TokenTree } │ │ │ │ +, CfgSelectArms ExpressionWithBlockNoAttrs , CfgSelectArms │ │ │ │ +ExpressionWithoutBlockNoAttrs , CfgSelectArms │ │ │ │ +CfgSelectConfigurationPredicate ConfigurationPredicate _ │ │ │ │ +********** _AA_ss_ss_ee_mm_bb_ll_yy_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_A_s_m_A_r_g_s → _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g ( , _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g )* ( , _A_s_m_A_t_t_r_O_p_e_r_a_n_d )* │ │ │ │ +,? │ │ │ │ +_F_o_r_m_a_t_S_t_r_i_n_g → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ +_A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _F_o_r_m_a_t_S_t_r_i_n_g │ │ │ │ +_A_s_m_O_p_e_r_a_n_d → │ │ │ │ +      _C_l_o_b_b_e_r_A_b_i │ │ │ │ +    | _A_s_m_O_p_t_i_o_n_s │ │ │ │ +    | _R_e_g_O_p_e_r_a_n_d │ │ │ │ +_A_s_m_A_t_t_r_O_p_e_r_a_n_d → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _A_s_m_O_p_e_r_a_n_d │ │ │ │ +_C_l_o_b_b_e_r_A_b_i → clobber_abi ( _A_b_i ( , _A_b_i )* ,? ) │ │ │ │ +_A_s_m_O_p_t_i_o_n_s → │ │ │ │ +    options ( ( _A_s_m_O_p_t_i_o_n ( , _A_s_m_O_p_t_i_o_n )* ,? )? ) │ │ │ │ +_A_s_m_O_p_t_i_o_n → │ │ │ │ +      pure │ │ │ │ +    | nomem │ │ │ │ +    | readonly │ │ │ │ +    | preserves_flags │ │ │ │ +    | noreturn │ │ │ │ +    | nostack │ │ │ │ +    | att_syntax │ │ │ │ +    | raw │ │ │ │ +_R_e_g_O_p_e_r_a_n_d → ( _P_a_r_a_m_N_a_m_e = )? │ │ │ │ +    ( │ │ │ │ +          _D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | _D_u_a_l_D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | sym _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | const _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | label { _S_t_a_t_e_m_e_n_t_s? } │ │ │ │ +    ) │ │ │ │ +_P_a_r_a_m_N_a_m_e → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ +_D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n => _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_R_e_g_S_p_e_c → _R_e_g_i_s_t_e_r_C_l_a_s_s | _E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r │ │ │ │ +_R_e_g_i_s_t_e_r_C_l_a_s_s → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ +_E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r → _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +_D_i_r_S_p_e_c → │ │ │ │ +      in │ │ │ │ +    | out │ │ │ │ +    | lateout │ │ │ │ +_D_u_a_l_D_i_r_S_p_e_c → │ │ │ │ +      inout │ │ │ │ +    | inlateout │ │ │ │ +Show Railroad │ │ │ │ +AsmArgs AsmAttrFormatString , AsmAttrFormatString , AsmAttrOperand , │ │ │ │ +FormatString STRING_LITERAL RAW_STRING_LITERAL MacroInvocation │ │ │ │ +AsmAttrFormatString OuterAttribute FormatString │ │ │ │ +AsmOperand ClobberAbi AsmOptions RegOperand │ │ │ │ +AsmAttrOperand OuterAttribute AsmOperand │ │ │ │ +ClobberAbi clobber_abi ( Abi , Abi , ) │ │ │ │ +AsmOptions options ( AsmOption , AsmOption , ) │ │ │ │ +AsmOption pure nomem readonly preserves_flags noreturn nostack att_syntax raw │ │ │ │ +RegOperand ParamName = DirSpec ( RegSpec ) Expression DualDirSpec ( RegSpec ) │ │ │ │ +DualDirSpecExpression sym PathExpression const Expression label { Statements } │ │ │ │ +ParamName IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER │ │ │ │ +DualDirSpecExpression Expression Expression => Expression │ │ │ │ +RegSpec RegisterClass ExplicitRegister │ │ │ │ +RegisterClass IDENTIFIER_OR_KEYWORD │ │ │ │ +ExplicitRegister STRING_LITERAL │ │ │ │ +DirSpec in out lateout │ │ │ │ +DualDirSpec inout inlateout │ │ │ │ +********** _MM_ii_ss_cc_ee_ll_ll_aa_nn_ee_oo_uu_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_T_y_p_e_P_a_r_a_m_B_o_u_n_d_s → _T_y_p_e_P_a_r_a_m_B_o_u_n_d ( + _T_y_p_e_P_a_r_a_m_B_o_u_n_d )* +? │ │ │ │ +_T_y_p_e_P_a_r_a_m_B_o_u_n_d → _L_i_f_e_t_i_m_e | _T_r_a_i_t_B_o_u_n_d | _U_s_e_B_o_u_n_d │ │ │ │ +_T_r_a_i_t_B_o_u_n_d → │ │ │ │ +      ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h │ │ │ │ +    | ( ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h ) │ │ │ │ +_L_i_f_e_t_i_m_e_B_o_u_n_d_s → ( _L_i_f_e_t_i_m_e + )* _L_i_f_e_t_i_m_e? │ │ │ │ +_L_i_f_e_t_i_m_e → │ │ │ │ +      _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L │ │ │ │ +    | 'static │ │ │ │ +    | '_ │ │ │ │ +_U_s_e_B_o_u_n_d → use _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s │ │ │ │ +_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ +      < > │ │ │ │ +    | < ( _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g , )* _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ +_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g → │ │ │ │ +      _L_i_f_e_t_i_m_e │ │ │ │ +    | _I_D_E_N_T_I_F_I_E_R │ │ │ │ +    | Self │ │ │ │ +_F_o_r_L_i_f_e_t_i_m_e_s → for _G_e_n_e_r_i_c_P_a_r_a_m_s │ │ │ │ +Show Railroad │ │ │ │ +TypeParamBounds TypeParamBound + TypeParamBound + │ │ │ │ +TypeParamBound Lifetime TraitBound UseBound │ │ │ │ +TraitBound ? ForLifetimes TypePath ( ? ForLifetimes TypePath ) │ │ │ │ +LifetimeBounds Lifetime + Lifetime │ │ │ │ +Lifetime LIFETIME_OR_LABEL 'static '_ │ │ │ │ +UseBound use UseBoundGenericArgs │ │ │ │ +UseBoundGenericArgs < > < UseBoundGenericArg , UseBoundGenericArg , > │ │ │ │ +UseBoundGenericArg Lifetime IDENTIFIER Self │ │ │ │ +ForLifetimes for GenericParams │ │ │ │ +********** _PP_aa_tt_hh_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_S_i_m_p_l_e_P_a_t_h → │ │ │ │ +    ::? _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t ( :: _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ +_S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R | super | self | crate | $crate │ │ │ │ +_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    ::? _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )* │ │ │ │ +_P_a_t_h_E_x_p_r_S_e_g_m_e_n_t → │ │ │ │ +    _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( :: _G_e_n_e_r_i_c_A_r_g_s )? │ │ │ │ +_P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R | super | self | Self | crate | $crate │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ +      < > │ │ │ │ +    | < ( _G_e_n_e_r_i_c_A_r_g , )* _G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ +_G_e_n_e_r_i_c_A_r_g → │ │ │ │ +    _L_i_f_e_t_i_m_e | _T_y_p_e | _G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t | _G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g | _G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t → │ │ │ │ +      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | - _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? = _T_y_p_e │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )+ │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e → < _T_y_p_e ( as _T_y_p_e_P_a_t_h )? > │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )+ │ │ │ │ +_T_y_p_e_P_a_t_h → ::? _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ +_T_y_p_e_P_a_t_h_S_e_g_m_e_n_t → _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( ::? ( _G_e_n_e_r_i_c_A_r_g_s | _T_y_p_e_P_a_t_h_F_n ) )? │ │ │ │ +_T_y_p_e_P_a_t_h_F_n → ( _T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s? ) ( -> _T_y_p_e_N_o_B_o_u_n_d_s )? │ │ │ │ +_T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s → _T_y_p_e ( , _T_y_p_e )* ,? │ │ │ │ +Show Railroad │ │ │ │ +SimplePath :: SimplePathSegment :: SimplePathSegment │ │ │ │ +SimplePathSegment IDENTIFIER super self crate $crate │ │ │ │ +PathInExpression :: PathExprSegment :: PathExprSegment │ │ │ │ +PathExprSegment PathIdentSegment :: GenericArgs │ │ │ │ +PathIdentSegment IDENTIFIER super self Self crate $crate │ │ │ │ +GenericArgs < > < GenericArg , GenericArg , > │ │ │ │ +GenericArg Lifetime Type GenericArgsConst GenericArgsBinding GenericArgsBounds │ │ │ │ +GenericArgsConst BlockExpression LiteralExpression - LiteralExpression │ │ │ │ +SimplePathSegment │ │ │ │ +GenericArgsBinding IDENTIFIER GenericArgs = Type │ │ │ │ +GenericArgsBounds IDENTIFIER GenericArgs : TypeParamBounds │ │ │ │ +QualifiedPathInExpression QualifiedPathType :: PathExprSegment │ │ │ │ +QualifiedPathType < Type as TypePath > │ │ │ │ +QualifiedPathInType QualifiedPathType :: TypePathSegment │ │ │ │ +TypePath :: TypePathSegment :: TypePathSegment │ │ │ │ +TypePathSegment PathIdentSegment :: GenericArgs TypePathFn │ │ │ │ +TypePathFn ( TypePathFnInputs ) -> TypeNoBounds │ │ │ │ +TypePathFnInputs Type , Type , │ │ ├── ./usr/share/doc/rust-doc/html/reference/print.html │ │ │ @@ -54129,3314 +54129,6311 @@ │ │ │
│ │ │ │ │ │
│ │ │

Appendices

│ │ │
│ │ │

Grammar summary

│ │ │

The following is a summary of the grammar production rules. For details on the syntax of this grammar, see notation.grammar.syntax.

│ │ │ -

Attributes summary

│ │ │ +

Items summary

│ │ │
│ │ │

Syntax │ │ │
│ │ │ -ProcMacroDeriveAttribute →
    proc_macro_derive ( DeriveMacroName ( , DeriveMacroAttributes )? ,? )

│ │ │ -

DeriveMacroName → IDENTIFIER

│ │ │ -

DeriveMacroAttributes →
    attributes ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ -

InnerAttribute → # ! [ Attr ]

│ │ │ -

OuterAttribute → # [ Attr ]

│ │ │ -

Attr →
      SimplePath AttrInput?
    | unsafe ( SimplePath AttrInput? )

│ │ │ -

AttrInput →
      DelimTokenTree
    | = Expression

│ │ │ -

MetaItem →
      SimplePath
    | SimplePath = Expression
    | SimplePath ( MetaSeq? )

│ │ │ -

MetaSeq →
    MetaItemInner ( , MetaItemInner )* ,?

│ │ │ -

MetaItemInner →
      MetaItem
    | Expression

│ │ │ -

MetaWord →
    IDENTIFIER

│ │ │ -

MetaNameValueStr →
    IDENTIFIER = ( STRING_LITERAL | RAW_STRING_LITERAL )

│ │ │ -

MetaListPaths →
    IDENTIFIER ( ( SimplePath ( , SimplePath )* ,? )? )

│ │ │ -

MetaListIdents →
    IDENTIFIER ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ -

MetaListNameValueStr →
    IDENTIFIER ( ( MetaNameValueStr ( , MetaNameValueStr )* ,? )? )

│ │ │ -

CollapseDebuginfoAttribute → collapse_debuginfo ( CollapseDebuginfoOption )

│ │ │ -

CollapseDebuginfoOption →
      yes
    | no
    | external

│ │ │ -

InlineAttribute →
      inline ( always )
    | inline ( never )
    | inline

│ │ │ +Item →
    OuterAttribute* ( VisItem | MacroItem )

│ │ │ +

VisItem →
    Visibility?
    (
        Module
      | ExternCrate
      | UseDeclaration
      | Function
      | TypeAlias
      | Struct
      | Enumeration
      | Union
      | ConstantItem
      | StaticItem
      | Trait
      | Implementation
      | ExternBlock
    )

│ │ │ +

MacroItem →
      MacroInvocationSemi
    | MacroRulesDefinition

│ │ │ +

Crate →
    InnerAttribute*
    Item*

│ │ │ +

Visibility →
      pub
    | pub ( crate )
    | pub ( self )
    | pub ( super )
    | pub ( in SimplePath )

│ │ │ +

Trait →
    unsafe? trait IDENTIFIER GenericParams? ( : TypeParamBounds? )? WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

TypeAlias →
    type IDENTIFIER GenericParams? ( : TypeParamBounds )?
        WhereClause?
        ( = Type WhereClause? )? ;

│ │ │ +

ConstantItem →
    const ( IDENTIFIER | _ ) : Type ( = Expression )? ;

│ │ │ +

Struct →
      StructStruct
    | TupleStruct

│ │ │ +

StructStruct →
    struct IDENTIFIER GenericParams? WhereClause? ( { StructFields? } | ; )

│ │ │ +

TupleStruct →
    struct IDENTIFIER GenericParams? ( TupleFields? ) WhereClause? ;

│ │ │ +

StructFields → StructField ( , StructField )* ,?

│ │ │ +

StructField → OuterAttribute* Visibility? IDENTIFIER : Type

│ │ │ +

TupleFields → TupleField ( , TupleField )* ,?

│ │ │ +

TupleField → OuterAttribute* Visibility? Type

│ │ │ +

Implementation → InherentImpl | TraitImpl

│ │ │ +

InherentImpl →
    impl GenericParams? Type WhereClause? {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

TraitImpl →
    unsafe? impl GenericParams? !? TypePath for Type
    WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ +

Function →
    FunctionQualifiers fn IDENTIFIER GenericParams?
        ( FunctionParameters? )
        FunctionReturnType? WhereClause?
        ( BlockExpression | ; )

│ │ │ +

FunctionQualifiers → const? async? ItemSafety? ( extern Abi? )?

│ │ │ +

ItemSafety → safe | unsafe

│ │ │ +

Abi → STRING_LITERAL | RAW_STRING_LITERAL

│ │ │ +

FunctionParameters →
      SelfParam ,?
    | ( SelfParam , )? FunctionParam ( , FunctionParam )* ,?

│ │ │ +

SelfParam → OuterAttribute* ( ShorthandSelf | TypedSelf )

│ │ │ +

ShorthandSelf → ( & | & Lifetime )? mut? self

│ │ │ +

TypedSelf → mut? self : Type

│ │ │ +

FunctionParam → OuterAttribute* ( FunctionParamPattern | ... | Type )

│ │ │ +

FunctionParamPattern → PatternNoTopAlt : ( Type | ... )

│ │ │ +

FunctionReturnType → -> Type

│ │ │ +

GenericParams → < ( GenericParam ( , GenericParam )* ,? )? >

│ │ │ +

GenericParam → OuterAttribute* ( LifetimeParam | TypeParam | ConstParam )

│ │ │ +

LifetimeParam → Lifetime ( : LifetimeBounds )?

│ │ │ +

TypeParam → IDENTIFIER ( : TypeParamBounds? )? ( = Type )?

│ │ │ +

ConstParam →
    const IDENTIFIER : Type
    ( = ( BlockExpression | IDENTIFIER | -? LiteralExpression ) )?

│ │ │ +

WhereClause → where ( WhereClauseItem , )* WhereClauseItem?

│ │ │ +

WhereClauseItem →
      LifetimeWhereClauseItem
    | TypeBoundWhereClauseItem

│ │ │ +

LifetimeWhereClauseItem → Lifetime : LifetimeBounds

│ │ │ +

TypeBoundWhereClauseItem → ForLifetimes? Type : TypeParamBounds?

│ │ │ +

StaticItem →
    ItemSafety? static mut? IDENTIFIER : Type ( = Expression )? ;

│ │ │ +

ExternCrate → extern crate CrateRef AsClause? ;

│ │ │ +

CrateRef → IDENTIFIER | self

│ │ │ +

AsClause → as ( IDENTIFIER | _ )

│ │ │ +

AssociatedItem →
    OuterAttribute* (
        MacroInvocationSemi
      | ( Visibility? ( TypeAlias | ConstantItem | Function ) )
    )

│ │ │ +

ExternBlock →
    unsafe? extern Abi? {
        InnerAttribute*
        ExternalItem*
    }

│ │ │ +

ExternalItem →
    OuterAttribute* (
        MacroInvocationSemi
      | Visibility? StaticItem
      | Visibility? Function
    )

│ │ │ +

Union →
    union IDENTIFIER GenericParams? WhereClause? { StructFields? }

│ │ │ +

UseDeclaration → use UseTree ;

│ │ │ +

UseTree →
      ( SimplePath? :: )? *
    | ( SimplePath? :: )? { ( UseTree ( , UseTree )* ,? )? }
    | SimplePath ( as ( IDENTIFIER | _ ) )?

│ │ │ +

Module →
      unsafe? mod IDENTIFIER ;
    | unsafe? mod IDENTIFIER {
        InnerAttribute*
        Item*
      }

│ │ │ +

Enumeration →
    enum IDENTIFIER GenericParams? WhereClause? { EnumVariants? }

│ │ │ +

EnumVariants → EnumVariant ( , EnumVariant )* ,?

│ │ │ +

EnumVariant →
    OuterAttribute* Visibility?
    IDENTIFIER ( EnumVariantTuple | EnumVariantStruct )? EnumVariantDiscriminant?

│ │ │ +

EnumVariantTuple → ( TupleFields? )

│ │ │ +

EnumVariantStruct → { StructFields? }

│ │ │ +

EnumVariantDiscriminant → = Expression

│ │ │

│ │ │
│ │ │ │ │ │
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DeriveMacroAttributes │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -attributes │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternCrate │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ + │ │ │ + │ │ │ +UseDeclaration │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ + │ │ │ + │ │ │ +Function │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Struct │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Enumeration │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Union │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Trait │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Implementation │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Attr │ │ │ + │ │ │ + │ │ │ +ExternBlock │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MetaItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +super │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +pub │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +in │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaSeq │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaListPaths │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +type │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +TypeParamBounds │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaListNameValueStr │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +const │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ IDENTIFIER │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +_ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MetaNameValueStr │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MetaNameValueStr │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InlineAttribute │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -inline │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -always │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inline │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -never │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inline │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Configuration summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -ConfigurationPredicate →
      ConfigurationOption
    | ConfigurationAll
    | ConfigurationAny
    | ConfigurationNot
    | true
    | false

│ │ │ -

ConfigurationOption →
    IDENTIFIER ( = ( STRING_LITERAL | RAW_STRING_LITERAL ) )?

│ │ │ -

ConfigurationAll →
    all ( ConfigurationPredicateList? )

│ │ │ -

ConfigurationAny →
    any ( ConfigurationPredicateList? )

│ │ │ -

ConfigurationNot →
    not ( ConfigurationPredicate )

│ │ │ -

ConfigurationPredicateList →
    ConfigurationPredicate ( , ConfigurationPredicate )* ,?

│ │ │ -

CfgAttribute → cfg ( ConfigurationPredicate )

│ │ │ -

CfgAttrAttribute → cfg_attr ( ConfigurationPredicate , CfgAttrs? )

│ │ │ -

CfgAttrs → Attr ( , Attr )* ,?

│ │ │ -

CfgSelect → CfgSelectArms?

│ │ │ -

CfgSelectArms →
    CfgSelectConfigurationPredicate =>
    (
        { ^ TokenTree } ,? CfgSelectArms?
      | ExpressionWithBlockNoAttrs ,? CfgSelectArms?
      | ExpressionWithoutBlockNoAttrs ( , CfgSelectArms? )?
    )

│ │ │ -

CfgSelectConfigurationPredicate →
    ConfigurationPredicate | _

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationPredicate │ │ │ + │ │ │ + │ │ │ +TupleStruct │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConfigurationOption │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +struct │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationAll │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationAny │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationNot │ │ │ + │ │ │ + │ │ │ +TupleFields │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -true │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -false │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConfigurationAny │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -any │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConfigurationPredicateList │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CfgSelectConfigurationPredicate │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -=> │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -{ │ │ │ + │ │ │ + │ │ │ +impl │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +for │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExpressionWithoutBlockNoAttrs │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CfgSelectArms │ │ │ + │ │ │ + │ │ │ +AssociatedItem │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ - │ │ │ -

Lexer summary

│ │ │ -
│ │ │ -

Lexer │ │ │ -
│ │ │ -WHITESPACE →
      U+0009 // Horizontal tab, '\t'
    | U+000A // Line feed, '\n'
    | U+000B // Vertical tab
    | U+000C // Form feed
    | U+000D // Carriage return, '\r'
    | U+0020 // Space, ' '
    | U+0085 // Next line
    | U+200E // Left-to-right mark
    | U+200F // Right-to-left mark
    | U+2028 // Line separator
    | U+2029 // Paragraph separator

│ │ │ -

TAB → U+0009 // Horizontal tab, '\t'

│ │ │ -

LF → U+000A // Line feed, '\n'

│ │ │ -

CR → U+000D // Carriage return, '\r'

│ │ │ -

Token →
      RESERVED_TOKEN
    | RAW_IDENTIFIER
    | CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | FLOAT_LITERAL
    | INTEGER_LITERAL
    | LIFETIME_TOKEN
    | PUNCTUATION
    | IDENTIFIER_OR_KEYWORD

│ │ │ -

SUFFIX →
      _ ^ XID_Continue+
    | XID_Start XID_Continue*

│ │ │ -

CHAR_LITERAL →
    '
        ( ~[' \ LF CR TAB] | QUOTE_ESCAPE | ASCII_ESCAPE | UNICODE_ESCAPE )
    ' SUFFIX?

│ │ │ -

QUOTE_ESCAPE → \' | \"

│ │ │ -

ASCII_ESCAPE →
      \x OCT_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0

│ │ │ -

UNICODE_ESCAPE →
    \u{ ( HEX_DIGIT _* )1..=6valid hex char value }

│ │ │ -

STRING_LITERAL →
    " (
        ~[" \ CR]
      | QUOTE_ESCAPE
      | ASCII_ESCAPE
      | UNICODE_ESCAPE
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ -

STRING_CONTINUE → \ LF

│ │ │ -

RAW_STRING_LITERAL →
      r " ^ RAW_STRING_CONTENT " SUFFIX?
    | r #n:1..=255 ^ " RAW_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_STRING_CONTENT → ( !" ~CR )*

│ │ │ -

RAW_STRING_CONTENT_HASHED → ( !( " #n ) ~CR )*

│ │ │ -

BYTE_LITERAL →
    b' ^ ( ASCII_FOR_CHAR | BYTE_ESCAPE ) ' SUFFIX?

│ │ │ -

ASCII_FOR_CHAR → ![' \ LF CR TAB] ASCII

│ │ │ -

BYTE_ESCAPE →
      \x HEX_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0 | \' | \"

│ │ │ -

BYTE_STRING_LITERAL →
    b" ^ ( ASCII_FOR_STRING | BYTE_ESCAPE | STRING_CONTINUE )* " SUFFIX?

│ │ │ -

ASCII_FOR_STRING → ![" \ CR] ASCII

│ │ │ -

RAW_BYTE_STRING_LITERAL →
      br " ^ RAW_BYTE_STRING_CONTENT " SUFFIX?
    | br #n:1..=255 ^ " RAW_BYTE_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_BYTE_STRING_CONTENT → ( !" ASCII_FOR_RAW )*

│ │ │ -

RAW_BYTE_STRING_CONTENT_HASHED → ( !( " #n ) ASCII_FOR_RAW )*

│ │ │ -

ASCII_FOR_RAW → !CR ASCII

│ │ │ -

C_STRING_LITERAL →
    c" ^ (
        ~[" \ CR NUL]
      | BYTE_ESCAPEexcept \0 or \x00
      | UNICODE_ESCAPEexcept \u{0}, \u{00}, …, \u{000000}
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ -

RAW_C_STRING_LITERAL →
      cr " ^ RAW_C_STRING_CONTENT " SUFFIX?
    | cr #n:1..=255 ^ " RAW_C_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ -

RAW_C_STRING_CONTENT → ( !" ~[CR NUL] )*

│ │ │ -

RAW_C_STRING_CONTENT_HASHED → ( !( " #n ) ~[CR NUL] )*

│ │ │ -

INTEGER_LITERAL →
    ( BIN_LITERAL | OCT_LITERAL | HEX_LITERAL | DEC_LITERAL )
    ^ !RESERVED_FLOAT SUFFIX?

│ │ │ -

DEC_LITERAL → DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ -

BIN_LITERAL → 0b ^ _* BIN_DIGIT ( BIN_DIGIT | _ )* ![e E 2-9]

│ │ │ -

OCT_LITERAL → 0o ^ _* OCT_DIGIT ( OCT_DIGIT | _ )* ![e E 8-9]

│ │ │ -

HEX_LITERAL → 0x ^ _* HEX_DIGIT ( HEX_DIGIT | _ )*

│ │ │ -

BIN_DIGIT → [0-1]

│ │ │ -

OCT_DIGIT → [0-7]

│ │ │ -

DEC_DIGIT → [0-9]

│ │ │ -

HEX_DIGIT → [0-9 a-f A-F]

│ │ │ -

RESERVED_FLOAT → . !( . | _ | XID_Start )

│ │ │ -

TUPLE_INDEX → DEC_LITERAL | BIN_LITERAL | OCT_LITERAL | HEX_LITERAL

│ │ │ -

FLOAT_LITERAL →
      DEC_LITERAL ( . DEC_LITERAL )? FLOAT_EXPONENT SUFFIX?
    | DEC_LITERAL . DEC_LITERAL SUFFIX?
    | DEC_LITERAL . !( . | _ | XID_Start )

│ │ │ -

FLOAT_EXPONENT →
    ( e | E ) ^ ( + | - )? _* DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ -

LIFETIME_TOKEN →
      RAW_LIFETIME
    | ' IDENTIFIER_OR_KEYWORD !'

│ │ │ -

LIFETIME_OR_LABEL →
      RAW_LIFETIME
    | ' NON_KEYWORD_IDENTIFIER !'

│ │ │ -

RAW_LIFETIME →
    'r# ^ IDENTIFIER_OR_KEYWORD !'

│ │ │ -

RESERVED_RAW_LIFETIME → 'r# ( _ | crate | self | Self | super ) !( ' | XID_Continue )

│ │ │ -

PUNCTUATION →
      ...
    | ..=
    | <<=
    | >>=
    | !=
    | %=
    | &&
    | &=
    | *=
    | +=
    | -=
    | ->
    | ..
    | /=
    | ::
    | <-
    | <<
    | <=
    | ==
    | =>
    | >=
    | >>
    | ^=
    | |=
    | ||
    | !
    | #
    | $
    | %
    | &
    | (
    | )
    | *
    | +
    | ,
    | -
    | .
    | /
    | :
    | ;
    | <
    | =
    | >
    | ?
    | @
    | [
    | ]
    | ^
    | {
    | |
    | }
    | ~

│ │ │ -

RESERVED_TOKEN →
      RESERVED_GUARDED_STRING_LITERAL
    | RESERVED_POUNDS
    | RESERVED_RAW_IDENTIFIER
    | RESERVED_RAW_LIFETIME
    | RESERVED_TOKEN_DOUBLE_QUOTE
    | RESERVED_TOKEN_LIFETIME
    | RESERVED_TOKEN_POUND
    | RESERVED_TOKEN_SINGLE_QUOTE

│ │ │ -

RESERVED_TOKEN_DOUBLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b or c or r or br or cr "

│ │ │ -

RESERVED_TOKEN_SINGLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b '

│ │ │ -

RESERVED_TOKEN_POUND →
    IDENTIFIER_OR_KEYWORDexcept r or br or cr #

│ │ │ -

RESERVED_TOKEN_LIFETIME →
    ' IDENTIFIER_OR_KEYWORDexcept r #

│ │ │ -

RESERVED_GUARDED_STRING_LITERAL → #+ STRING_LITERAL

│ │ │ -

RESERVED_POUNDS → #2..

│ │ │ -

SHEBANG →
    #! !( ( WHITESPACE | LINE_COMMENT | BLOCK_COMMENT )* [ )
    ~LF* ( LF | EOF )

│ │ │ -

CHAR → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value

│ │ │ -

ASCII → [U+0000-U+007F]

│ │ │ -

NUL → U+0000

│ │ │ -

EOF → !CHAR // End of file or input

│ │ │ -

IDENTIFIER_OR_KEYWORD → ( XID_Start | _ ) XID_Continue*

│ │ │ -

XID_Start → <XID_Start defined by Unicode>

│ │ │ -

XID_Continue → <XID_Continue defined by Unicode>

│ │ │ -

RAW_IDENTIFIER → r# IDENTIFIER_OR_KEYWORD

│ │ │ -

NON_KEYWORD_IDENTIFIER → IDENTIFIER_OR_KEYWORDexcept a strict or reserved keyword

│ │ │ -

IDENTIFIER → NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

│ │ │ -

RESERVED_RAW_IDENTIFIER →
    r# ( _ | crate | self | Self | super ) !XID_Continue

│ │ │ -

COMMENT →
      LINE_COMMENT
    | INNER_LINE_DOC
    | OUTER_LINE_DOC
    | INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ -

LINE_COMMENT →
      // ( ~[/ ! LF] | // ) ~LF*
    | // EOF
    | //immediately followed by LF

│ │ │ -

BLOCK_COMMENT →
    /* ^
      ( BLOCK_COMMENT_OR_DOC | ( !*/ CHAR ) )*
    */

│ │ │ -

INNER_LINE_DOC →
    //! ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ -

LINE_DOC_COMMENT_CONTENT → ( !CR ~LF )*

│ │ │ -

INNER_BLOCK_DOC →
    /*! ^ ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )* */

│ │ │ -

OUTER_LINE_DOC →
    /// ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ -

OUTER_BLOCK_DOC →
    /** ![* /]
      ^
      ( ~* | BLOCK_COMMENT_OR_DOC )
      ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )*
    */

│ │ │ -

BLOCK_CHAR → ( !( */ | CR ) CHAR )

│ │ │ -

BLOCK_COMMENT_OR_DOC →
      INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WHITESPACE │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0009 │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+000A │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -U+000B │ │ │ - │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+000C │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionParameters │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -U+000D │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0020 │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionReturnType │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0085 │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+200E │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+200F │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -U+2028 │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+2029 │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FunctionParameters │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +SelfParam │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ +SelfParam │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BYTE_STRING_LITERAL │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +FunctionParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +FunctionParam │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_C_STRING_LITERAL │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +ShorthandSelf │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -_ │ │ │ + │ │ │ + │ │ │ +& │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +& │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ + │ │ │ + │ │ │ +Lifetime │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mut │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -\u{ │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -valid hex char value │ │ │ - │ │ │ - │ │ │ - │ │ │ -at most 5 more times │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -HEX_DIGIT │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -_ │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -} │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +GenericParam │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -\ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CR │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ + │ │ │ + │ │ │ +LifetimeParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ +TypeParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ +ConstParam │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UNICODE_ESCAPE │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ +ConstParam │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -r │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ +const │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ +: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -repeat count n │ │ │ - │ │ │ - │ │ │ - │ │ │ -at most 254 more times │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -# │ │ │ + │ │ │ + │ │ │ +- │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SUFFIX │ │ │ + │ │ │ + │ │ │ +LiteralExpression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ItemSafety │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -' │ │ │ + │ │ │ + │ │ │ +static │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -\ │ │ │ + │ │ │ + │ │ │ +mut │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LF │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CR │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TAB │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CrateRef │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssociatedItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeAlias │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstantItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Function │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +extern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Abi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternalItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExternalItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StaticItem │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Function │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Union │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +union │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseDeclaration │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +use │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +:: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +:: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UseTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Module │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mod │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +mod │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Item │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Enumeration │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +enum │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WhereClause │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariants │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariants │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Visibility │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantTuple │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantStruct │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantTuple │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantStruct │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructFields │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ +

Lexer summary

│ │ │ +
│ │ │ +

Lexer │ │ │ +
│ │ │ +CHAR → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value

│ │ │ +

ASCII → [U+0000-U+007F]

│ │ │ +

NUL → U+0000

│ │ │ +

EOF → !CHAR // End of file or input

│ │ │ +

SHEBANG →
    #! !( ( WHITESPACE | LINE_COMMENT | BLOCK_COMMENT )* [ )
    ~LF* ( LF | EOF )

│ │ │ +

COMMENT →
      LINE_COMMENT
    | INNER_LINE_DOC
    | OUTER_LINE_DOC
    | INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ +

LINE_COMMENT →
      // ( ~[/ ! LF] | // ) ~LF*
    | // EOF
    | //immediately followed by LF

│ │ │ +

BLOCK_COMMENT →
    /* ^
      ( BLOCK_COMMENT_OR_DOC | ( !*/ CHAR ) )*
    */

│ │ │ +

INNER_LINE_DOC →
    //! ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ +

LINE_DOC_COMMENT_CONTENT → ( !CR ~LF )*

│ │ │ +

INNER_BLOCK_DOC →
    /*! ^ ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )* */

│ │ │ +

OUTER_LINE_DOC →
    /// ^ LINE_DOC_COMMENT_CONTENT ( LF | EOF )

│ │ │ +

OUTER_BLOCK_DOC →
    /** ![* /]
      ^
      ( ~* | BLOCK_COMMENT_OR_DOC )
      ( BLOCK_COMMENT_OR_DOC | BLOCK_CHAR )*
    */

│ │ │ +

BLOCK_CHAR → ( !( */ | CR ) CHAR )

│ │ │ +

BLOCK_COMMENT_OR_DOC →
      INNER_BLOCK_DOC
    | OUTER_BLOCK_DOC
    | BLOCK_COMMENT

│ │ │ +

Token →
      RESERVED_TOKEN
    | RAW_IDENTIFIER
    | CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | FLOAT_LITERAL
    | INTEGER_LITERAL
    | LIFETIME_TOKEN
    | PUNCTUATION
    | IDENTIFIER_OR_KEYWORD

│ │ │ +

SUFFIX →
      _ ^ XID_Continue+
    | XID_Start XID_Continue*

│ │ │ +

CHAR_LITERAL →
    '
        ( ~[' \ LF CR TAB] | QUOTE_ESCAPE | ASCII_ESCAPE | UNICODE_ESCAPE )
    ' SUFFIX?

│ │ │ +

QUOTE_ESCAPE → \' | \"

│ │ │ +

ASCII_ESCAPE →
      \x OCT_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0

│ │ │ +

UNICODE_ESCAPE →
    \u{ ( HEX_DIGIT _* )1..=6valid hex char value }

│ │ │ +

STRING_LITERAL →
    " (
        ~[" \ CR]
      | QUOTE_ESCAPE
      | ASCII_ESCAPE
      | UNICODE_ESCAPE
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ +

STRING_CONTINUE → \ LF

│ │ │ +

RAW_STRING_LITERAL →
      r " ^ RAW_STRING_CONTENT " SUFFIX?
    | r #n:1..=255 ^ " RAW_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_STRING_CONTENT → ( !" ~CR )*

│ │ │ +

RAW_STRING_CONTENT_HASHED → ( !( " #n ) ~CR )*

│ │ │ +

BYTE_LITERAL →
    b' ^ ( ASCII_FOR_CHAR | BYTE_ESCAPE ) ' SUFFIX?

│ │ │ +

ASCII_FOR_CHAR → ![' \ LF CR TAB] ASCII

│ │ │ +

BYTE_ESCAPE →
      \x HEX_DIGIT HEX_DIGIT
    | \n | \r | \t | \\ | \0 | \' | \"

│ │ │ +

BYTE_STRING_LITERAL →
    b" ^ ( ASCII_FOR_STRING | BYTE_ESCAPE | STRING_CONTINUE )* " SUFFIX?

│ │ │ +

ASCII_FOR_STRING → ![" \ CR] ASCII

│ │ │ +

RAW_BYTE_STRING_LITERAL →
      br " ^ RAW_BYTE_STRING_CONTENT " SUFFIX?
    | br #n:1..=255 ^ " RAW_BYTE_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_BYTE_STRING_CONTENT → ( !" ASCII_FOR_RAW )*

│ │ │ +

RAW_BYTE_STRING_CONTENT_HASHED → ( !( " #n ) ASCII_FOR_RAW )*

│ │ │ +

ASCII_FOR_RAW → !CR ASCII

│ │ │ +

C_STRING_LITERAL →
    c" ^ (
        ~[" \ CR NUL]
      | BYTE_ESCAPEexcept \0 or \x00
      | UNICODE_ESCAPEexcept \u{0}, \u{00}, …, \u{000000}
      | STRING_CONTINUE
    )* " SUFFIX?

│ │ │ +

RAW_C_STRING_LITERAL →
      cr " ^ RAW_C_STRING_CONTENT " SUFFIX?
    | cr #n:1..=255 ^ " RAW_C_STRING_CONTENT_HASHED " #n SUFFIX?

│ │ │ +

RAW_C_STRING_CONTENT → ( !" ~[CR NUL] )*

│ │ │ +

RAW_C_STRING_CONTENT_HASHED → ( !( " #n ) ~[CR NUL] )*

│ │ │ +

INTEGER_LITERAL →
    ( BIN_LITERAL | OCT_LITERAL | HEX_LITERAL | DEC_LITERAL )
    ^ !RESERVED_FLOAT SUFFIX?

│ │ │ +

DEC_LITERAL → DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ +

BIN_LITERAL → 0b ^ _* BIN_DIGIT ( BIN_DIGIT | _ )* ![e E 2-9]

│ │ │ +

OCT_LITERAL → 0o ^ _* OCT_DIGIT ( OCT_DIGIT | _ )* ![e E 8-9]

│ │ │ +

HEX_LITERAL → 0x ^ _* HEX_DIGIT ( HEX_DIGIT | _ )*

│ │ │ +

BIN_DIGIT → [0-1]

│ │ │ +

OCT_DIGIT → [0-7]

│ │ │ +

DEC_DIGIT → [0-9]

│ │ │ +

HEX_DIGIT → [0-9 a-f A-F]

│ │ │ +

RESERVED_FLOAT → . !( . | _ | XID_Start )

│ │ │ +

TUPLE_INDEX → DEC_LITERAL | BIN_LITERAL | OCT_LITERAL | HEX_LITERAL

│ │ │ +

FLOAT_LITERAL →
      DEC_LITERAL ( . DEC_LITERAL )? FLOAT_EXPONENT SUFFIX?
    | DEC_LITERAL . DEC_LITERAL SUFFIX?
    | DEC_LITERAL . !( . | _ | XID_Start )

│ │ │ +

FLOAT_EXPONENT →
    ( e | E ) ^ ( + | - )? _* DEC_DIGIT ( DEC_DIGIT | _ )*

│ │ │ +

LIFETIME_TOKEN →
      RAW_LIFETIME
    | ' IDENTIFIER_OR_KEYWORD !'

│ │ │ +

LIFETIME_OR_LABEL →
      RAW_LIFETIME
    | ' NON_KEYWORD_IDENTIFIER !'

│ │ │ +

RAW_LIFETIME →
    'r# ^ IDENTIFIER_OR_KEYWORD !'

│ │ │ +

RESERVED_RAW_LIFETIME → 'r# ( _ | crate | self | Self | super ) !( ' | XID_Continue )

│ │ │ +

PUNCTUATION →
      ...
    | ..=
    | <<=
    | >>=
    | !=
    | %=
    | &&
    | &=
    | *=
    | +=
    | -=
    | ->
    | ..
    | /=
    | ::
    | <-
    | <<
    | <=
    | ==
    | =>
    | >=
    | >>
    | ^=
    | |=
    | ||
    | !
    | #
    | $
    | %
    | &
    | (
    | )
    | *
    | +
    | ,
    | -
    | .
    | /
    | :
    | ;
    | <
    | =
    | >
    | ?
    | @
    | [
    | ]
    | ^
    | {
    | |
    | }
    | ~

│ │ │ +

RESERVED_TOKEN →
      RESERVED_GUARDED_STRING_LITERAL
    | RESERVED_POUNDS
    | RESERVED_RAW_IDENTIFIER
    | RESERVED_RAW_LIFETIME
    | RESERVED_TOKEN_DOUBLE_QUOTE
    | RESERVED_TOKEN_LIFETIME
    | RESERVED_TOKEN_POUND
    | RESERVED_TOKEN_SINGLE_QUOTE

│ │ │ +

RESERVED_TOKEN_DOUBLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b or c or r or br or cr "

│ │ │ +

RESERVED_TOKEN_SINGLE_QUOTE →
    IDENTIFIER_OR_KEYWORDexcept b '

│ │ │ +

RESERVED_TOKEN_POUND →
    IDENTIFIER_OR_KEYWORDexcept r or br or cr #

│ │ │ +

RESERVED_TOKEN_LIFETIME →
    ' IDENTIFIER_OR_KEYWORDexcept r #

│ │ │ +

RESERVED_GUARDED_STRING_LITERAL → #+ STRING_LITERAL

│ │ │ +

RESERVED_POUNDS → #2..

│ │ │ +

IDENTIFIER_OR_KEYWORD → ( XID_Start | _ ) XID_Continue*

│ │ │ +

XID_Start → <XID_Start defined by Unicode>

│ │ │ +

XID_Continue → <XID_Continue defined by Unicode>

│ │ │ +

RAW_IDENTIFIER → r# IDENTIFIER_OR_KEYWORD

│ │ │ +

NON_KEYWORD_IDENTIFIER → IDENTIFIER_OR_KEYWORDexcept a strict or reserved keyword

│ │ │ +

IDENTIFIER → NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER

│ │ │ +

RESERVED_RAW_IDENTIFIER →
    r# ( _ | crate | self | Self | super ) !XID_Continue

│ │ │ +

WHITESPACE →
      U+0009 // Horizontal tab, '\t'
    | U+000A // Line feed, '\n'
    | U+000B // Vertical tab
    | U+000C // Form feed
    | U+000D // Carriage return, '\r'
    | U+0020 // Space, ' '
    | U+0085 // Next line
    | U+200E // Left-to-right mark
    | U+200F // Right-to-left mark
    | U+2028 // Line separator
    | U+2029 // Paragraph separator

│ │ │ +

TAB → U+0009 // Horizontal tab, '\t'

│ │ │ +

LF → U+000A // Line feed, '\n'

│ │ │ +

CR → U+000D // Carriage return, '\r'

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000-U+D7FF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+E000-U+10FFFF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000-U+007F │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +NUL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0000 │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SHEBANG │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +#! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +WHITESPACE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +immediately followed by LF │ │ │ + │ │ │ + │ │ │ + │ │ │ +// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +//! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/*! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_LINE_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/// │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LINE_DOC_COMMENT_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +EOF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/** │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ +* │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*/ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT_OR_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INNER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OUTER_BLOCK_DOC │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BLOCK_COMMENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Token │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RESERVED_TOKEN │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_IDENTIFIER │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_C_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_TOKEN │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PUNCTUATION │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IDENTIFIER_OR_KEYWORD │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Start │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\x │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OCT_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\n │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\t │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\0 │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\u{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +valid hex char value │ │ │ + │ │ │ + │ │ │ + │ │ │ +at most 5 more times │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +QUOTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UNICODE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_CONTINUE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +STRING_CONTINUE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +r │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat count n │ │ │ + │ │ │ + │ │ │ + │ │ │ +at most 254 more times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RAW_STRING_CONTENT_HASHED │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +" │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +repeat exactly n times │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +⚠️ with the exception of │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +b' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SUFFIX │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII_FOR_CHAR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +' │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LF │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CR │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ASCII │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_ESCAPE │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +\x │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +HEX_DIGIT │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ \n │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ \r │ │ │ @@ -60163,5846 +63160,729 @@ │ │ │ │ │ │ │ │ │ RESERVED_TOKEN_SINGLE_QUOTE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `b` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -' │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_TOKEN_POUND │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `r` or `br` or `cr` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_TOKEN_LIFETIME │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -' │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except `r` │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_GUARDED_STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_POUNDS │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SHEBANG │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -#! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WHITESPACE │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000-U+D7FF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+E000-U+10FFFF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ASCII │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000-U+007F │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NUL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -U+0000 │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Start │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -`XID_Start` defined by Unicode │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -`XID_Continue` defined by Unicode │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NON_KEYWORD_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except a strict or reserved keyword │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER_OR_KEYWORD │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NON_KEYWORD_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RESERVED_RAW_IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -r# │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -XID_Continue │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -immediately followed by LF │ │ │ - │ │ │ - │ │ │ - │ │ │ -// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -//! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/*! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_LINE_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/// │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LINE_DOC_COMMENT_CONTENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EOF │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/** │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -no backtracking │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -⚠️ with the exception of │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -not followed by │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -*/ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CHAR │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT_OR_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -INNER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OUTER_BLOCK_DOC │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BLOCK_COMMENT │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ -

Items summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Visibility →
      pub
    | pub ( crate )
    | pub ( self )
    | pub ( super )
    | pub ( in SimplePath )

│ │ │ -

Item →
    OuterAttribute* ( VisItem | MacroItem )

│ │ │ -

VisItem →
    Visibility?
    (
        Module
      | ExternCrate
      | UseDeclaration
      | Function
      | TypeAlias
      | Struct
      | Enumeration
      | Union
      | ConstantItem
      | StaticItem
      | Trait
      | Implementation
      | ExternBlock
    )

│ │ │ -

MacroItem →
      MacroInvocationSemi
    | MacroRulesDefinition

│ │ │ -

UseDeclaration → use UseTree ;

│ │ │ -

UseTree →
      ( SimplePath? :: )? *
    | ( SimplePath? :: )? { ( UseTree ( , UseTree )* ,? )? }
    | SimplePath ( as ( IDENTIFIER | _ ) )?

│ │ │ -

Union →
    union IDENTIFIER GenericParams? WhereClause? { StructFields? }

│ │ │ -

TypeAlias →
    type IDENTIFIER GenericParams? ( : TypeParamBounds )?
        WhereClause?
        ( = Type WhereClause? )? ;

│ │ │ -

Trait →
    unsafe? trait IDENTIFIER GenericParams? ( : TypeParamBounds? )? WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

Struct →
      StructStruct
    | TupleStruct

│ │ │ -

StructStruct →
    struct IDENTIFIER GenericParams? WhereClause? ( { StructFields? } | ; )

│ │ │ -

TupleStruct →
    struct IDENTIFIER GenericParams? ( TupleFields? ) WhereClause? ;

│ │ │ -

StructFields → StructField ( , StructField )* ,?

│ │ │ -

StructField → OuterAttribute* Visibility? IDENTIFIER : Type

│ │ │ -

TupleFields → TupleField ( , TupleField )* ,?

│ │ │ -

TupleField → OuterAttribute* Visibility? Type

│ │ │ -

StaticItem →
    ItemSafety? static mut? IDENTIFIER : Type ( = Expression )? ;

│ │ │ -

Module →
      unsafe? mod IDENTIFIER ;
    | unsafe? mod IDENTIFIER {
        InnerAttribute*
        Item*
      }

│ │ │ -

Implementation → InherentImpl | TraitImpl

│ │ │ -

InherentImpl →
    impl GenericParams? Type WhereClause? {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

TraitImpl →
    unsafe? impl GenericParams? !? TypePath for Type
    WhereClause?
    {
        InnerAttribute*
        AssociatedItem*
    }

│ │ │ -

GenericParams → < ( GenericParam ( , GenericParam )* ,? )? >

│ │ │ -

GenericParam → OuterAttribute* ( LifetimeParam | TypeParam | ConstParam )

│ │ │ -

LifetimeParam → Lifetime ( : LifetimeBounds )?

│ │ │ -

TypeParam → IDENTIFIER ( : TypeParamBounds? )? ( = Type )?

│ │ │ -

ConstParam →
    const IDENTIFIER : Type
    ( = ( BlockExpression | IDENTIFIER | -? LiteralExpression ) )?

│ │ │ -

WhereClause → where ( WhereClauseItem , )* WhereClauseItem?

│ │ │ -

WhereClauseItem →
      LifetimeWhereClauseItem
    | TypeBoundWhereClauseItem

│ │ │ -

LifetimeWhereClauseItem → Lifetime : LifetimeBounds

│ │ │ -

TypeBoundWhereClauseItem → ForLifetimes? Type : TypeParamBounds?

│ │ │ -

Function →
    FunctionQualifiers fn IDENTIFIER GenericParams?
        ( FunctionParameters? )
        FunctionReturnType? WhereClause?
        ( BlockExpression | ; )

│ │ │ -

FunctionQualifiers → const? async? ItemSafety? ( extern Abi? )?

│ │ │ -

ItemSafety → safe | unsafe

│ │ │ -

Abi → STRING_LITERAL | RAW_STRING_LITERAL

│ │ │ -

FunctionParameters →
      SelfParam ,?
    | ( SelfParam , )? FunctionParam ( , FunctionParam )* ,?

│ │ │ -

SelfParam → OuterAttribute* ( ShorthandSelf | TypedSelf )

│ │ │ -

ShorthandSelf → ( & | & Lifetime )? mut? self

│ │ │ -

TypedSelf → mut? self : Type

│ │ │ -

FunctionParam → OuterAttribute* ( FunctionParamPattern | ... | Type )

│ │ │ -

FunctionParamPattern → PatternNoTopAlt : ( Type | ... )

│ │ │ -

FunctionReturnType → -> Type

│ │ │ -

ExternBlock →
    unsafe? extern Abi? {
        InnerAttribute*
        ExternalItem*
    }

│ │ │ -

ExternalItem →
    OuterAttribute* (
        MacroInvocationSemi
      | Visibility? StaticItem
      | Visibility? Function
    )

│ │ │ -

ExternCrate → extern crate CrateRef AsClause? ;

│ │ │ -

CrateRef → IDENTIFIER | self

│ │ │ -

AsClause → as ( IDENTIFIER | _ )

│ │ │ -

Enumeration →
    enum IDENTIFIER GenericParams? WhereClause? { EnumVariants? }

│ │ │ -

EnumVariants → EnumVariant ( , EnumVariant )* ,?

│ │ │ -

EnumVariant →
    OuterAttribute* Visibility?
    IDENTIFIER ( EnumVariantTuple | EnumVariantStruct )? EnumVariantDiscriminant?

│ │ │ -

EnumVariantTuple → ( TupleFields? )

│ │ │ -

EnumVariantStruct → { StructFields? }

│ │ │ -

EnumVariantDiscriminant → = Expression

│ │ │ -

ConstantItem →
    const ( IDENTIFIER | _ ) : Type ( = Expression )? ;

│ │ │ -

AssociatedItem →
    OuterAttribute* (
        MacroInvocationSemi
      | ( Visibility? ( TypeAlias | ConstantItem | Function ) )
    )

│ │ │ -

Crate →
    InnerAttribute*
    Item*

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -pub │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -in │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Item │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -VisItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -VisItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Module │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternCrate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseDeclaration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeAlias │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Enumeration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstantItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Implementation │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternBlock │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroRulesDefinition │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseDeclaration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -use │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -UseTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -as │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -union │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeAlias │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -trait │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleStruct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -struct │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleFields │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleField │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -static │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Module │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mod │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mod │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Item │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Implementation │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InherentImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InherentImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitImpl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -for │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssociatedItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ConstParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -- │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LiteralExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -where │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeBoundWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LifetimeBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeBoundWhereClauseItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ForLifetimes │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionQualifiers │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -fn │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParameters │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionReturnType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionQualifiers │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -async │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ItemSafety │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -safe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RAW_STRING_LITERAL │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParameters │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SelfParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ShorthandSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypedSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ShorthandSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypedSelf │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParam │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParamPattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -... │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionParamPattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -PatternNoTopAlt │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -... │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FunctionReturnType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ --> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternBlock │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -unsafe │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InnerAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternalItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternalItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StaticItem │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Visibility │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Function │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExternCrate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -extern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -crate │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CrateRef │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CrateRef │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -self │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -as │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -_ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Enumeration │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -enum │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -IDENTIFIER │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericParams │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -WhereClause │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariants │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariants │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariant │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -EnumVariant │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RESERVED_TOKEN_POUND │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except `r` or `br` or `cr` │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -EnumVariantDiscriminant │ │ │ + │ │ │ + │ │ │ +IDENTIFIER_OR_KEYWORD │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +# │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +`XID_Continue` defined by Unicode │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -

Types summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Type →
      TypeNoBounds
    | ImplTraitType
    | TraitObjectType

│ │ │ -

TypeNoBounds →
      ParenthesizedType
    | ImplTraitTypeOneBound
    | TraitObjectTypeOneBound
    | TypePath
    | TupleType
    | NeverType
    | RawPointerType
    | ReferenceType
    | ArrayType
    | SliceType
    | InferredType
    | QualifiedPathInType
    | BareFunctionType
    | MacroInvocation

│ │ │ -

ParenthesizedType → ( Type )

│ │ │ -

TupleType →
      ( )
    | ( ( Type , )+ Type? )

│ │ │ -

TraitObjectType → dyn? TypeParamBounds

│ │ │ -

TraitObjectTypeOneBound → dyn? TraitBound

│ │ │ -

SliceType → [ Type ]

│ │ │ -

ReferenceType → & Lifetime? mut? TypeNoBounds

│ │ │ -

RawPointerType → * ( mut | const ) TypeNoBounds

│ │ │ -

NeverType → !

│ │ │ -

InferredType → _

│ │ │ -

ImplTraitType → impl TypeParamBounds

│ │ │ -

ImplTraitTypeOneBound → impl TraitBound

│ │ │ -

BareFunctionType →
    ForLifetimes? FunctionTypeQualifiers fn
       ( FunctionParametersMaybeNamedVariadic? ) BareFunctionReturnType?

│ │ │ -

FunctionTypeQualifiers → unsafe? ( extern Abi? )?

│ │ │ -

BareFunctionReturnType → -> TypeNoBounds

│ │ │ -

FunctionParametersMaybeNamedVariadic →
    MaybeNamedFunctionParameters | MaybeNamedFunctionParametersVariadic

│ │ │ -

MaybeNamedFunctionParameters →
    MaybeNamedParam ( , MaybeNamedParam )* ,?

│ │ │ -

MaybeNamedParam →
    OuterAttribute* ( ( IDENTIFIER | _ ) : )? Type

│ │ │ -

MaybeNamedFunctionParametersVariadic →
    ( MaybeNamedParam , )* MaybeNamedParam , OuterAttribute* ...

│ │ │ -

ArrayType → [ Type ; Expression ]

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +RESERVED_RAW_IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ +r# │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +_ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitType │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +crate │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +self │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +super │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +not followed by │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TraitObjectType │ │ │ + │ │ │ + │ │ │ +XID_Continue │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ +WHITESPACE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ParenthesizedType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0009 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitTypeOneBound │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000A │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitObjectTypeOneBound │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000B │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000C │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+000D │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NeverType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0020 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RawPointerType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0085 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ReferenceType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+200E │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ArrayType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+200F │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SliceType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+2028 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -InferredType │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+2029 │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -QualifiedPathInType │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -BareFunctionType │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TAB │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +U+0009 │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MacroInvocation │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ +

Types summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +ArrayType → [ Type ; Expression ]

│ │ │ +

TraitObjectType → dyn? TypeParamBounds

│ │ │ +

TraitObjectTypeOneBound → dyn? TraitBound

│ │ │ +

InferredType → _

│ │ │ +

BareFunctionType →
    ForLifetimes? FunctionTypeQualifiers fn
       ( FunctionParametersMaybeNamedVariadic? ) BareFunctionReturnType?

│ │ │ +

FunctionTypeQualifiers → unsafe? ( extern Abi? )?

│ │ │ +

BareFunctionReturnType → -> TypeNoBounds

│ │ │ +

FunctionParametersMaybeNamedVariadic →
    MaybeNamedFunctionParameters | MaybeNamedFunctionParametersVariadic

│ │ │ +

MaybeNamedFunctionParameters →
    MaybeNamedParam ( , MaybeNamedParam )* ,?

│ │ │ +

MaybeNamedParam →
    OuterAttribute* ( ( IDENTIFIER | _ ) : )? Type

│ │ │ +

MaybeNamedFunctionParametersVariadic →
    ( MaybeNamedParam , )* MaybeNamedParam , OuterAttribute* ...

│ │ │ +

NeverType → !

│ │ │ +

SliceType → [ Type ]

│ │ │ +

ReferenceType → & Lifetime? mut? TypeNoBounds

│ │ │ +

RawPointerType → * ( mut | const ) TypeNoBounds

│ │ │ +

TupleType →
      ( )
    | ( ( Type , )+ Type? )

│ │ │ +

ImplTraitType → impl TypeParamBounds

│ │ │ +

ImplTraitTypeOneBound → impl TraitBound

│ │ │ +

Type →
      TypeNoBounds
    | ImplTraitType
    | TraitObjectType

│ │ │ +

TypeNoBounds →
      ParenthesizedType
    | ImplTraitTypeOneBound
    | TraitObjectTypeOneBound
    | TypePath
    | TupleType
    | NeverType
    | RawPointerType
    | ReferenceType
    | ArrayType
    | SliceType
    | InferredType
    | QualifiedPathInType
    | BareFunctionType
    | MacroInvocation

│ │ │ +

ParenthesizedType → ( Type )

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayType │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +[ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Type │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -66070,174 +63950,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SliceType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ReferenceType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -& │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RawPointerType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -* │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -mut │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -NeverType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ InferredType │ │ │ │ │ │ @@ -66252,78 +63972,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeParamBounds │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ImplTraitTypeOneBound │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -impl │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TraitBound │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ BareFunctionType │ │ │ │ │ │ @@ -66722,20 +64378,42 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SliceType │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -66747,839 +64425,522 @@ │ │ │ │ │ │ Type │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ ] │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Miscellaneous summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -TypeParamBounds → TypeParamBound ( + TypeParamBound )* +?

│ │ │ -

TypeParamBound → Lifetime | TraitBound | UseBound

│ │ │ -

TraitBound →
      ( ? | ForLifetimes )? TypePath
    | ( ( ? | ForLifetimes )? TypePath )

│ │ │ -

LifetimeBounds → ( Lifetime + )* Lifetime?

│ │ │ -

Lifetime →
      LIFETIME_OR_LABEL
    | 'static
    | '_

│ │ │ -

UseBound → use UseBoundGenericArgs

│ │ │ -

UseBoundGenericArgs →
      < >
    | < ( UseBoundGenericArg , )* UseBoundGenericArg ,? >

│ │ │ -

UseBoundGenericArg →
      Lifetime
    | IDENTIFIER
    | Self

│ │ │ -

ForLifetimes → for GenericParams

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Lifetime │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -'static │ │ │ - │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -'_ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -

Statements summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Statement →
      ;
    | Item
    | LetStatement
    | ExpressionStatement
    | OuterAttribute* MacroInvocationSemi

│ │ │ -

LetStatement →
    OuterAttribute* let PatternNoTopAlt ( : Type )?
    (
          = Expression
        | = Expressionexcept LazyBooleanExpression or end with a } else BlockExpression
    )? ;

│ │ │ -

ExpressionStatement →
      ExpressionWithoutBlock ;
    | ExpressionWithBlock ;?

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Statement │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ImplTraitTypeOneBound │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Item │ │ │ + │ │ │ + │ │ │ +TraitObjectTypeOneBound │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LetStatement │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionStatement │ │ │ + │ │ │ + │ │ │ +TupleType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +NeverType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ +RawPointerType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LetStatement │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +ReferenceType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -let │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PatternNoTopAlt │ │ │ + │ │ │ + │ │ │ +ArrayType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -: │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Type │ │ │ + │ │ │ + │ │ │ +SliceType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +InferredType │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except LazyBooleanExpression or end with a `}` │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +QualifiedPathInType │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -else │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +BareFunctionType │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocation │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ │ │ │ @@ -69087,1405 +66448,1138 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ -

Paths summary

│ │ │ +

Attributes summary

│ │ │
│ │ │

Syntax │ │ │
│ │ │ -SimplePath →
    ::? SimplePathSegment ( :: SimplePathSegment )*

│ │ │ -

SimplePathSegment →
    IDENTIFIER | super | self | crate | $crate

│ │ │ -

PathInExpression →
    ::? PathExprSegment ( :: PathExprSegment )*

│ │ │ -

PathExprSegment →
    PathIdentSegment ( :: GenericArgs )?

│ │ │ -

PathIdentSegment →
    IDENTIFIER | super | self | Self | crate | $crate

│ │ │ -

GenericArgs →
      < >
    | < ( GenericArg , )* GenericArg ,? >

│ │ │ -

GenericArg →
    Lifetime | Type | GenericArgsConst | GenericArgsBinding | GenericArgsBounds

│ │ │ -

GenericArgsConst →
      BlockExpression
    | LiteralExpression
    | - LiteralExpression
    | SimplePathSegment

│ │ │ -

GenericArgsBinding →
    IDENTIFIER GenericArgs? = Type

│ │ │ -

GenericArgsBounds →
    IDENTIFIER GenericArgs? : TypeParamBounds

│ │ │ -

QualifiedPathInExpression → QualifiedPathType ( :: PathExprSegment )+

│ │ │ -

QualifiedPathType → < Type ( as TypePath )? >

│ │ │ -

QualifiedPathInType → QualifiedPathType ( :: TypePathSegment )+

│ │ │ -

TypePath → ::? TypePathSegment ( :: TypePathSegment )*

│ │ │ -

TypePathSegment → PathIdentSegment ( ::? ( GenericArgs | TypePathFn ) )?

│ │ │ -

TypePathFn → ( TypePathFnInputs? ) ( -> TypeNoBounds )?

│ │ │ -

TypePathFnInputs → Type ( , Type )* ,?

│ │ │ +InnerAttribute → # ! [ Attr ]

│ │ │ +

OuterAttribute → # [ Attr ]

│ │ │ +

Attr →
      SimplePath AttrInput?
    | unsafe ( SimplePath AttrInput? )

│ │ │ +

AttrInput →
      DelimTokenTree
    | = Expression

│ │ │ +

MetaItem →
      SimplePath
    | SimplePath = Expression
    | SimplePath ( MetaSeq? )

│ │ │ +

MetaSeq →
    MetaItemInner ( , MetaItemInner )* ,?

│ │ │ +

MetaItemInner →
      MetaItem
    | Expression

│ │ │ +

MetaWord →
    IDENTIFIER

│ │ │ +

MetaNameValueStr →
    IDENTIFIER = ( STRING_LITERAL | RAW_STRING_LITERAL )

│ │ │ +

MetaListPaths →
    IDENTIFIER ( ( SimplePath ( , SimplePath )* ,? )? )

│ │ │ +

MetaListIdents →
    IDENTIFIER ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │ +

MetaListNameValueStr →
    IDENTIFIER ( ( MetaNameValueStr ( , MetaNameValueStr )* ,? )? )

│ │ │ +

InlineAttribute →
      inline ( always )
    | inline ( never )
    | inline

│ │ │ +

CollapseDebuginfoAttribute → collapse_debuginfo ( CollapseDebuginfoOption )

│ │ │ +

CollapseDebuginfoOption →
      yes
    | no
    | external

│ │ │ +

ProcMacroDeriveAttribute →
    proc_macro_derive ( DeriveMacroName ( , DeriveMacroAttributes )? ,? )

│ │ │ +

DeriveMacroName → IDENTIFIER

│ │ │ +

DeriveMacroAttributes →
    attributes ( ( IDENTIFIER ( , IDENTIFIER )* ,? )? )

│ │ │

│ │ │
│ │ │ │ │ │
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -PathInExpression │ │ │ + │ │ │ + │ │ │ +Attr │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AttrInput │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -:: │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathExprSegment │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathExprSegment │ │ │ + │ │ │ + │ │ │ +AttrInput │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -PathIdentSegment │ │ │ + │ │ │ + │ │ │ +MetaItem │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ -IDENTIFIER │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -super │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -self │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Self │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -crate │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaSeq │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -$crate │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -GenericArgs │ │ │ + │ │ │ + │ │ │ +MetaSeq │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaItemInner │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericArg │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaItemInner │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -GenericArg │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -QualifiedPathType │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -< │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Type │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -as │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePath │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -> │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypePathSegment │ │ │ + │ │ │ + │ │ │ +MetaListNameValueStr │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PathIdentSegment │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MetaNameValueStr │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -:: │ │ │ - │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -GenericArgs │ │ │ + │ │ │ + │ │ │ +MetaNameValueStr │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePathFn │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -TypePathFn │ │ │ + │ │ │ + │ │ │ +InlineAttribute │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypePathFnInputs │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +always │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ --> │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +never │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +inline │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ - │ │ │ - │ │ │ -

Macros summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -MacroInvocation →
    SimplePath ! DelimTokenTree

│ │ │ -

DelimTokenTree →
      ( TokenTree* )
    | [ TokenTree* ]
    | { TokenTree* }

│ │ │ -

TokenTree →
    Tokenexcept delimiters | DelimTokenTree

│ │ │ -

MacroInvocationSemi →
      SimplePath ! ( TokenTree* ) ;
    | SimplePath ! [ TokenTree* ] ;
    | SimplePath ! { TokenTree* }

│ │ │ -

MacroRulesDefinition →
    macro_rules ! IDENTIFIER MacroRulesDef

│ │ │ -

MacroRulesDef →
      ( MacroRules ) ;
    | [ MacroRules ] ;
    | { MacroRules }

│ │ │ -

MacroRules →
    MacroRule ( ; MacroRule )* ;?

│ │ │ -

MacroRule →
    MacroMatcher => MacroTranscriber

│ │ │ -

MacroMatcher →
      ( MacroMatch* )
    | [ MacroMatch* ]
    | { MacroMatch* }

│ │ │ -

MacroMatch →
      Tokenexcept $ and delimiters
    | MacroMatcher
    | $ ( IDENTIFIER_OR_KEYWORDexcept crate | RAW_IDENTIFIER ) : MacroFragSpec
    | $ ( MacroMatch+ ) MacroRepSep? MacroRepOp

│ │ │ -

MacroFragSpec →
      block | expr | expr_2021 | ident | item | lifetime | literal
    | meta | pat | pat_param | path | stmt | tt | ty | vis

│ │ │ -

MacroRepSep → Tokenexcept delimiters and MacroRepOp

│ │ │ -

MacroRepOp → * | + | ?

│ │ │ -

MacroTranscriber → DelimTokenTree

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -DelimTokenTree │ │ │ + │ │ │ + │ │ │ +ProcMacroDeriveAttribute │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +proc_macro_derive │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +DeriveMacroName │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -[ │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ +DeriveMacroAttributes │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -} │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ +DeriveMacroAttributes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ + │ │ │ +attributes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -[ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -] │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -; │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -SimplePath │ │ │ + │ │ │ + │ │ │ +IDENTIFIER │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -! │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -{ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TokenTree │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -} │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ +
│ │ │ + │ │ │ +

Macros summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +MacroRulesDefinition →
    macro_rules ! IDENTIFIER MacroRulesDef

│ │ │ +

MacroRulesDef →
      ( MacroRules ) ;
    | [ MacroRules ] ;
    | { MacroRules }

│ │ │ +

MacroRules →
    MacroRule ( ; MacroRule )* ;?

│ │ │ +

MacroRule →
    MacroMatcher => MacroTranscriber

│ │ │ +

MacroMatcher →
      ( MacroMatch* )
    | [ MacroMatch* ]
    | { MacroMatch* }

│ │ │ +

MacroMatch →
      Tokenexcept $ and delimiters
    | MacroMatcher
    | $ ( IDENTIFIER_OR_KEYWORDexcept crate | RAW_IDENTIFIER ) : MacroFragSpec
    | $ ( MacroMatch+ ) MacroRepSep? MacroRepOp

│ │ │ +

MacroFragSpec →
      block | expr | expr_2021 | ident | item | lifetime | literal
    | meta | pat | pat_param | path | stmt | tt | ty | vis

│ │ │ +

MacroRepSep → Tokenexcept delimiters and MacroRepOp

│ │ │ +

MacroRepOp → * | + | ?

│ │ │ +

MacroTranscriber → DelimTokenTree

│ │ │ +

MacroInvocation →
    SimplePath ! DelimTokenTree

│ │ │ +

DelimTokenTree →
      ( TokenTree* )
    | [ TokenTree* ]
    | { TokenTree* }

│ │ │ +

TokenTree →
    Tokenexcept delimiters | DelimTokenTree

│ │ │ +

MacroInvocationSemi →
      SimplePath ! ( TokenTree* ) ;
    | SimplePath ! [ TokenTree* ] ;
    | SimplePath ! { TokenTree* }

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ MacroRulesDefinition │ │ │ │ │ │ @@ -71196,1104 +68290,913 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Assembly summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -AsmArgs → AsmAttrFormatString ( , AsmAttrFormatString )* ( , AsmAttrOperand )* ,?

│ │ │ -

FormatString → STRING_LITERAL | RAW_STRING_LITERAL | MacroInvocation

│ │ │ -

AsmAttrFormatString → ( OuterAttribute )* FormatString

│ │ │ -

AsmOperand →
      ClobberAbi
    | AsmOptions
    | RegOperand

│ │ │ -

AsmAttrOperand → ( OuterAttribute )* AsmOperand

│ │ │ -

ClobberAbi → clobber_abi ( Abi ( , Abi )* ,? )

│ │ │ -

AsmOptions →
    options ( ( AsmOption ( , AsmOption )* ,? )? )

│ │ │ -

AsmOption →
      pure
    | nomem
    | readonly
    | preserves_flags
    | noreturn
    | nostack
    | att_syntax
    | raw

│ │ │ -

RegOperand → ( ParamName = )?
    (
          DirSpec ( RegSpec ) Expression
        | DualDirSpec ( RegSpec ) DualDirSpecExpression
        | sym PathExpression
        | const Expression
        | label { Statements? }
    )

│ │ │ -

ParamName → IDENTIFIER_OR_KEYWORD | RAW_IDENTIFIER

│ │ │ -

DualDirSpecExpression →
      Expression
    | Expression => Expression

│ │ │ -

RegSpec → RegisterClass | ExplicitRegister

│ │ │ -

RegisterClass → IDENTIFIER_OR_KEYWORD

│ │ │ -

ExplicitRegister → STRING_LITERAL

│ │ │ -

DirSpec →
      in
    | out
    | lateout

│ │ │ -

DualDirSpec →
      inout
    | inlateout

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmArgs │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrFormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FormatString │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOperand │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClobberAbi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOptions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RegOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmAttrOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AsmOperand │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClobberAbi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -clobber_abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Abi │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -, │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -) │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -AsmOption │ │ │ + │ │ │ + │ │ │ +DelimTokenTree │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -pure │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -nomem │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -readonly │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -preserves_flags │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -noreturn │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -nostack │ │ │ + │ │ │ + │ │ │ +{ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -att_syntax │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -raw │ │ │ + │ │ │ + │ │ │ +} │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DirSpec │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +! │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RegSpec │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ ) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DualDirSpec │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -( │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RegSpec │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -) │ │ │ + │ │ │ + │ │ │ +[ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -DualDirSpecExpression │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -sym │ │ │ + │ │ │ + │ │ │ +] │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -PathExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -const │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -label │ │ │ + │ │ │ + │ │ │ +! │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ { │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Statements │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ } │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Expressions summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +LiteralExpression →
      CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | INTEGER_LITERAL
    | FLOAT_LITERAL
    | true
    | false

│ │ │ +

AwaitExpression → Expression . await

│ │ │ +

MethodCallExpression → Expression . PathExprSegment ( CallParams? )

│ │ │ +

ReturnExpression → return Expression?

│ │ │ +

ClosureExpression →
    async?
    move?
    ( || | | ClosureParameters? | )
    ( Expression | -> TypeNoBounds BlockExpression )

│ │ │ +

ClosureParameters → ClosureParam ( , ClosureParam )* ,?

│ │ │ +

ClosureParam → OuterAttribute* PatternNoTopAlt ( : Type )?

│ │ │ +

FieldExpression → Expression . IDENTIFIER

│ │ │ +

IfExpression →
    if Conditions BlockExpression
    ( else ( BlockExpression | IfExpression ) )?

│ │ │ +

Conditions →
      Expressionexcept StructExpression
    | LetChain

│ │ │ +

LetChain → LetChainCondition ( && LetChainCondition )*

│ │ │ +

LetChainCondition →
      Expressionexcept ExcludedConditions
    | OuterAttribute* let Pattern = Scrutineeexcept ExcludedConditions

│ │ │ +

ExcludedConditions →
      StructExpression
    | LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

UnderscoreExpression → _

│ │ │ +

TupleExpression → ( TupleElements? )

│ │ │ +

TupleElements → ( Expression , )+ Expression?

│ │ │ +

TupleIndexingExpression → Expression . TUPLE_INDEX

│ │ │ +

ArrayExpression → [ ArrayElements? ]

│ │ │ +

ArrayElements →
      Expression ( , Expression )* ,?
    | Expression ; Expression

│ │ │ +

IndexExpression → Expression [ Expression ]

│ │ │ +

StructExpression →
    PathInExpression { ( StructExprFields | StructBase )? }

│ │ │ +

StructExprFields →
    StructExprField ( , StructExprField )* ( , StructBase | ,? )

│ │ │ +

StructExprField →
    OuterAttribute*
    (
        IDENTIFIER
      | ( IDENTIFIER | TUPLE_INDEX ) : Expression
    )

│ │ │ +

StructBase → .. Expression

│ │ │ +

PathExpression →
      PathInExpression
    | QualifiedPathInExpression

│ │ │ +

RangeExpression →
      RangeExpr
    | RangeFromExpr
    | RangeToExpr
    | RangeFullExpr
    | RangeInclusiveExpr
    | RangeToInclusiveExpr

│ │ │ +

RangeExpr → Expression .. Expression

│ │ │ +

RangeFromExpr → Expression ..

│ │ │ +

RangeToExpr → .. Expression

│ │ │ +

RangeFullExpr → ..

│ │ │ +

RangeInclusiveExpr → Expression ..= Expression

│ │ │ +

RangeToInclusiveExpr → ..= Expression

│ │ │ +

MatchExpression →
    match Scrutinee {
        InnerAttribute*
        MatchArms?
    }

│ │ │ +

Scrutinee → Expressionexcept StructExpression

│ │ │ +

MatchArms →
    ( MatchArm => ( ExpressionWithoutBlock , | ExpressionWithBlock ,? ) )*
    MatchArm => Expression ,?

│ │ │ +

MatchArm → OuterAttribute* Pattern MatchArmGuard?

│ │ │ +

MatchArmGuard → if MatchConditions

│ │ │ +

MatchConditions →
     MatchGuardChain
   | Expression

│ │ │ +

MatchGuardChain → MatchGuardCondition ( && MatchGuardCondition )*

│ │ │ +

MatchGuardCondition →
     Expressionexcept ExcludedMatchConditions
   | OuterAttribute* let Pattern = MatchGuardScrutinee

│ │ │ +

MatchGuardScrutinee → Expressionexcept ExcludedMatchConditions

│ │ │ +

ExcludedMatchConditions →
      LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

LoopExpression →
    LoopLabel? (
        InfiniteLoopExpression
      | PredicateLoopExpression
      | IteratorLoopExpression
      | LabelBlockExpression
    )

│ │ │ +

InfiniteLoopExpression → loop BlockExpression

│ │ │ +

PredicateLoopExpression → while Conditions BlockExpression

│ │ │ +

IteratorLoopExpression →
    for Pattern in Expressionexcept StructExpression BlockExpression

│ │ │ +

LoopLabel → LIFETIME_OR_LABEL :

│ │ │ +

BreakExpression → break LIFETIME_OR_LABEL? Expression?

│ │ │ +

LabelBlockExpression → BlockExpression

│ │ │ +

ContinueExpression → continue LIFETIME_OR_LABEL?

│ │ │ +

CallExpression → Expression ( CallParams? )

│ │ │ +

CallParams → Expression ( , Expression )* ,?

│ │ │ +

OperatorExpression →
      BorrowExpression
    | DereferenceExpression
    | TryPropagationExpression
    | NegationExpression
    | ArithmeticOrLogicalExpression
    | ComparisonExpression
    | LazyBooleanExpression
    | TypeCastExpression
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ +

BorrowExpression →
      ( & | && ) Expression
    | ( & | && ) mut Expression
    | ( & | && ) raw const Expression
    | ( & | && ) raw mut Expression

│ │ │ +

DereferenceExpression → * Expression

│ │ │ +

TryPropagationExpression → Expression ?

│ │ │ +

NegationExpression →
      - Expression
    | ! Expression

│ │ │ +

ArithmeticOrLogicalExpression →
      Expression + Expression
    | Expression - Expression
    | Expression * Expression
    | Expression / Expression
    | Expression % Expression
    | Expression & Expression
    | Expression | Expression
    | Expression ^ Expression
    | Expression << Expression
    | Expression >> Expression

│ │ │ +

ComparisonExpression →
      Expression == Expression
    | Expression != Expression
    | Expression > Expression
    | Expression < Expression
    | Expression >= Expression
    | Expression <= Expression

│ │ │ +

LazyBooleanExpression →
      Expression || Expression
    | Expression && Expression

│ │ │ +

TypeCastExpression → Expression as TypeNoBounds

│ │ │ +

AssignmentExpression → Expression = Expression

│ │ │ +

CompoundAssignmentExpression →
      Expression += Expression
    | Expression -= Expression
    | Expression *= Expression
    | Expression /= Expression
    | Expression %= Expression
    | Expression &= Expression
    | Expression |= Expression
    | Expression ^= Expression
    | Expression <<= Expression
    | Expression >>= Expression

│ │ │ +

GroupedExpression → ( Expression )

│ │ │ +

BlockExpression →
    {
        InnerAttribute*
        Statements?
    }

│ │ │ +

Statements →
      Statement+
    | Statement+ ExpressionWithoutBlock
    | ExpressionWithoutBlock

│ │ │ +

AsyncBlockExpression → async move? BlockExpression

│ │ │ +

ConstBlockExpression → const BlockExpression

│ │ │ +

UnsafeBlockExpression → unsafe BlockExpression

│ │ │ +

Expression →
      ExpressionWithoutBlock
    | ExpressionWithBlock

│ │ │ +

ExpressionWithoutBlock →
    OuterAttribute* ExpressionWithoutBlockNoAttrs

│ │ │ +

ExpressionWithoutBlockNoAttrs →
      LiteralExpression
    | PathExpression
    | OperatorExpression
    | GroupedExpression
    | ArrayExpression
    | AwaitExpression
    | IndexExpression
    | TupleExpression
    | TupleIndexingExpression
    | StructExpression
    | CallExpression
    | MethodCallExpression
    | FieldExpression
    | ClosureExpression
    | AsyncBlockExpression
    | ContinueExpression
    | BreakExpression
    | RangeExpression
    | ReturnExpression
    | UnderscoreExpression
    | MacroInvocation

│ │ │ +

ExpressionWithBlock →
    OuterAttribute* ExpressionWithBlockNoAttrs

│ │ │ +

ExpressionWithBlockNoAttrs →
      BlockExpression
    | ConstBlockExpression
    | UnsafeBlockExpression
    | LoopExpression
    | IfExpression
    | MatchExpression

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DualDirSpecExpression │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BYTE_STRING_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +RAW_BYTE_STRING_LITERAL │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +C_STRING_LITERAL │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -=> │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +RAW_C_STRING_LITERAL │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +INTEGER_LITERAL │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FLOAT_LITERAL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +true │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +false │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -DualDirSpec │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -inout │ │ │ + │ │ │ + │ │ │ +-> │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeNoBounds │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -inlateout │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ - │ │ │ -

Expressions summary

│ │ │ -
│ │ │ -

Syntax │ │ │ -
│ │ │ -Expression →
      ExpressionWithoutBlock
    | ExpressionWithBlock

│ │ │ -

ExpressionWithoutBlock →
    OuterAttribute* ExpressionWithoutBlockNoAttrs

│ │ │ -

ExpressionWithoutBlockNoAttrs →
      LiteralExpression
    | PathExpression
    | OperatorExpression
    | GroupedExpression
    | ArrayExpression
    | AwaitExpression
    | IndexExpression
    | TupleExpression
    | TupleIndexingExpression
    | StructExpression
    | CallExpression
    | MethodCallExpression
    | FieldExpression
    | ClosureExpression
    | AsyncBlockExpression
    | ContinueExpression
    | BreakExpression
    | RangeExpression
    | ReturnExpression
    | UnderscoreExpression
    | MacroInvocation

│ │ │ -

ExpressionWithBlock →
    OuterAttribute* ExpressionWithBlockNoAttrs

│ │ │ -

ExpressionWithBlockNoAttrs →
      BlockExpression
    | ConstBlockExpression
    | UnsafeBlockExpression
    | LoopExpression
    | IfExpression
    | MatchExpression

│ │ │ -

UnderscoreExpression → _

│ │ │ -

TupleExpression → ( TupleElements? )

│ │ │ -

TupleElements → ( Expression , )+ Expression?

│ │ │ -

TupleIndexingExpression → Expression . TUPLE_INDEX

│ │ │ -

StructExpression →
    PathInExpression { ( StructExprFields | StructBase )? }

│ │ │ -

StructExprFields →
    StructExprField ( , StructExprField )* ( , StructBase | ,? )

│ │ │ -

StructExprField →
    OuterAttribute*
    (
        IDENTIFIER
      | ( IDENTIFIER | TUPLE_INDEX ) : Expression
    )

│ │ │ -

StructBase → .. Expression

│ │ │ -

ReturnExpression → return Expression?

│ │ │ -

RangeExpression →
      RangeExpr
    | RangeFromExpr
    | RangeToExpr
    | RangeFullExpr
    | RangeInclusiveExpr
    | RangeToInclusiveExpr

│ │ │ -

RangeExpr → Expression .. Expression

│ │ │ -

RangeFromExpr → Expression ..

│ │ │ -

RangeToExpr → .. Expression

│ │ │ -

RangeFullExpr → ..

│ │ │ -

RangeInclusiveExpr → Expression ..= Expression

│ │ │ -

RangeToInclusiveExpr → ..= Expression

│ │ │ -

PathExpression →
      PathInExpression
    | QualifiedPathInExpression

│ │ │ -

OperatorExpression →
      BorrowExpression
    | DereferenceExpression
    | TryPropagationExpression
    | NegationExpression
    | ArithmeticOrLogicalExpression
    | ComparisonExpression
    | LazyBooleanExpression
    | TypeCastExpression
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

BorrowExpression →
      ( & | && ) Expression
    | ( & | && ) mut Expression
    | ( & | && ) raw const Expression
    | ( & | && ) raw mut Expression

│ │ │ -

DereferenceExpression → * Expression

│ │ │ -

TryPropagationExpression → Expression ?

│ │ │ -

NegationExpression →
      - Expression
    | ! Expression

│ │ │ -

ArithmeticOrLogicalExpression →
      Expression + Expression
    | Expression - Expression
    | Expression * Expression
    | Expression / Expression
    | Expression % Expression
    | Expression & Expression
    | Expression | Expression
    | Expression ^ Expression
    | Expression << Expression
    | Expression >> Expression

│ │ │ -

ComparisonExpression →
      Expression == Expression
    | Expression != Expression
    | Expression > Expression
    | Expression < Expression
    | Expression >= Expression
    | Expression <= Expression

│ │ │ -

LazyBooleanExpression →
      Expression || Expression
    | Expression && Expression

│ │ │ -

TypeCastExpression → Expression as TypeNoBounds

│ │ │ -

AssignmentExpression → Expression = Expression

│ │ │ -

CompoundAssignmentExpression →
      Expression += Expression
    | Expression -= Expression
    | Expression *= Expression
    | Expression /= Expression
    | Expression %= Expression
    | Expression &= Expression
    | Expression |= Expression
    | Expression ^= Expression
    | Expression <<= Expression
    | Expression >>= Expression

│ │ │ -

MethodCallExpression → Expression . PathExprSegment ( CallParams? )

│ │ │ -

MatchExpression →
    match Scrutinee {
        InnerAttribute*
        MatchArms?
    }

│ │ │ -

Scrutinee → Expressionexcept StructExpression

│ │ │ -

MatchArms →
    ( MatchArm => ( ExpressionWithoutBlock , | ExpressionWithBlock ,? ) )*
    MatchArm => Expression ,?

│ │ │ -

MatchArm → OuterAttribute* Pattern MatchArmGuard?

│ │ │ -

MatchArmGuard → if MatchConditions

│ │ │ -

MatchConditions →
     MatchGuardChain
   | Expression

│ │ │ -

MatchGuardChain → MatchGuardCondition ( && MatchGuardCondition )*

│ │ │ -

MatchGuardCondition →
     Expressionexcept ExcludedMatchConditions
   | OuterAttribute* let Pattern = MatchGuardScrutinee

│ │ │ -

MatchGuardScrutinee → Expressionexcept ExcludedMatchConditions

│ │ │ -

ExcludedMatchConditions →
      LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

LoopExpression →
    LoopLabel? (
        InfiniteLoopExpression
      | PredicateLoopExpression
      | IteratorLoopExpression
      | LabelBlockExpression
    )

│ │ │ -

InfiniteLoopExpression → loop BlockExpression

│ │ │ -

PredicateLoopExpression → while Conditions BlockExpression

│ │ │ -

IteratorLoopExpression →
    for Pattern in Expressionexcept StructExpression BlockExpression

│ │ │ -

LoopLabel → LIFETIME_OR_LABEL :

│ │ │ -

BreakExpression → break LIFETIME_OR_LABEL? Expression?

│ │ │ -

LabelBlockExpression → BlockExpression

│ │ │ -

ContinueExpression → continue LIFETIME_OR_LABEL?

│ │ │ -

LiteralExpression →
      CHAR_LITERAL
    | STRING_LITERAL
    | RAW_STRING_LITERAL
    | BYTE_LITERAL
    | BYTE_STRING_LITERAL
    | RAW_BYTE_STRING_LITERAL
    | C_STRING_LITERAL
    | RAW_C_STRING_LITERAL
    | INTEGER_LITERAL
    | FLOAT_LITERAL
    | true
    | false

│ │ │ -

IfExpression →
    if Conditions BlockExpression
    ( else ( BlockExpression | IfExpression ) )?

│ │ │ -

Conditions →
      Expressionexcept StructExpression
    | LetChain

│ │ │ -

LetChain → LetChainCondition ( && LetChainCondition )*

│ │ │ -

LetChainCondition →
      Expressionexcept ExcludedConditions
    | OuterAttribute* let Pattern = Scrutineeexcept ExcludedConditions

│ │ │ -

ExcludedConditions →
      StructExpression
    | LazyBooleanExpression
    | RangeExpr
    | RangeFromExpr
    | RangeInclusiveExpr
    | AssignmentExpression
    | CompoundAssignmentExpression

│ │ │ -

GroupedExpression → ( Expression )

│ │ │ -

FieldExpression → Expression . IDENTIFIER

│ │ │ -

ClosureExpression →
    async?
    move?
    ( || | | ClosureParameters? | )
    ( Expression | -> TypeNoBounds BlockExpression )

│ │ │ -

ClosureParameters → ClosureParam ( , ClosureParam )* ,?

│ │ │ -

ClosureParam → OuterAttribute* PatternNoTopAlt ( : Type )?

│ │ │ -

CallExpression → Expression ( CallParams? )

│ │ │ -

CallParams → Expression ( , Expression )* ,?

│ │ │ -

BlockExpression →
    {
        InnerAttribute*
        Statements?
    }

│ │ │ -

Statements →
      Statement+
    | Statement+ ExpressionWithoutBlock
    | ExpressionWithoutBlock

│ │ │ -

AsyncBlockExpression → async move? BlockExpression

│ │ │ -

ConstBlockExpression → const BlockExpression

│ │ │ -

UnsafeBlockExpression → unsafe BlockExpression

│ │ │ -

AwaitExpression → Expression . await

│ │ │ -

ArrayExpression → [ ArrayElements? ]

│ │ │ -

ArrayElements →
      Expression ( , Expression )* ,?
    | Expression ; Expression

│ │ │ -

IndexExpression → Expression [ Expression ]

│ │ │ -

│ │ │ -
│ │ │ - │ │ │ -
│ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IfExpression │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ArrayExpression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AwaitExpression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +if │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IndexExpression │ │ │ + │ │ │ + │ │ │ +Conditions │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -TupleExpression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -TupleIndexingExpression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +else │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -StructExpression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -CallExpression │ │ │ + │ │ │ + │ │ │ +IfExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MethodCallExpression │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -FieldExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ClosureExpression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ +LetChainCondition │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +let │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Scrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ +ExcludedConditions │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +StructExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ConstBlockExpression │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -UnsafeBlockExpression │ │ │ + │ │ │ + │ │ │ +RangeExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LoopExpression │ │ │ + │ │ │ + │ │ │ +RangeFromExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +RangeInclusiveExpr │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchExpression │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -72843,14 +69779,187 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayElements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +] │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayElements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IndexExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +[ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +] │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ StructExpression │ │ │ │ │ │ @@ -73097,44 +70206,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │
│ │ │ │ │ │ @@ -73412,47 +70524,1041 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Scrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArms │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +=> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +=> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArm │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArmGuard │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchArmGuard │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +if │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardChain │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&& │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardCondition │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +let │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardScrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MatchGuardScrutinee │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExcludedMatchConditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeFromExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopLabel │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LabelBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +loop │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +while │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Conditions │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +for │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Pattern │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +in │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LoopLabel │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BreakExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +break │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LabelBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ContinueExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +continue │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LIFETIME_OR_LABEL │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallParams │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │ @@ -74080,920 +72186,2530 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Expression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ComparisonExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +== │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +!= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +<= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +|| │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&& │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeCastExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +as │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypeNoBounds │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ ++= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +-= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +*= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +/= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +%= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +&= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +|= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +^= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +<<= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +>>= │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GroupedExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +InnerAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statements │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsyncBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +async │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +move │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConstBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +const │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UnsafeBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +unsafe │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LiteralExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OperatorExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GroupedExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ArrayExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AwaitExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +IndexExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TupleIndexingExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MethodCallExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +FieldExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ClosureExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsyncBlockExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ContinueExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +BreakExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RangeExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ReturnExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +UnderscoreExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +MacroInvocation │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Statements summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +Statement →
      ;
    | Item
    | LetStatement
    | ExpressionStatement
    | OuterAttribute* MacroInvocationSemi

│ │ │ +

LetStatement →
    OuterAttribute* let PatternNoTopAlt ( : Type )?
    (
          = Expression
        | = Expressionexcept LazyBooleanExpression or end with a } else BlockExpression
    )? ;

│ │ │ +

ExpressionStatement →
      ExpressionWithoutBlock ;
    | ExpressionWithBlock ;?

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ComparisonExpression │ │ │ + │ │ │ + │ │ │ +Statement │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -== │ │ │ + │ │ │ + │ │ │ +; │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +Item │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +LetStatement │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -!= │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ExpressionStatement │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -> │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +MacroInvocationSemi │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +LetStatement │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +OuterAttribute │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -< │ │ │ + │ │ │ + │ │ │ +let │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +PatternNoTopAlt │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +: │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +Type │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ ->= │ │ │ + │ │ │ + │ │ │ += │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Expression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +except LazyBooleanExpression or end with a `}` │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ Expression │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -<= │ │ │ + │ │ │ + │ │ │ +else │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +BlockExpression │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +; │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Configuration summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +ConfigurationPredicate →
      ConfigurationOption
    | ConfigurationAll
    | ConfigurationAny
    | ConfigurationNot
    | true
    | false

│ │ │ +

ConfigurationOption →
    IDENTIFIER ( = ( STRING_LITERAL | RAW_STRING_LITERAL ) )?

│ │ │ +

ConfigurationAll →
    all ( ConfigurationPredicateList? )

│ │ │ +

ConfigurationAny →
    any ( ConfigurationPredicateList? )

│ │ │ +

ConfigurationNot →
    not ( ConfigurationPredicate )

│ │ │ +

ConfigurationPredicateList →
    ConfigurationPredicate ( , ConfigurationPredicate )* ,?

│ │ │ +

CfgAttribute → cfg ( ConfigurationPredicate )

│ │ │ +

CfgAttrAttribute → cfg_attr ( ConfigurationPredicate , CfgAttrs? )

│ │ │ +

CfgAttrs → Attr ( , Attr )* ,?

│ │ │ +

CfgSelect → CfgSelectArms?

│ │ │ +

CfgSelectArms →
    CfgSelectConfigurationPredicate =>
    (
        { ^ TokenTree } ,? CfgSelectArms?
      | ExpressionWithBlockNoAttrs ,? CfgSelectArms?
      | ExpressionWithoutBlockNoAttrs ( , CfgSelectArms? )?
    )

│ │ │ +

CfgSelectConfigurationPredicate →
    ConfigurationPredicate | _

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ +ConfigurationAll │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +all │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -+= │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicateList │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ --= │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicateList │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicate │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -|= │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +ConfigurationPredicate │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -^= │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -<<= │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArms │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArm │ │ │ + │ │ │ + │ │ │ +CfgSelectConfigurationPredicate │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ => │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +{ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +no backtracking │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithoutBlock │ │ │ + │ │ │ + │ │ │ +TokenTree │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ +} │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ExpressionWithBlock │ │ │ + │ │ │ + │ │ │ +ExpressionWithBlockNoAttrs │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +ExpressionWithoutBlockNoAttrs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +CfgSelectArms │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ +

Assembly summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +AsmArgs → AsmAttrFormatString ( , AsmAttrFormatString )* ( , AsmAttrOperand )* ,?

│ │ │ +

FormatString → STRING_LITERAL | RAW_STRING_LITERAL | MacroInvocation

│ │ │ +

AsmAttrFormatString → ( OuterAttribute )* FormatString

│ │ │ +

AsmOperand →
      ClobberAbi
    | AsmOptions
    | RegOperand

│ │ │ +

AsmAttrOperand → ( OuterAttribute )* AsmOperand

│ │ │ +

ClobberAbi → clobber_abi ( Abi ( , Abi )* ,? )

│ │ │ +

AsmOptions →
    options ( ( AsmOption ( , AsmOption )* ,? )? )

│ │ │ +

AsmOption →
      pure
    | nomem
    | readonly
    | preserves_flags
    | noreturn
    | nostack
    | att_syntax
    | raw

│ │ │ +

RegOperand → ( ParamName = )?
    (
          DirSpec ( RegSpec ) Expression
        | DualDirSpec ( RegSpec ) DualDirSpecExpression
        | sym PathExpression
        | const Expression
        | label { Statements? }
    )

│ │ │ +

ParamName → IDENTIFIER_OR_KEYWORD | RAW_IDENTIFIER

│ │ │ +

DualDirSpecExpression →
      Expression
    | Expression => Expression

│ │ │ +

RegSpec → RegisterClass | ExplicitRegister

│ │ │ +

RegisterClass → IDENTIFIER_OR_KEYWORD

│ │ │ +

ExplicitRegister → STRING_LITERAL

│ │ │ +

DirSpec →
      in
    | out
    | lateout

│ │ │ +

DualDirSpec →
      inout
    | inlateout

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmArgs │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrOperand │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmAttrFormatString │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -75004,2038 +74720,2322 @@ │ │ │ │ │ │ │ │ │ OuterAttribute │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchArmGuard │ │ │ + │ │ │ + │ │ │ +FormatString │ │ │ │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -MatchGuardCondition │ │ │ + │ │ │ + │ │ │ +AsmOptions │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedMatchConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +options │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +AsmOption │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ + │ │ │ + │ │ │ +AsmOption │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -let │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -MatchGuardScrutinee │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -ExcludedMatchConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LazyBooleanExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +readonly │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +preserves_flags │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeFromExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +noreturn │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ + │ │ │ +nostack │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +att_syntax │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +raw │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -LoopExpression │ │ │ + │ │ │ + │ │ │ +RegOperand │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ -LoopLabel │ │ │ +ParamName │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ += │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -InfiniteLoopExpression │ │ │ + │ │ │ + │ │ │ +DirSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -PredicateLoopExpression │ │ │ + │ │ │ + │ │ │ +RegSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IteratorLoopExpression │ │ │ + │ │ │ + │ │ │ +Expression │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -LabelBlockExpression │ │ │ + │ │ │ + │ │ │ +DualDirSpec │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +( │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +RegSpec │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +DualDirSpecExpression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +sym │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathExpression │ │ │ │ │ │ - │ │ │ -
│ │ │ - │ │ │ - │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ +

Miscellaneous summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +TypeParamBounds → TypeParamBound ( + TypeParamBound )* +?

│ │ │ +

TypeParamBound → Lifetime | TraitBound | UseBound

│ │ │ +

TraitBound →
      ( ? | ForLifetimes )? TypePath
    | ( ( ? | ForLifetimes )? TypePath )

│ │ │ +

LifetimeBounds → ( Lifetime + )* Lifetime?

│ │ │ +

Lifetime →
      LIFETIME_OR_LABEL
    | 'static
    | '_

│ │ │ +

UseBound → use UseBoundGenericArgs

│ │ │ +

UseBoundGenericArgs →
      < >
    | < ( UseBoundGenericArg , )* UseBoundGenericArg ,? >

│ │ │ +

UseBoundGenericArg →
      Lifetime
    | IDENTIFIER
    | Self

│ │ │ +

ForLifetimes → for GenericParams

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +TraitBound │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -if │ │ │ + │ │ │ + │ │ │ +? │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Conditions │ │ │ + │ │ │ + │ │ │ +ForLifetimes │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -else │ │ │ + │ │ │ + │ │ │ +( │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +? │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -BlockExpression │ │ │ + │ │ │ + │ │ │ +ForLifetimes │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -IfExpression │ │ │ + │ │ │ + │ │ │ +TypePath │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +) │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -LetChainCondition │ │ │ + │ │ │ + │ │ │ +UseBound │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedConditions │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -OuterAttribute │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -let │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Pattern │ │ │ - │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ -= │ │ │ + │ │ │ + │ │ │ +use │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -except ExcludedConditions │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -Scrutinee │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArgs │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ExcludedConditions │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArgs │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -StructExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -LazyBooleanExpression │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RangeExpr │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArg │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -RangeFromExpr │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -RangeInclusiveExpr │ │ │ + │ │ │ + │ │ │ +UseBoundGenericArg │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +, │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -AssignmentExpression │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -CompoundAssignmentExpression │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ + │ │ │ +

Paths summary

│ │ │ +
│ │ │ +

Syntax │ │ │ +
│ │ │ +SimplePath →
    ::? SimplePathSegment ( :: SimplePathSegment )*

│ │ │ +

SimplePathSegment →
    IDENTIFIER | super | self | crate | $crate

│ │ │ +

PathInExpression →
    ::? PathExprSegment ( :: PathExprSegment )*

│ │ │ +

PathExprSegment →
    PathIdentSegment ( :: GenericArgs )?

│ │ │ +

PathIdentSegment →
    IDENTIFIER | super | self | Self | crate | $crate

│ │ │ +

GenericArgs →
      < >
    | < ( GenericArg , )* GenericArg ,? >

│ │ │ +

GenericArg →
    Lifetime | Type | GenericArgsConst | GenericArgsBinding | GenericArgsBounds

│ │ │ +

GenericArgsConst →
      BlockExpression
    | LiteralExpression
    | - LiteralExpression
    | SimplePathSegment

│ │ │ +

GenericArgsBinding →
    IDENTIFIER GenericArgs? = Type

│ │ │ +

GenericArgsBounds →
    IDENTIFIER GenericArgs? : TypeParamBounds

│ │ │ +

QualifiedPathInExpression → QualifiedPathType ( :: PathExprSegment )+

│ │ │ +

QualifiedPathType → < Type ( as TypePath )? >

│ │ │ +

QualifiedPathInType → QualifiedPathType ( :: TypePathSegment )+

│ │ │ +

TypePath → ::? TypePathSegment ( :: TypePathSegment )*

│ │ │ +

TypePathSegment → PathIdentSegment ( ::? ( GenericArgs | TypePathFn ) )?

│ │ │ +

TypePathFn → ( TypePathFnInputs? ) ( -> TypeNoBounds )?

│ │ │ +

TypePathFnInputs → Type ( , Type )* ,?

│ │ │ +

│ │ │ +
│ │ │ + │ │ │ +
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -ClosureExpression │ │ │ + │ │ │ + │ │ │ +SimplePath │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -async │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +SimplePathSegment │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -move │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -|| │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -| │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -ClosureParameters │ │ │ + │ │ │ + │ │ │ +SimplePathSegment │ │ │ │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ -| │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ + │ │ │ + │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ +
│ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ -CallParams │ │ │ + │ │ │ + │ │ │ +GenericArgs │ │ │ │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +< │ │ │ │ │ │ - │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArg │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ - │ │ │ -Expression │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ │ │ │ │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArg │ │ │ │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ , │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ +> │ │ │ │ │ │ - │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ │ │ │ -
│ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypePathSegment │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +PathIdentSegment │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ - │ │ │ -, │ │ │ + │ │ │ + │ │ │ +:: │ │ │ │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +GenericArgs │ │ │ │ │ │ - │ │ │ - │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +TypePathFn │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ + │ │ │ +
│ │ │ + │ │ │ + │ │ │ │ │ │ - │ │ │ ├── html2text {} │ │ │ │ @@ -25136,142 +25136,267 @@ │ │ │ │ Note │ │ │ │ The "windows" subsystem is commonly used by GUI applications that do │ │ │ │ not want to display a console window on startup. │ │ │ │ ************ _AA_pp_pp_ee_nn_dd_ii_cc_ee_ss ************ │ │ │ │ ************ _GG_rr_aa_mm_mm_aa_rr_ _ss_uu_mm_mm_aa_rr_yy ************ │ │ │ │ The following is a summary of the grammar production rules. For details on the │ │ │ │ syntax of this grammar, see _nn_oo_tt_aa_tt_ii_oo_nn_.._gg_rr_aa_mm_mm_aa_rr_.._ss_yy_nn_tt_aa_xx. │ │ │ │ -********** _AA_tt_tt_rr_ii_bb_uu_tt_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_P_r_o_c_M_a_c_r_o_D_e_r_i_v_e_A_t_t_r_i_b_u_t_e → │ │ │ │ -    proc_macro_derive ( _D_e_r_i_v_e_M_a_c_r_o_N_a_m_e ( , _D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s )? ,? ) │ │ │ │ -_D_e_r_i_v_e_M_a_c_r_o_N_a_m_e → _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s → │ │ │ │ -    attributes ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ -_I_n_n_e_r_A_t_t_r_i_b_u_t_e → # ! [ _A_t_t_r ] │ │ │ │ -_O_u_t_e_r_A_t_t_r_i_b_u_t_e → # [ _A_t_t_r ] │ │ │ │ -_A_t_t_r → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? │ │ │ │ -    | unsafe ( _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? ) │ │ │ │ -_A_t_t_r_I_n_p_u_t → │ │ │ │ -      _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -    | = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_a_I_t_e_m → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ( _M_e_t_a_S_e_q? ) │ │ │ │ -_M_e_t_a_S_e_q → │ │ │ │ -    _M_e_t_a_I_t_e_m_I_n_n_e_r ( , _M_e_t_a_I_t_e_m_I_n_n_e_r )* ,? │ │ │ │ -_M_e_t_a_I_t_e_m_I_n_n_e_r → │ │ │ │ -      _M_e_t_a_I_t_e_m │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_a_W_o_r_d → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) │ │ │ │ -_M_e_t_a_L_i_s_t_P_a_t_h_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _S_i_m_p_l_e_P_a_t_h ( , _S_i_m_p_l_e_P_a_t_h )* ,? )? ) │ │ │ │ -_M_e_t_a_L_i_s_t_I_d_e_n_t_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ -_M_e_t_a_L_i_s_t_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( ( _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r ( , _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r )* ,? )? ) │ │ │ │ -_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_A_t_t_r_i_b_u_t_e → collapse_debuginfo ( _C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n ) │ │ │ │ -_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n → │ │ │ │ -      yes │ │ │ │ -    | no │ │ │ │ -    | external │ │ │ │ -_I_n_l_i_n_e_A_t_t_r_i_b_u_t_e → │ │ │ │ -      inline ( always ) │ │ │ │ -    | inline ( never ) │ │ │ │ -    | inline │ │ │ │ -Show Railroad │ │ │ │ -ProcMacroDeriveAttribute proc_macro_derive ( DeriveMacroName , │ │ │ │ -DeriveMacroAttributes , ) │ │ │ │ -DeriveMacroName IDENTIFIER │ │ │ │ -DeriveMacroAttributes attributes ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ -InnerAttribute # ! [ Attr ] │ │ │ │ -OuterAttribute # [ Attr ] │ │ │ │ -Attr SimplePath AttrInput unsafe ( SimplePath AttrInput ) │ │ │ │ -AttrInput DelimTokenTree = Expression │ │ │ │ -MetaItem SimplePath SimplePath = Expression SimplePath ( MetaSeq ) │ │ │ │ -MetaSeq MetaItemInner , MetaItemInner , │ │ │ │ -MetaItemInner MetaItem Expression │ │ │ │ -MetaWord IDENTIFIER │ │ │ │ -MetaNameValueStr IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -MetaListPaths IDENTIFIER ( SimplePath , SimplePath , ) │ │ │ │ -MetaListIdents IDENTIFIER ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ -MetaListNameValueStr IDENTIFIER ( MetaNameValueStr , MetaNameValueStr , ) │ │ │ │ -CollapseDebuginfoAttribute collapse_debuginfo ( CollapseDebuginfoOption ) │ │ │ │ -CollapseDebuginfoOption yes no external │ │ │ │ -InlineAttribute inline ( always ) inline ( never ) inline │ │ │ │ -********** _CC_oo_nn_ff_ii_gg_uu_rr_aa_tt_ii_oo_nn_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +********** _II_tt_ee_mm_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ -      _C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y │ │ │ │ -    | _C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t │ │ │ │ -    | true │ │ │ │ -    | false │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) )? │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l → │ │ │ │ -    all ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y → │ │ │ │ -    any ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t → │ │ │ │ -    not ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ -_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t → │ │ │ │ -    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ( , _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e )* ,? │ │ │ │ -_C_f_g_A_t_t_r_i_b_u_t_e → cfg ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ -_C_f_g_A_t_t_r_A_t_t_r_i_b_u_t_e → cfg_attr ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e , _C_f_g_A_t_t_r_s? ) │ │ │ │ -_C_f_g_A_t_t_r_s → _A_t_t_r ( , _A_t_t_r )* ,? │ │ │ │ -_C_f_g_S_e_l_e_c_t → _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -_C_f_g_S_e_l_e_c_t_A_r_m_s → │ │ │ │ -    _C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e => │ │ │ │ +_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _V_i_s_I_t_e_m | _M_a_c_r_o_I_t_e_m ) │ │ │ │ +_V_i_s_I_t_e_m → │ │ │ │ +    _V_i_s_i_b_i_l_i_t_y? │ │ │ │     ( │ │ │ │ -        { ^ _T_o_k_e_n_T_r_e_e } ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ -      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s ( , _C_f_g_S_e_l_e_c_t_A_r_m_s? )? │ │ │ │ +        _M_o_d_u_l_e │ │ │ │ +      | _E_x_t_e_r_n_C_r_a_t_e │ │ │ │ +      | _U_s_e_D_e_c_l_a_r_a_t_i_o_n │ │ │ │ +      | _F_u_n_c_t_i_o_n │ │ │ │ +      | _T_y_p_e_A_l_i_a_s │ │ │ │ +      | _S_t_r_u_c_t │ │ │ │ +      | _E_n_u_m_e_r_a_t_i_o_n │ │ │ │ +      | _U_n_i_o_n │ │ │ │ +      | _C_o_n_s_t_a_n_t_I_t_e_m │ │ │ │ +      | _S_t_a_t_i_c_I_t_e_m │ │ │ │ +      | _T_r_a_i_t │ │ │ │ +      | _I_m_p_l_e_m_e_n_t_a_t_i_o_n │ │ │ │ +      | _E_x_t_e_r_n_B_l_o_c_k │ │ │ │     ) │ │ │ │ -_C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ -    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e | _ │ │ │ │ +_M_a_c_r_o_I_t_e_m → │ │ │ │ +      _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +    | _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n │ │ │ │ +_C_r_a_t_e → │ │ │ │ +    _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +    _I_t_e_m* │ │ │ │ +_V_i_s_i_b_i_l_i_t_y → │ │ │ │ +      pub │ │ │ │ +    | pub ( crate ) │ │ │ │ +    | pub ( self ) │ │ │ │ +    | pub ( super ) │ │ │ │ +    | pub ( in _S_i_m_p_l_e_P_a_t_h ) │ │ │ │ +_T_r_a_i_t → │ │ │ │ +    unsafe? trait _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +    { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_T_y_p_e_A_l_i_a_s → │ │ │ │ +    type _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s )? │ │ │ │ +        _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +        ( = _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? )? ; │ │ │ │ +_C_o_n_s_t_a_n_t_I_t_e_m → │ │ │ │ +    const ( _I_D_E_N_T_I_F_I_E_R | _ ) : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ +_S_t_r_u_c_t → │ │ │ │ +      _S_t_r_u_c_t_S_t_r_u_c_t │ │ │ │ +    | _T_u_p_l_e_S_t_r_u_c_t │ │ │ │ +_S_t_r_u_c_t_S_t_r_u_c_t → │ │ │ │ +    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? ( { _S_t_r_u_c_t_F_i_e_l_d_s? } | ; ) │ │ │ │ +_T_u_p_l_e_S_t_r_u_c_t → │ │ │ │ +    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( _T_u_p_l_e_F_i_e_l_d_s? ) _W_h_e_r_e_C_l_a_u_s_e? ; │ │ │ │ +_S_t_r_u_c_t_F_i_e_l_d_s → _S_t_r_u_c_t_F_i_e_l_d ( , _S_t_r_u_c_t_F_i_e_l_d )* ,? │ │ │ │ +_S_t_r_u_c_t_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ +_T_u_p_l_e_F_i_e_l_d_s → _T_u_p_l_e_F_i_e_l_d ( , _T_u_p_l_e_F_i_e_l_d )* ,? │ │ │ │ +_T_u_p_l_e_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _T_y_p_e │ │ │ │ +_I_m_p_l_e_m_e_n_t_a_t_i_o_n → _I_n_h_e_r_e_n_t_I_m_p_l | _T_r_a_i_t_I_m_p_l │ │ │ │ +_I_n_h_e_r_e_n_t_I_m_p_l → │ │ │ │ +    impl _G_e_n_e_r_i_c_P_a_r_a_m_s? _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_T_r_a_i_t_I_m_p_l → │ │ │ │ +    unsafe? impl _G_e_n_e_r_i_c_P_a_r_a_m_s? !? _T_y_p_e_P_a_t_h for _T_y_p_e │ │ │ │ +    _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +    { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_F_u_n_c_t_i_o_n → │ │ │ │ +    _F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s fn _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? │ │ │ │ +        ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s? ) │ │ │ │ +        _F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ +        ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | ; ) │ │ │ │ +_F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s → const? async? _I_t_e_m_S_a_f_e_t_y? ( extern _A_b_i? )? │ │ │ │ +_I_t_e_m_S_a_f_e_t_y → safe | unsafe │ │ │ │ +_A_b_i → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ +      _S_e_l_f_P_a_r_a_m ,? │ │ │ │ +    | ( _S_e_l_f_P_a_r_a_m , )? _F_u_n_c_t_i_o_n_P_a_r_a_m ( , _F_u_n_c_t_i_o_n_P_a_r_a_m )* ,? │ │ │ │ +_S_e_l_f_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _S_h_o_r_t_h_a_n_d_S_e_l_f | _T_y_p_e_d_S_e_l_f ) │ │ │ │ +_S_h_o_r_t_h_a_n_d_S_e_l_f → ( & | & _L_i_f_e_t_i_m_e )? mut? self │ │ │ │ +_T_y_p_e_d_S_e_l_f → mut? self : _T_y_p_e │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n | ... | _T_y_p_e ) │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n → _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t : ( _T_y_p_e | ... ) │ │ │ │ +_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e │ │ │ │ +_G_e_n_e_r_i_c_P_a_r_a_m_s → < ( _G_e_n_e_r_i_c_P_a_r_a_m ( , _G_e_n_e_r_i_c_P_a_r_a_m )* ,? )? > │ │ │ │ +_G_e_n_e_r_i_c_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _L_i_f_e_t_i_m_e_P_a_r_a_m | _T_y_p_e_P_a_r_a_m | _C_o_n_s_t_P_a_r_a_m ) │ │ │ │ +_L_i_f_e_t_i_m_e_P_a_r_a_m → _L_i_f_e_t_i_m_e ( : _L_i_f_e_t_i_m_e_B_o_u_n_d_s )? │ │ │ │ +_T_y_p_e_P_a_r_a_m → _I_D_E_N_T_I_F_I_E_R ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? ( = _T_y_p_e )? │ │ │ │ +_C_o_n_s_t_P_a_r_a_m → │ │ │ │ +    const _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ +    ( = ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_D_E_N_T_I_F_I_E_R | -? _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e → where ( _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m , )* _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m? │ │ │ │ +_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → │ │ │ │ +      _L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ +    | _T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ +_L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _L_i_f_e_t_i_m_e : _L_i_f_e_t_i_m_e_B_o_u_n_d_s │ │ │ │ +_T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _F_o_r_L_i_f_e_t_i_m_e_s? _T_y_p_e : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? │ │ │ │ +_S_t_a_t_i_c_I_t_e_m → │ │ │ │ +    _I_t_e_m_S_a_f_e_t_y? static mut? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ +_E_x_t_e_r_n_C_r_a_t_e → extern crate _C_r_a_t_e_R_e_f _A_s_C_l_a_u_s_e? ; │ │ │ │ +_C_r_a_t_e_R_e_f → _I_D_E_N_T_I_F_I_E_R | self │ │ │ │ +_A_s_C_l_a_u_s_e → as ( _I_D_E_N_T_I_F_I_E_R | _ ) │ │ │ │ +_A_s_s_o_c_i_a_t_e_d_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ +        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +      | ( _V_i_s_i_b_i_l_i_t_y? ( _T_y_p_e_A_l_i_a_s | _C_o_n_s_t_a_n_t_I_t_e_m | _F_u_n_c_t_i_o_n ) ) │ │ │ │ +    ) │ │ │ │ +_E_x_t_e_r_n_B_l_o_c_k → │ │ │ │ +    unsafe? extern _A_b_i? { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _E_x_t_e_r_n_a_l_I_t_e_m* │ │ │ │ +    } │ │ │ │ +_E_x_t_e_r_n_a_l_I_t_e_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ +        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +      | _V_i_s_i_b_i_l_i_t_y? _S_t_a_t_i_c_I_t_e_m │ │ │ │ +      | _V_i_s_i_b_i_l_i_t_y? _F_u_n_c_t_i_o_n │ │ │ │ +    ) │ │ │ │ +_U_n_i_o_n → │ │ │ │ +    union _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ +_U_s_e_D_e_c_l_a_r_a_t_i_o_n → use _U_s_e_T_r_e_e ; │ │ │ │ +_U_s_e_T_r_e_e → │ │ │ │ +      ( _S_i_m_p_l_e_P_a_t_h? :: )? * │ │ │ │ +    | ( _S_i_m_p_l_e_P_a_t_h? :: )? { ( _U_s_e_T_r_e_e ( , _U_s_e_T_r_e_e )* ,? )? } │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ( as ( _I_D_E_N_T_I_F_I_E_R | _ ) )? │ │ │ │ +_M_o_d_u_l_e → │ │ │ │ +      unsafe? mod _I_D_E_N_T_I_F_I_E_R ; │ │ │ │ +    | unsafe? mod _I_D_E_N_T_I_F_I_E_R { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _I_t_e_m* │ │ │ │ +      } │ │ │ │ +_E_n_u_m_e_r_a_t_i_o_n → │ │ │ │ +    enum _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _E_n_u_m_V_a_r_i_a_n_t_s? } │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_s → _E_n_u_m_V_a_r_i_a_n_t ( , _E_n_u_m_V_a_r_i_a_n_t )* ,? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( _E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e | _E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t )? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t? │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e → ( _T_u_p_l_e_F_i_e_l_d_s? ) │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t → { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ +_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t → = _E_x_p_r_e_s_s_i_o_n │ │ │ │ Show Railroad │ │ │ │ -ConfigurationPredicate ConfigurationOption ConfigurationAll ConfigurationAny │ │ │ │ -ConfigurationNot true false │ │ │ │ -ConfigurationOption IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -ConfigurationAll all ( ConfigurationPredicateList ) │ │ │ │ -ConfigurationAny any ( ConfigurationPredicateList ) │ │ │ │ -ConfigurationNot not ( ConfigurationPredicate ) │ │ │ │ -ConfigurationPredicateList ConfigurationPredicate , ConfigurationPredicate , │ │ │ │ -CfgAttribute cfg ( ConfigurationPredicate ) │ │ │ │ -CfgAttrAttribute cfg_attr ( ConfigurationPredicate , CfgAttrs ) │ │ │ │ -CfgAttrs Attr , Attr , │ │ │ │ -CfgSelect CfgSelectArms │ │ │ │ -CfgSelectArms CfgSelectConfigurationPredicate => { no backtracking TokenTree } │ │ │ │ -, CfgSelectArms ExpressionWithBlockNoAttrs , CfgSelectArms │ │ │ │ -ExpressionWithoutBlockNoAttrs , CfgSelectArms │ │ │ │ -CfgSelectConfigurationPredicate ConfigurationPredicate _ │ │ │ │ +Item OuterAttribute VisItem MacroItem │ │ │ │ +VisItem Visibility Module ExternCrate UseDeclaration Function TypeAlias Struct │ │ │ │ +Enumeration Union ConstantItem StaticItem Trait Implementation ExternBlock │ │ │ │ +MacroItem MacroInvocationSemi MacroRulesDefinition │ │ │ │ +Crate InnerAttribute Item │ │ │ │ +Visibility pub pub ( crate ) pub ( self ) pub ( super ) pub ( in SimplePath ) │ │ │ │ +Trait unsafe trait IDENTIFIER GenericParams : TypeParamBounds WhereClause │ │ │ │ +{ InnerAttribute AssociatedItem } │ │ │ │ +TypeAlias type IDENTIFIER GenericParams : TypeParamBounds WhereClause = Type │ │ │ │ +WhereClause ; │ │ │ │ +ConstantItem const IDENTIFIER _ : Type = Expression ; │ │ │ │ +Struct StructStruct TupleStruct │ │ │ │ +StructStruct struct IDENTIFIER GenericParams WhereClause { StructFields } ; │ │ │ │ +TupleStruct struct IDENTIFIER GenericParams ( TupleFields ) WhereClause ; │ │ │ │ +StructFields StructField , StructField , │ │ │ │ +StructField OuterAttribute Visibility IDENTIFIER : Type │ │ │ │ +TupleFields TupleField , TupleField , │ │ │ │ +TupleField OuterAttribute Visibility Type │ │ │ │ +Implementation InherentImpl TraitImpl │ │ │ │ +InherentImpl impl GenericParams Type WhereClause { InnerAttribute │ │ │ │ +AssociatedItem } │ │ │ │ +TraitImpl unsafe impl GenericParams ! TypePath for Type WhereClause │ │ │ │ +{ InnerAttribute AssociatedItem } │ │ │ │ +Function FunctionQualifiers fn IDENTIFIER GenericParams ( FunctionParameters ) │ │ │ │ +FunctionReturnType WhereClause BlockExpression ; │ │ │ │ +FunctionQualifiers const async ItemSafety extern Abi │ │ │ │ +ItemSafety safe unsafe │ │ │ │ +Abi STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +FunctionParameters SelfParam , SelfParam , FunctionParam , FunctionParam , │ │ │ │ +SelfParam OuterAttribute ShorthandSelf TypedSelf │ │ │ │ +ShorthandSelf & & Lifetime mut self │ │ │ │ +TypedSelf mut self : Type │ │ │ │ +FunctionParam OuterAttribute FunctionParamPattern ... Type │ │ │ │ +FunctionParamPattern PatternNoTopAlt : Type ... │ │ │ │ +FunctionReturnType -> Type │ │ │ │ +GenericParams < GenericParam , GenericParam , > │ │ │ │ +GenericParam OuterAttribute LifetimeParam TypeParam ConstParam │ │ │ │ +LifetimeParam Lifetime : LifetimeBounds │ │ │ │ +TypeParam IDENTIFIER : TypeParamBounds = Type │ │ │ │ +ConstParam const IDENTIFIER : Type = BlockExpression IDENTIFIER - │ │ │ │ +LiteralExpression │ │ │ │ +WhereClause where WhereClauseItem , WhereClauseItem │ │ │ │ +WhereClauseItem LifetimeWhereClauseItem TypeBoundWhereClauseItem │ │ │ │ +LifetimeWhereClauseItem Lifetime : LifetimeBounds │ │ │ │ +TypeBoundWhereClauseItem ForLifetimes Type : TypeParamBounds │ │ │ │ +StaticItem ItemSafety static mut IDENTIFIER : Type = Expression ; │ │ │ │ +ExternCrate extern crate CrateRef AsClause ; │ │ │ │ +CrateRef IDENTIFIER self │ │ │ │ +AsClause as IDENTIFIER _ │ │ │ │ +AssociatedItem OuterAttribute MacroInvocationSemi Visibility TypeAlias │ │ │ │ +ConstantItem Function │ │ │ │ +ExternBlock unsafe extern Abi { InnerAttribute ExternalItem } │ │ │ │ +ExternalItem OuterAttribute MacroInvocationSemi Visibility StaticItem │ │ │ │ +Visibility Function │ │ │ │ +Union union IDENTIFIER GenericParams WhereClause { StructFields } │ │ │ │ +UseDeclaration use UseTree ; │ │ │ │ +UseTree SimplePath :: * SimplePath :: { UseTree , UseTree , } SimplePath as │ │ │ │ +IDENTIFIER _ │ │ │ │ +Module unsafe mod IDENTIFIER ; unsafe mod IDENTIFIER { InnerAttribute Item } │ │ │ │ +Enumeration enum IDENTIFIER GenericParams WhereClause { EnumVariants } │ │ │ │ +EnumVariants EnumVariant , EnumVariant , │ │ │ │ +EnumVariant OuterAttribute Visibility IDENTIFIER EnumVariantTuple │ │ │ │ +EnumVariantStruct EnumVariantDiscriminant │ │ │ │ +EnumVariantTuple ( TupleFields ) │ │ │ │ +EnumVariantStruct { StructFields } │ │ │ │ +EnumVariantDiscriminant = Expression │ │ │ │ ********** _LL_ee_xx_ee_rr_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ LLeexxeerr │ │ │ │ -_W_H_I_T_E_S_P_A_C_E → │ │ │ │ -      U+0009 // Horizontal tab, '\t' │ │ │ │ -    | U+000A // Line feed, '\n' │ │ │ │ -    | U+000B // Vertical tab │ │ │ │ -    | U+000C // Form feed │ │ │ │ -    | U+000D // Carriage return, '\r' │ │ │ │ -    | U+0020 // Space, ' ' │ │ │ │ -    | U+0085 // Next line │ │ │ │ -    | U+200E // Left-to-right mark │ │ │ │ -    | U+200F // Right-to-left mark │ │ │ │ -    | U+2028 // Line separator │ │ │ │ -    | U+2029 // Paragraph separator │ │ │ │ -_T_A_B → U+0009 // Horizontal tab, '\t' │ │ │ │ -_L_F → U+000A // Line feed, '\n' │ │ │ │ -_C_R → U+000D // Carriage return, '\r' │ │ │ │ +_C_H_A_R → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value │ │ │ │ +_A_S_C_I_I → [U+0000-U+007F] │ │ │ │ +_N_U_L → U+0000 │ │ │ │ +_E_O_F → !_C_H_A_R // End of file or input │ │ │ │ +_S_H_E_B_A_N_G → │ │ │ │ +    #! !( ( _W_H_I_T_E_S_P_A_C_E | _L_I_N_E___C_O_M_M_E_N_T | _B_L_O_C_K___C_O_M_M_E_N_T )* [ ) │ │ │ │ +    ~_L_F* ( _L_F | _E_O_F ) │ │ │ │ +_C_O_M_M_E_N_T → │ │ │ │ +      _L_I_N_E___C_O_M_M_E_N_T │ │ │ │ +    | _I_N_N_E_R___L_I_N_E___D_O_C │ │ │ │ +    | _O_U_T_E_R___L_I_N_E___D_O_C │ │ │ │ +    | _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ +_L_I_N_E___C_O_M_M_E_N_T → │ │ │ │ +      // ( ~[/ ! _L_F] | // ) ~_L_F* │ │ │ │ +    | // _E_O_F │ │ │ │ +    | //immediately followed by LF │ │ │ │ +_B_L_O_C_K___C_O_M_M_E_N_T → │ │ │ │ +    /* ^ │ │ │ │ +      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | ( !*/ _C_H_A_R ) )* │ │ │ │ +    */ │ │ │ │ +_I_N_N_E_R___L_I_N_E___D_O_C → │ │ │ │ +    //! ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ +_L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T → ( !_C_R ~_L_F )* │ │ │ │ +_I_N_N_E_R___B_L_O_C_K___D_O_C → │ │ │ │ +    /*! ^ ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* */ │ │ │ │ +_O_U_T_E_R___L_I_N_E___D_O_C → │ │ │ │ +    /// ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ +_O_U_T_E_R___B_L_O_C_K___D_O_C → │ │ │ │ +    /** ![* /] │ │ │ │ +      ^ │ │ │ │ +      ( ~* | _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C ) │ │ │ │ +      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* │ │ │ │ +    */ │ │ │ │ +_B_L_O_C_K___C_H_A_R → ( !( */ | _C_R ) _C_H_A_R ) │ │ │ │ +_B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C → │ │ │ │ +      _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ +    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ _T_o_k_e_n → │ │ │ │       _R_E_S_E_R_V_E_D___T_O_K_E_N │ │ │ │     | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │     | _C_H_A_R___L_I_T_E_R_A_L │ │ │ │     | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │     | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │     | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ @@ -25435,69 +25560,59 @@ │ │ │ │     _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept b ' │ │ │ │ _R_E_S_E_R_V_E_D___T_O_K_E_N___P_O_U_N_D → │ │ │ │     _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept r or br or cr # │ │ │ │ _R_E_S_E_R_V_E_D___T_O_K_E_N___L_I_F_E_T_I_M_E → │ │ │ │     ' _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept r # │ │ │ │ _R_E_S_E_R_V_E_D___G_U_A_R_D_E_D___S_T_R_I_N_G___L_I_T_E_R_A_L → #+ _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ _R_E_S_E_R_V_E_D___P_O_U_N_D_S → #2.. │ │ │ │ -_S_H_E_B_A_N_G → │ │ │ │ -    #! !( ( _W_H_I_T_E_S_P_A_C_E | _L_I_N_E___C_O_M_M_E_N_T | _B_L_O_C_K___C_O_M_M_E_N_T )* [ ) │ │ │ │ -    ~_L_F* ( _L_F | _E_O_F ) │ │ │ │ -_C_H_A_R → [U+0000-U+D7FF U+E000-U+10FFFF] // a Unicode scalar value │ │ │ │ -_A_S_C_I_I → [U+0000-U+007F] │ │ │ │ -_N_U_L → U+0000 │ │ │ │ -_E_O_F → !_C_H_A_R // End of file or input │ │ │ │ _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D → ( _X_I_D___S_t_a_r_t | _ ) _X_I_D___C_o_n_t_i_n_u_e* │ │ │ │ _X_I_D___S_t_a_r_t → │ │ │ │ _X_I_D___C_o_n_t_i_n_u_e → │ │ │ │ _R_A_W___I_D_E_N_T_I_F_I_E_R → r# _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ _N_O_N___K_E_Y_W_O_R_D___I_D_E_N_T_I_F_I_E_R → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_Dexcept a _s_t_r_i_c_t or _r_e_s_e_r_v_e_d │ │ │ │ keyword │ │ │ │ _I_D_E_N_T_I_F_I_E_R → _N_O_N___K_E_Y_W_O_R_D___I_D_E_N_T_I_F_I_E_R | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ _R_E_S_E_R_V_E_D___R_A_W___I_D_E_N_T_I_F_I_E_R → │ │ │ │     r# ( _ | crate | self | Self | super ) !_X_I_D___C_o_n_t_i_n_u_e │ │ │ │ -_C_O_M_M_E_N_T → │ │ │ │ -      _L_I_N_E___C_O_M_M_E_N_T │ │ │ │ -    | _I_N_N_E_R___L_I_N_E___D_O_C │ │ │ │ -    | _O_U_T_E_R___L_I_N_E___D_O_C │ │ │ │ -    | _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ -_L_I_N_E___C_O_M_M_E_N_T → │ │ │ │ -      // ( ~[/ ! _L_F] | // ) ~_L_F* │ │ │ │ -    | // _E_O_F │ │ │ │ -    | //immediately followed by LF │ │ │ │ -_B_L_O_C_K___C_O_M_M_E_N_T → │ │ │ │ -    /* ^ │ │ │ │ -      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | ( !*/ _C_H_A_R ) )* │ │ │ │ -    */ │ │ │ │ -_I_N_N_E_R___L_I_N_E___D_O_C → │ │ │ │ -    //! ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ -_L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T → ( !_C_R ~_L_F )* │ │ │ │ -_I_N_N_E_R___B_L_O_C_K___D_O_C → │ │ │ │ -    /*! ^ ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* */ │ │ │ │ -_O_U_T_E_R___L_I_N_E___D_O_C → │ │ │ │ -    /// ^ _L_I_N_E___D_O_C___C_O_M_M_E_N_T___C_O_N_T_E_N_T ( _L_F | _E_O_F ) │ │ │ │ -_O_U_T_E_R___B_L_O_C_K___D_O_C → │ │ │ │ -    /** ![* /] │ │ │ │ -      ^ │ │ │ │ -      ( ~* | _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C ) │ │ │ │ -      ( _B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C | _B_L_O_C_K___C_H_A_R )* │ │ │ │ -    */ │ │ │ │ -_B_L_O_C_K___C_H_A_R → ( !( */ | _C_R ) _C_H_A_R ) │ │ │ │ -_B_L_O_C_K___C_O_M_M_E_N_T___O_R___D_O_C → │ │ │ │ -      _I_N_N_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _O_U_T_E_R___B_L_O_C_K___D_O_C │ │ │ │ -    | _B_L_O_C_K___C_O_M_M_E_N_T │ │ │ │ +_W_H_I_T_E_S_P_A_C_E → │ │ │ │ +      U+0009 // Horizontal tab, '\t' │ │ │ │ +    | U+000A // Line feed, '\n' │ │ │ │ +    | U+000B // Vertical tab │ │ │ │ +    | U+000C // Form feed │ │ │ │ +    | U+000D // Carriage return, '\r' │ │ │ │ +    | U+0020 // Space, ' ' │ │ │ │ +    | U+0085 // Next line │ │ │ │ +    | U+200E // Left-to-right mark │ │ │ │ +    | U+200F // Right-to-left mark │ │ │ │ +    | U+2028 // Line separator │ │ │ │ +    | U+2029 // Paragraph separator │ │ │ │ +_T_A_B → U+0009 // Horizontal tab, '\t' │ │ │ │ +_L_F → U+000A // Line feed, '\n' │ │ │ │ +_C_R → U+000D // Carriage return, '\r' │ │ │ │ Show Railroad │ │ │ │ -WHITESPACE U+0009 U+000A U+000B U+000C U+000D U+0020 U+0085 U+200E U+200F │ │ │ │ -U+2028 U+2029 │ │ │ │ -TAB U+0009 │ │ │ │ -LF U+000A │ │ │ │ -CR U+000D │ │ │ │ +CHAR U+0000-U+D7FF U+E000-U+10FFFF │ │ │ │ +ASCII U+0000-U+007F │ │ │ │ +NUL U+0000 │ │ │ │ +EOF not followed by CHAR │ │ │ │ +SHEBANG #! not followed by WHITESPACE LINE_COMMENT BLOCK_COMMENT [ ⚠️ with the │ │ │ │ +exception of LF CHAR LF EOF │ │ │ │ +COMMENT LINE_COMMENT INNER_LINE_DOC OUTER_LINE_DOC INNER_BLOCK_DOC │ │ │ │ +OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ +LINE_COMMENT // ⚠️ with the exception of / ! LF CHAR // ⚠️ with the exception │ │ │ │ +of LF CHAR // EOF immediately followed by LF // │ │ │ │ +BLOCK_COMMENT /* no backtracking BLOCK_COMMENT_OR_DOC not followed by */ CHAR │ │ │ │ +*/ │ │ │ │ +INNER_LINE_DOC //! no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ +LINE_DOC_COMMENT_CONTENT not followed by CR ⚠️ with the exception of LF CHAR │ │ │ │ +INNER_BLOCK_DOC /*! no backtracking BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ +OUTER_LINE_DOC /// no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ +OUTER_BLOCK_DOC /** not followed by * / no backtracking ⚠️ with the exception │ │ │ │ +of * CHAR BLOCK_COMMENT_OR_DOC BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ +BLOCK_CHAR not followed by */ CR CHAR │ │ │ │ +BLOCK_COMMENT_OR_DOC INNER_BLOCK_DOC OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ Token RESERVED_TOKEN RAW_IDENTIFIER CHAR_LITERAL STRING_LITERAL │ │ │ │ RAW_STRING_LITERAL BYTE_LITERAL BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL │ │ │ │ C_STRING_LITERAL RAW_C_STRING_LITERAL FLOAT_LITERAL INTEGER_LITERAL │ │ │ │ LIFETIME_TOKEN PUNCTUATION IDENTIFIER_OR_KEYWORD │ │ │ │ SUFFIX _ no backtracking XID_Continue XID_Start XID_Continue │ │ │ │ CHAR_LITERAL ' ⚠️ with the exception of ' \ LF CR TAB CHAR QUOTE_ESCAPE │ │ │ │ ASCII_ESCAPE UNICODE_ESCAPE ' SUFFIX │ │ │ │ @@ -25563,255 +25678,55 @@ │ │ │ │ RESERVED_TOKEN_DOUBLE_QUOTE except `b` or `c` or `r` or `br` or `cr` │ │ │ │ IDENTIFIER_OR_KEYWORD " │ │ │ │ RESERVED_TOKEN_SINGLE_QUOTE except `b` IDENTIFIER_OR_KEYWORD ' │ │ │ │ RESERVED_TOKEN_POUND except `r` or `br` or `cr` IDENTIFIER_OR_KEYWORD # │ │ │ │ RESERVED_TOKEN_LIFETIME ' except `r` IDENTIFIER_OR_KEYWORD # │ │ │ │ RESERVED_GUARDED_STRING_LITERAL # STRING_LITERAL │ │ │ │ RESERVED_POUNDS # # │ │ │ │ -SHEBANG #! not followed by WHITESPACE LINE_COMMENT BLOCK_COMMENT [ ⚠️ with the │ │ │ │ -exception of LF CHAR LF EOF │ │ │ │ -CHAR U+0000-U+D7FF U+E000-U+10FFFF │ │ │ │ -ASCII U+0000-U+007F │ │ │ │ -NUL U+0000 │ │ │ │ -EOF not followed by CHAR │ │ │ │ IDENTIFIER_OR_KEYWORD XID_Start _ XID_Continue │ │ │ │ XID_Start `XID_Start` defined by Unicode │ │ │ │ XID_Continue `XID_Continue` defined by Unicode │ │ │ │ RAW_IDENTIFIER r# IDENTIFIER_OR_KEYWORD │ │ │ │ NON_KEYWORD_IDENTIFIER except a strict or reserved keyword │ │ │ │ IDENTIFIER_OR_KEYWORD │ │ │ │ IDENTIFIER NON_KEYWORD_IDENTIFIER RAW_IDENTIFIER │ │ │ │ RESERVED_RAW_IDENTIFIER r# _ crate self Self super not followed by XID_Continue │ │ │ │ -COMMENT LINE_COMMENT INNER_LINE_DOC OUTER_LINE_DOC INNER_BLOCK_DOC │ │ │ │ -OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ -LINE_COMMENT // ⚠️ with the exception of / ! LF CHAR // ⚠️ with the exception │ │ │ │ -of LF CHAR // EOF immediately followed by LF // │ │ │ │ -BLOCK_COMMENT /* no backtracking BLOCK_COMMENT_OR_DOC not followed by */ CHAR │ │ │ │ -*/ │ │ │ │ -INNER_LINE_DOC //! no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ -LINE_DOC_COMMENT_CONTENT not followed by CR ⚠️ with the exception of LF CHAR │ │ │ │ -INNER_BLOCK_DOC /*! no backtracking BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ -OUTER_LINE_DOC /// no backtracking LINE_DOC_COMMENT_CONTENT LF EOF │ │ │ │ -OUTER_BLOCK_DOC /** not followed by * / no backtracking ⚠️ with the exception │ │ │ │ -of * CHAR BLOCK_COMMENT_OR_DOC BLOCK_COMMENT_OR_DOC BLOCK_CHAR */ │ │ │ │ -BLOCK_CHAR not followed by */ CR CHAR │ │ │ │ -BLOCK_COMMENT_OR_DOC INNER_BLOCK_DOC OUTER_BLOCK_DOC BLOCK_COMMENT │ │ │ │ -********** _II_tt_ee_mm_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_V_i_s_i_b_i_l_i_t_y → │ │ │ │ -      pub │ │ │ │ -    | pub ( crate ) │ │ │ │ -    | pub ( self ) │ │ │ │ -    | pub ( super ) │ │ │ │ -    | pub ( in _S_i_m_p_l_e_P_a_t_h ) │ │ │ │ -_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _V_i_s_I_t_e_m | _M_a_c_r_o_I_t_e_m ) │ │ │ │ -_V_i_s_I_t_e_m → │ │ │ │ -    _V_i_s_i_b_i_l_i_t_y? │ │ │ │ -    ( │ │ │ │ -        _M_o_d_u_l_e │ │ │ │ -      | _E_x_t_e_r_n_C_r_a_t_e │ │ │ │ -      | _U_s_e_D_e_c_l_a_r_a_t_i_o_n │ │ │ │ -      | _F_u_n_c_t_i_o_n │ │ │ │ -      | _T_y_p_e_A_l_i_a_s │ │ │ │ -      | _S_t_r_u_c_t │ │ │ │ -      | _E_n_u_m_e_r_a_t_i_o_n │ │ │ │ -      | _U_n_i_o_n │ │ │ │ -      | _C_o_n_s_t_a_n_t_I_t_e_m │ │ │ │ -      | _S_t_a_t_i_c_I_t_e_m │ │ │ │ -      | _T_r_a_i_t │ │ │ │ -      | _I_m_p_l_e_m_e_n_t_a_t_i_o_n │ │ │ │ -      | _E_x_t_e_r_n_B_l_o_c_k │ │ │ │ -    ) │ │ │ │ -_M_a_c_r_o_I_t_e_m → │ │ │ │ -      _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -    | _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n │ │ │ │ -_U_s_e_D_e_c_l_a_r_a_t_i_o_n → use _U_s_e_T_r_e_e ; │ │ │ │ -_U_s_e_T_r_e_e → │ │ │ │ -      ( _S_i_m_p_l_e_P_a_t_h? :: )? * │ │ │ │ -    | ( _S_i_m_p_l_e_P_a_t_h? :: )? { ( _U_s_e_T_r_e_e ( , _U_s_e_T_r_e_e )* ,? )? } │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ( as ( _I_D_E_N_T_I_F_I_E_R | _ ) )? │ │ │ │ -_U_n_i_o_n → │ │ │ │ -    union _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ -_T_y_p_e_A_l_i_a_s → │ │ │ │ -    type _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s )? │ │ │ │ -        _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -        ( = _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? )? ; │ │ │ │ -_T_r_a_i_t → │ │ │ │ -    unsafe? trait _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -    { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_S_t_r_u_c_t → │ │ │ │ -      _S_t_r_u_c_t_S_t_r_u_c_t │ │ │ │ -    | _T_u_p_l_e_S_t_r_u_c_t │ │ │ │ -_S_t_r_u_c_t_S_t_r_u_c_t → │ │ │ │ -    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? ( { _S_t_r_u_c_t_F_i_e_l_d_s? } | ; ) │ │ │ │ -_T_u_p_l_e_S_t_r_u_c_t → │ │ │ │ -    struct _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? ( _T_u_p_l_e_F_i_e_l_d_s? ) _W_h_e_r_e_C_l_a_u_s_e? ; │ │ │ │ -_S_t_r_u_c_t_F_i_e_l_d_s → _S_t_r_u_c_t_F_i_e_l_d ( , _S_t_r_u_c_t_F_i_e_l_d )* ,? │ │ │ │ -_S_t_r_u_c_t_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ -_T_u_p_l_e_F_i_e_l_d_s → _T_u_p_l_e_F_i_e_l_d ( , _T_u_p_l_e_F_i_e_l_d )* ,? │ │ │ │ -_T_u_p_l_e_F_i_e_l_d → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? _T_y_p_e │ │ │ │ -_S_t_a_t_i_c_I_t_e_m → │ │ │ │ -    _I_t_e_m_S_a_f_e_t_y? static mut? _I_D_E_N_T_I_F_I_E_R : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ -_M_o_d_u_l_e → │ │ │ │ -      unsafe? mod _I_D_E_N_T_I_F_I_E_R ; │ │ │ │ -    | unsafe? mod _I_D_E_N_T_I_F_I_E_R { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _I_t_e_m* │ │ │ │ -      } │ │ │ │ -_I_m_p_l_e_m_e_n_t_a_t_i_o_n → _I_n_h_e_r_e_n_t_I_m_p_l | _T_r_a_i_t_I_m_p_l │ │ │ │ -_I_n_h_e_r_e_n_t_I_m_p_l → │ │ │ │ -    impl _G_e_n_e_r_i_c_P_a_r_a_m_s? _T_y_p_e _W_h_e_r_e_C_l_a_u_s_e? { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_T_r_a_i_t_I_m_p_l → │ │ │ │ -    unsafe? impl _G_e_n_e_r_i_c_P_a_r_a_m_s? !? _T_y_p_e_P_a_t_h for _T_y_p_e │ │ │ │ -    _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -    { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _A_s_s_o_c_i_a_t_e_d_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_G_e_n_e_r_i_c_P_a_r_a_m_s → < ( _G_e_n_e_r_i_c_P_a_r_a_m ( , _G_e_n_e_r_i_c_P_a_r_a_m )* ,? )? > │ │ │ │ -_G_e_n_e_r_i_c_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _L_i_f_e_t_i_m_e_P_a_r_a_m | _T_y_p_e_P_a_r_a_m | _C_o_n_s_t_P_a_r_a_m ) │ │ │ │ -_L_i_f_e_t_i_m_e_P_a_r_a_m → _L_i_f_e_t_i_m_e ( : _L_i_f_e_t_i_m_e_B_o_u_n_d_s )? │ │ │ │ -_T_y_p_e_P_a_r_a_m → _I_D_E_N_T_I_F_I_E_R ( : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? )? ( = _T_y_p_e )? │ │ │ │ -_C_o_n_s_t_P_a_r_a_m → │ │ │ │ -    const _I_D_E_N_T_I_F_I_E_R : _T_y_p_e │ │ │ │ -    ( = ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_D_E_N_T_I_F_I_E_R | -? _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e → where ( _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m , )* _W_h_e_r_e_C_l_a_u_s_e_I_t_e_m? │ │ │ │ -_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → │ │ │ │ -      _L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ -    | _T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m │ │ │ │ -_L_i_f_e_t_i_m_e_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _L_i_f_e_t_i_m_e : _L_i_f_e_t_i_m_e_B_o_u_n_d_s │ │ │ │ -_T_y_p_e_B_o_u_n_d_W_h_e_r_e_C_l_a_u_s_e_I_t_e_m → _F_o_r_L_i_f_e_t_i_m_e_s? _T_y_p_e : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s? │ │ │ │ -_F_u_n_c_t_i_o_n → │ │ │ │ -    _F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s fn _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? │ │ │ │ -        ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s? ) │ │ │ │ -        _F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? _W_h_e_r_e_C_l_a_u_s_e? │ │ │ │ -        ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | ; ) │ │ │ │ -_F_u_n_c_t_i_o_n_Q_u_a_l_i_f_i_e_r_s → const? async? _I_t_e_m_S_a_f_e_t_y? ( extern _A_b_i? )? │ │ │ │ -_I_t_e_m_S_a_f_e_t_y → safe | unsafe │ │ │ │ -_A_b_i → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ -      _S_e_l_f_P_a_r_a_m ,? │ │ │ │ -    | ( _S_e_l_f_P_a_r_a_m , )? _F_u_n_c_t_i_o_n_P_a_r_a_m ( , _F_u_n_c_t_i_o_n_P_a_r_a_m )* ,? │ │ │ │ -_S_e_l_f_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _S_h_o_r_t_h_a_n_d_S_e_l_f | _T_y_p_e_d_S_e_l_f ) │ │ │ │ -_S_h_o_r_t_h_a_n_d_S_e_l_f → ( & | & _L_i_f_e_t_i_m_e )? mut? self │ │ │ │ -_T_y_p_e_d_S_e_l_f → mut? self : _T_y_p_e │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( _F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n | ... | _T_y_p_e ) │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_P_a_t_t_e_r_n → _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t : ( _T_y_p_e | ... ) │ │ │ │ -_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e │ │ │ │ -_E_x_t_e_r_n_B_l_o_c_k → │ │ │ │ -    unsafe? extern _A_b_i? { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _E_x_t_e_r_n_a_l_I_t_e_m* │ │ │ │ -    } │ │ │ │ -_E_x_t_e_r_n_a_l_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ -        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -      | _V_i_s_i_b_i_l_i_t_y? _S_t_a_t_i_c_I_t_e_m │ │ │ │ -      | _V_i_s_i_b_i_l_i_t_y? _F_u_n_c_t_i_o_n │ │ │ │ -    ) │ │ │ │ -_E_x_t_e_r_n_C_r_a_t_e → extern crate _C_r_a_t_e_R_e_f _A_s_C_l_a_u_s_e? ; │ │ │ │ -_C_r_a_t_e_R_e_f → _I_D_E_N_T_I_F_I_E_R | self │ │ │ │ -_A_s_C_l_a_u_s_e → as ( _I_D_E_N_T_I_F_I_E_R | _ ) │ │ │ │ -_E_n_u_m_e_r_a_t_i_o_n → │ │ │ │ -    enum _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_P_a_r_a_m_s? _W_h_e_r_e_C_l_a_u_s_e? { _E_n_u_m_V_a_r_i_a_n_t_s? } │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_s → _E_n_u_m_V_a_r_i_a_n_t ( , _E_n_u_m_V_a_r_i_a_n_t )* ,? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _V_i_s_i_b_i_l_i_t_y? │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R ( _E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e | _E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t )? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t? │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_T_u_p_l_e → ( _T_u_p_l_e_F_i_e_l_d_s? ) │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_S_t_r_u_c_t → { _S_t_r_u_c_t_F_i_e_l_d_s? } │ │ │ │ -_E_n_u_m_V_a_r_i_a_n_t_D_i_s_c_r_i_m_i_n_a_n_t → = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_C_o_n_s_t_a_n_t_I_t_e_m → │ │ │ │ -    const ( _I_D_E_N_T_I_F_I_E_R | _ ) : _T_y_p_e ( = _E_x_p_r_e_s_s_i_o_n )? ; │ │ │ │ -_A_s_s_o_c_i_a_t_e_d_I_t_e_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( │ │ │ │ -        _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -      | ( _V_i_s_i_b_i_l_i_t_y? ( _T_y_p_e_A_l_i_a_s | _C_o_n_s_t_a_n_t_I_t_e_m | _F_u_n_c_t_i_o_n ) ) │ │ │ │ -    ) │ │ │ │ -_C_r_a_t_e → │ │ │ │ -    _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -    _I_t_e_m* │ │ │ │ -Show Railroad │ │ │ │ -Visibility pub pub ( crate ) pub ( self ) pub ( super ) pub ( in SimplePath ) │ │ │ │ -Item OuterAttribute VisItem MacroItem │ │ │ │ -VisItem Visibility Module ExternCrate UseDeclaration Function TypeAlias Struct │ │ │ │ -Enumeration Union ConstantItem StaticItem Trait Implementation ExternBlock │ │ │ │ -MacroItem MacroInvocationSemi MacroRulesDefinition │ │ │ │ -UseDeclaration use UseTree ; │ │ │ │ -UseTree SimplePath :: * SimplePath :: { UseTree , UseTree , } SimplePath as │ │ │ │ -IDENTIFIER _ │ │ │ │ -Union union IDENTIFIER GenericParams WhereClause { StructFields } │ │ │ │ -TypeAlias type IDENTIFIER GenericParams : TypeParamBounds WhereClause = Type │ │ │ │ -WhereClause ; │ │ │ │ -Trait unsafe trait IDENTIFIER GenericParams : TypeParamBounds WhereClause │ │ │ │ -{ InnerAttribute AssociatedItem } │ │ │ │ -Struct StructStruct TupleStruct │ │ │ │ -StructStruct struct IDENTIFIER GenericParams WhereClause { StructFields } ; │ │ │ │ -TupleStruct struct IDENTIFIER GenericParams ( TupleFields ) WhereClause ; │ │ │ │ -StructFields StructField , StructField , │ │ │ │ -StructField OuterAttribute Visibility IDENTIFIER : Type │ │ │ │ -TupleFields TupleField , TupleField , │ │ │ │ -TupleField OuterAttribute Visibility Type │ │ │ │ -StaticItem ItemSafety static mut IDENTIFIER : Type = Expression ; │ │ │ │ -Module unsafe mod IDENTIFIER ; unsafe mod IDENTIFIER { InnerAttribute Item } │ │ │ │ -Implementation InherentImpl TraitImpl │ │ │ │ -InherentImpl impl GenericParams Type WhereClause { InnerAttribute │ │ │ │ -AssociatedItem } │ │ │ │ -TraitImpl unsafe impl GenericParams ! TypePath for Type WhereClause │ │ │ │ -{ InnerAttribute AssociatedItem } │ │ │ │ -GenericParams < GenericParam , GenericParam , > │ │ │ │ -GenericParam OuterAttribute LifetimeParam TypeParam ConstParam │ │ │ │ -LifetimeParam Lifetime : LifetimeBounds │ │ │ │ -TypeParam IDENTIFIER : TypeParamBounds = Type │ │ │ │ -ConstParam const IDENTIFIER : Type = BlockExpression IDENTIFIER - │ │ │ │ -LiteralExpression │ │ │ │ -WhereClause where WhereClauseItem , WhereClauseItem │ │ │ │ -WhereClauseItem LifetimeWhereClauseItem TypeBoundWhereClauseItem │ │ │ │ -LifetimeWhereClauseItem Lifetime : LifetimeBounds │ │ │ │ -TypeBoundWhereClauseItem ForLifetimes Type : TypeParamBounds │ │ │ │ -Function FunctionQualifiers fn IDENTIFIER GenericParams ( FunctionParameters ) │ │ │ │ -FunctionReturnType WhereClause BlockExpression ; │ │ │ │ -FunctionQualifiers const async ItemSafety extern Abi │ │ │ │ -ItemSafety safe unsafe │ │ │ │ -Abi STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ -FunctionParameters SelfParam , SelfParam , FunctionParam , FunctionParam , │ │ │ │ -SelfParam OuterAttribute ShorthandSelf TypedSelf │ │ │ │ -ShorthandSelf & & Lifetime mut self │ │ │ │ -TypedSelf mut self : Type │ │ │ │ -FunctionParam OuterAttribute FunctionParamPattern ... Type │ │ │ │ -FunctionParamPattern PatternNoTopAlt : Type ... │ │ │ │ -FunctionReturnType -> Type │ │ │ │ -ExternBlock unsafe extern Abi { InnerAttribute ExternalItem } │ │ │ │ -ExternalItem OuterAttribute MacroInvocationSemi Visibility StaticItem │ │ │ │ -Visibility Function │ │ │ │ -ExternCrate extern crate CrateRef AsClause ; │ │ │ │ -CrateRef IDENTIFIER self │ │ │ │ -AsClause as IDENTIFIER _ │ │ │ │ -Enumeration enum IDENTIFIER GenericParams WhereClause { EnumVariants } │ │ │ │ -EnumVariants EnumVariant , EnumVariant , │ │ │ │ -EnumVariant OuterAttribute Visibility IDENTIFIER EnumVariantTuple │ │ │ │ -EnumVariantStruct EnumVariantDiscriminant │ │ │ │ -EnumVariantTuple ( TupleFields ) │ │ │ │ -EnumVariantStruct { StructFields } │ │ │ │ -EnumVariantDiscriminant = Expression │ │ │ │ -ConstantItem const IDENTIFIER _ : Type = Expression ; │ │ │ │ -AssociatedItem OuterAttribute MacroInvocationSemi Visibility TypeAlias │ │ │ │ -ConstantItem Function │ │ │ │ -Crate InnerAttribute Item │ │ │ │ +WHITESPACE U+0009 U+000A U+000B U+000C U+000D U+0020 U+0085 U+200E U+200F │ │ │ │ +U+2028 U+2029 │ │ │ │ +TAB U+0009 │ │ │ │ +LF U+000A │ │ │ │ +CR U+000D │ │ │ │ ********** _TT_yy_pp_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ +_A_r_r_a_y_T_y_p_e → [ _T_y_p_e ; _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ +_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e → dyn? _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e_O_n_e_B_o_u_n_d → dyn? _T_r_a_i_t_B_o_u_n_d │ │ │ │ +_I_n_f_e_r_r_e_d_T_y_p_e → _ │ │ │ │ +_B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e → │ │ │ │ +    _F_o_r_L_i_f_e_t_i_m_e_s? _F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s fn │ │ │ │ +       ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c? ) _B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? │ │ │ │ +_F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s → unsafe? ( extern _A_b_i? )? │ │ │ │ +_B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c → │ │ │ │ +    _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s | _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ +    _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m ( , _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m )* ,? │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_P_a_r_a_m → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( ( _I_D_E_N_T_I_F_I_E_R | _ ) : )? _T_y_p_e │ │ │ │ +_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c → │ │ │ │ +    ( _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , )* _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ... │ │ │ │ +_N_e_v_e_r_T_y_p_e → ! │ │ │ │ +_S_l_i_c_e_T_y_p_e → [ _T_y_p_e ] │ │ │ │ +_R_e_f_e_r_e_n_c_e_T_y_p_e → & _L_i_f_e_t_i_m_e? mut? _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_R_a_w_P_o_i_n_t_e_r_T_y_p_e → * ( mut | const ) _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ +_T_u_p_l_e_T_y_p_e → │ │ │ │ +      ( ) │ │ │ │ +    | ( ( _T_y_p_e , )+ _T_y_p_e? ) │ │ │ │ +_I_m_p_l_T_r_a_i_t_T_y_p_e → impl _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d → impl _T_r_a_i_t_B_o_u_n_d │ │ │ │ _T_y_p_e → │ │ │ │       _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │     | _I_m_p_l_T_r_a_i_t_T_y_p_e │ │ │ │     | _T_r_a_i_t_O_b_j_e_c_t_T_y_p_e │ │ │ │ _T_y_p_e_N_o_B_o_u_n_d_s → │ │ │ │       _P_a_r_e_n_t_h_e_s_i_z_e_d_T_y_p_e │ │ │ │     | _I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d │ │ │ │ @@ -25824,122 +25739,41 @@ │ │ │ │     | _A_r_r_a_y_T_y_p_e │ │ │ │     | _S_l_i_c_e_T_y_p_e │ │ │ │     | _I_n_f_e_r_r_e_d_T_y_p_e │ │ │ │     | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e │ │ │ │     | _B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e │ │ │ │     | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ _P_a_r_e_n_t_h_e_s_i_z_e_d_T_y_p_e → ( _T_y_p_e ) │ │ │ │ -_T_u_p_l_e_T_y_p_e → │ │ │ │ -      ( ) │ │ │ │ -    | ( ( _T_y_p_e , )+ _T_y_p_e? ) │ │ │ │ -_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e → dyn? _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_T_r_a_i_t_O_b_j_e_c_t_T_y_p_e_O_n_e_B_o_u_n_d → dyn? _T_r_a_i_t_B_o_u_n_d │ │ │ │ -_S_l_i_c_e_T_y_p_e → [ _T_y_p_e ] │ │ │ │ -_R_e_f_e_r_e_n_c_e_T_y_p_e → & _L_i_f_e_t_i_m_e? mut? _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_R_a_w_P_o_i_n_t_e_r_T_y_p_e → * ( mut | const ) _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_N_e_v_e_r_T_y_p_e → ! │ │ │ │ -_I_n_f_e_r_r_e_d_T_y_p_e → _ │ │ │ │ -_I_m_p_l_T_r_a_i_t_T_y_p_e → impl _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_I_m_p_l_T_r_a_i_t_T_y_p_e_O_n_e_B_o_u_n_d → impl _T_r_a_i_t_B_o_u_n_d │ │ │ │ -_B_a_r_e_F_u_n_c_t_i_o_n_T_y_p_e → │ │ │ │ -    _F_o_r_L_i_f_e_t_i_m_e_s? _F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s fn │ │ │ │ -       ( _F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c? ) _B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e? │ │ │ │ -_F_u_n_c_t_i_o_n_T_y_p_e_Q_u_a_l_i_f_i_e_r_s → unsafe? ( extern _A_b_i? )? │ │ │ │ -_B_a_r_e_F_u_n_c_t_i_o_n_R_e_t_u_r_n_T_y_p_e → -> _T_y_p_e_N_o_B_o_u_n_d_s │ │ │ │ -_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_M_a_y_b_e_N_a_m_e_d_V_a_r_i_a_d_i_c → │ │ │ │ -    _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s | _M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s → │ │ │ │ -    _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m ( , _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m )* ,? │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_P_a_r_a_m → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ( ( _I_D_E_N_T_I_F_I_E_R | _ ) : )? _T_y_p_e │ │ │ │ -_M_a_y_b_e_N_a_m_e_d_F_u_n_c_t_i_o_n_P_a_r_a_m_e_t_e_r_s_V_a_r_i_a_d_i_c → │ │ │ │ -    ( _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , )* _M_a_y_b_e_N_a_m_e_d_P_a_r_a_m , _O_u_t_e_r_A_t_t_r_i_b_u_t_e* ... │ │ │ │ -_A_r_r_a_y_T_y_p_e → [ _T_y_p_e ; _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ Show Railroad │ │ │ │ -Type TypeNoBounds ImplTraitType TraitObjectType │ │ │ │ -TypeNoBounds ParenthesizedType ImplTraitTypeOneBound TraitObjectTypeOneBound │ │ │ │ -TypePath TupleType NeverType RawPointerType ReferenceType ArrayType SliceType │ │ │ │ -InferredType QualifiedPathInType BareFunctionType MacroInvocation │ │ │ │ -ParenthesizedType ( Type ) │ │ │ │ -TupleType ( ) ( Type , Type ) │ │ │ │ +ArrayType [ Type ; Expression ] │ │ │ │ TraitObjectType dyn TypeParamBounds │ │ │ │ TraitObjectTypeOneBound dyn TraitBound │ │ │ │ -SliceType [ Type ] │ │ │ │ -ReferenceType & Lifetime mut TypeNoBounds │ │ │ │ -RawPointerType * mut const TypeNoBounds │ │ │ │ -NeverType ! │ │ │ │ InferredType _ │ │ │ │ -ImplTraitType impl TypeParamBounds │ │ │ │ -ImplTraitTypeOneBound impl TraitBound │ │ │ │ BareFunctionType ForLifetimes FunctionTypeQualifiers fn │ │ │ │ ( FunctionParametersMaybeNamedVariadic ) BareFunctionReturnType │ │ │ │ FunctionTypeQualifiers unsafe extern Abi │ │ │ │ BareFunctionReturnType -> TypeNoBounds │ │ │ │ FunctionParametersMaybeNamedVariadic MaybeNamedFunctionParameters │ │ │ │ MaybeNamedFunctionParametersVariadic │ │ │ │ MaybeNamedFunctionParameters MaybeNamedParam , MaybeNamedParam , │ │ │ │ MaybeNamedParam OuterAttribute IDENTIFIER _ : Type │ │ │ │ MaybeNamedFunctionParametersVariadic MaybeNamedParam , MaybeNamedParam , │ │ │ │ OuterAttribute ... │ │ │ │ -ArrayType [ Type ; Expression ] │ │ │ │ -********** _MM_ii_ss_cc_ee_ll_ll_aa_nn_ee_oo_uu_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_T_y_p_e_P_a_r_a_m_B_o_u_n_d_s → _T_y_p_e_P_a_r_a_m_B_o_u_n_d ( + _T_y_p_e_P_a_r_a_m_B_o_u_n_d )* +? │ │ │ │ -_T_y_p_e_P_a_r_a_m_B_o_u_n_d → _L_i_f_e_t_i_m_e | _T_r_a_i_t_B_o_u_n_d | _U_s_e_B_o_u_n_d │ │ │ │ -_T_r_a_i_t_B_o_u_n_d → │ │ │ │ -      ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h │ │ │ │ -    | ( ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h ) │ │ │ │ -_L_i_f_e_t_i_m_e_B_o_u_n_d_s → ( _L_i_f_e_t_i_m_e + )* _L_i_f_e_t_i_m_e? │ │ │ │ -_L_i_f_e_t_i_m_e → │ │ │ │ -      _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L │ │ │ │ -    | 'static │ │ │ │ -    | '_ │ │ │ │ -_U_s_e_B_o_u_n_d → use _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s │ │ │ │ -_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ -      < > │ │ │ │ -    | < ( _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g , )* _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ -_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g → │ │ │ │ -      _L_i_f_e_t_i_m_e │ │ │ │ -    | _I_D_E_N_T_I_F_I_E_R │ │ │ │ -    | Self │ │ │ │ -_F_o_r_L_i_f_e_t_i_m_e_s → for _G_e_n_e_r_i_c_P_a_r_a_m_s │ │ │ │ -Show Railroad │ │ │ │ -TypeParamBounds TypeParamBound + TypeParamBound + │ │ │ │ -TypeParamBound Lifetime TraitBound UseBound │ │ │ │ -TraitBound ? ForLifetimes TypePath ( ? ForLifetimes TypePath ) │ │ │ │ -LifetimeBounds Lifetime + Lifetime │ │ │ │ -Lifetime LIFETIME_OR_LABEL 'static '_ │ │ │ │ -UseBound use UseBoundGenericArgs │ │ │ │ -UseBoundGenericArgs < > < UseBoundGenericArg , UseBoundGenericArg , > │ │ │ │ -UseBoundGenericArg Lifetime IDENTIFIER Self │ │ │ │ -ForLifetimes for GenericParams │ │ │ │ -********** _SS_tt_aa_tt_ee_mm_ee_nn_tt_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_S_t_a_t_e_m_e_n_t → │ │ │ │ -      ; │ │ │ │ -    | _I_t_e_m │ │ │ │ -    | _L_e_t_S_t_a_t_e_m_e_n_t │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t │ │ │ │ -    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ -_L_e_t_S_t_a_t_e_m_e_n_t → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ -    ( │ │ │ │ -          = _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | = _E_x_p_r_e_s_s_i_o_nexcept _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n or end with a } else │ │ │ │ -_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    )? ; │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k ; │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ;? │ │ │ │ -Show Railroad │ │ │ │ -Statement ; Item LetStatement ExpressionStatement OuterAttribute │ │ │ │ -MacroInvocationSemi │ │ │ │ -LetStatement OuterAttribute let PatternNoTopAlt : Type = Expression = except │ │ │ │ -LazyBooleanExpression or end with a `}` Expression else BlockExpression ; │ │ │ │ -ExpressionStatement ExpressionWithoutBlock ; ExpressionWithBlock ; │ │ │ │ +NeverType ! │ │ │ │ +SliceType [ Type ] │ │ │ │ +ReferenceType & Lifetime mut TypeNoBounds │ │ │ │ +RawPointerType * mut const TypeNoBounds │ │ │ │ +TupleType ( ) ( Type , Type ) │ │ │ │ +ImplTraitType impl TypeParamBounds │ │ │ │ +ImplTraitTypeOneBound impl TraitBound │ │ │ │ +Type TypeNoBounds ImplTraitType TraitObjectType │ │ │ │ +TypeNoBounds ParenthesizedType ImplTraitTypeOneBound TraitObjectTypeOneBound │ │ │ │ +TypePath TupleType NeverType RawPointerType ReferenceType ArrayType SliceType │ │ │ │ +InferredType QualifiedPathInType BareFunctionType MacroInvocation │ │ │ │ +ParenthesizedType ( Type ) │ │ │ │ ********** _PP_aa_tt_tt_ee_rr_nn_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ _P_a_t_t_e_r_n → |? _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( | _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t )* │ │ │ │ _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t → │ │ │ │       _P_a_t_t_e_r_n_W_i_t_h_o_u_t_R_a_n_g_e │ │ │ │     | _R_a_n_g_e_P_a_t_t_e_r_n │ │ │ │ _P_a_t_t_e_r_n_W_i_t_h_o_u_t_R_a_n_g_e → │ │ │ │ @@ -26041,80 +25875,79 @@ │ │ │ │ TupleStructItems Pattern , Pattern , │ │ │ │ TuplePattern ( TuplePatternItems ) │ │ │ │ TuplePatternItems Pattern , RestPattern Pattern , Pattern , │ │ │ │ GroupedPattern ( Pattern ) │ │ │ │ SlicePattern [ SlicePatternItems ] │ │ │ │ SlicePatternItems Pattern , Pattern , │ │ │ │ PathPattern PathExpression │ │ │ │ -********** _PP_aa_tt_hh_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +********** _AA_tt_tt_rr_ii_bb_uu_tt_ee_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_S_i_m_p_l_e_P_a_t_h → │ │ │ │ -    ::? _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t ( :: _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ -_S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R | super | self | crate | $crate │ │ │ │ -_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    ::? _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )* │ │ │ │ -_P_a_t_h_E_x_p_r_S_e_g_m_e_n_t → │ │ │ │ -    _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( :: _G_e_n_e_r_i_c_A_r_g_s )? │ │ │ │ -_P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R | super | self | Self | crate | $crate │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ -      < > │ │ │ │ -    | < ( _G_e_n_e_r_i_c_A_r_g , )* _G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ -_G_e_n_e_r_i_c_A_r_g → │ │ │ │ -    _L_i_f_e_t_i_m_e | _T_y_p_e | _G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t | _G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g | _G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t → │ │ │ │ -      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | - _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? = _T_y_p_e │ │ │ │ -_G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s → │ │ │ │ -    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )+ │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e → < _T_y_p_e ( as _T_y_p_e_P_a_t_h )? > │ │ │ │ -_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )+ │ │ │ │ -_T_y_p_e_P_a_t_h → ::? _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ -_T_y_p_e_P_a_t_h_S_e_g_m_e_n_t → _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( ::? ( _G_e_n_e_r_i_c_A_r_g_s | _T_y_p_e_P_a_t_h_F_n ) )? │ │ │ │ -_T_y_p_e_P_a_t_h_F_n → ( _T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s? ) ( -> _T_y_p_e_N_o_B_o_u_n_d_s )? │ │ │ │ -_T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s → _T_y_p_e ( , _T_y_p_e )* ,? │ │ │ │ +_I_n_n_e_r_A_t_t_r_i_b_u_t_e → # ! [ _A_t_t_r ] │ │ │ │ +_O_u_t_e_r_A_t_t_r_i_b_u_t_e → # [ _A_t_t_r ] │ │ │ │ +_A_t_t_r → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? │ │ │ │ +    | unsafe ( _S_i_m_p_l_e_P_a_t_h _A_t_t_r_I_n_p_u_t? ) │ │ │ │ +_A_t_t_r_I_n_p_u_t → │ │ │ │ +      _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +    | = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_e_t_a_I_t_e_m → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ( _M_e_t_a_S_e_q? ) │ │ │ │ +_M_e_t_a_S_e_q → │ │ │ │ +    _M_e_t_a_I_t_e_m_I_n_n_e_r ( , _M_e_t_a_I_t_e_m_I_n_n_e_r )* ,? │ │ │ │ +_M_e_t_a_I_t_e_m_I_n_n_e_r → │ │ │ │ +      _M_e_t_a_I_t_e_m │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_e_t_a_W_o_r_d → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) │ │ │ │ +_M_e_t_a_L_i_s_t_P_a_t_h_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _S_i_m_p_l_e_P_a_t_h ( , _S_i_m_p_l_e_P_a_t_h )* ,? )? ) │ │ │ │ +_M_e_t_a_L_i_s_t_I_d_e_n_t_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ +_M_e_t_a_L_i_s_t_N_a_m_e_V_a_l_u_e_S_t_r → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( ( _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r ( , _M_e_t_a_N_a_m_e_V_a_l_u_e_S_t_r )* ,? )? ) │ │ │ │ +_I_n_l_i_n_e_A_t_t_r_i_b_u_t_e → │ │ │ │ +      inline ( always ) │ │ │ │ +    | inline ( never ) │ │ │ │ +    | inline │ │ │ │ +_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_A_t_t_r_i_b_u_t_e → collapse_debuginfo ( _C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n ) │ │ │ │ +_C_o_l_l_a_p_s_e_D_e_b_u_g_i_n_f_o_O_p_t_i_o_n → │ │ │ │ +      yes │ │ │ │ +    | no │ │ │ │ +    | external │ │ │ │ +_P_r_o_c_M_a_c_r_o_D_e_r_i_v_e_A_t_t_r_i_b_u_t_e → │ │ │ │ +    proc_macro_derive ( _D_e_r_i_v_e_M_a_c_r_o_N_a_m_e ( , _D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s )? ,? ) │ │ │ │ +_D_e_r_i_v_e_M_a_c_r_o_N_a_m_e → _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_D_e_r_i_v_e_M_a_c_r_o_A_t_t_r_i_b_u_t_e_s → │ │ │ │ +    attributes ( ( _I_D_E_N_T_I_F_I_E_R ( , _I_D_E_N_T_I_F_I_E_R )* ,? )? ) │ │ │ │ Show Railroad │ │ │ │ -SimplePath :: SimplePathSegment :: SimplePathSegment │ │ │ │ -SimplePathSegment IDENTIFIER super self crate $crate │ │ │ │ -PathInExpression :: PathExprSegment :: PathExprSegment │ │ │ │ -PathExprSegment PathIdentSegment :: GenericArgs │ │ │ │ -PathIdentSegment IDENTIFIER super self Self crate $crate │ │ │ │ -GenericArgs < > < GenericArg , GenericArg , > │ │ │ │ -GenericArg Lifetime Type GenericArgsConst GenericArgsBinding GenericArgsBounds │ │ │ │ -GenericArgsConst BlockExpression LiteralExpression - LiteralExpression │ │ │ │ -SimplePathSegment │ │ │ │ -GenericArgsBinding IDENTIFIER GenericArgs = Type │ │ │ │ -GenericArgsBounds IDENTIFIER GenericArgs : TypeParamBounds │ │ │ │ -QualifiedPathInExpression QualifiedPathType :: PathExprSegment │ │ │ │ -QualifiedPathType < Type as TypePath > │ │ │ │ -QualifiedPathInType QualifiedPathType :: TypePathSegment │ │ │ │ -TypePath :: TypePathSegment :: TypePathSegment │ │ │ │ -TypePathSegment PathIdentSegment :: GenericArgs TypePathFn │ │ │ │ -TypePathFn ( TypePathFnInputs ) -> TypeNoBounds │ │ │ │ -TypePathFnInputs Type , Type , │ │ │ │ +InnerAttribute # ! [ Attr ] │ │ │ │ +OuterAttribute # [ Attr ] │ │ │ │ +Attr SimplePath AttrInput unsafe ( SimplePath AttrInput ) │ │ │ │ +AttrInput DelimTokenTree = Expression │ │ │ │ +MetaItem SimplePath SimplePath = Expression SimplePath ( MetaSeq ) │ │ │ │ +MetaSeq MetaItemInner , MetaItemInner , │ │ │ │ +MetaItemInner MetaItem Expression │ │ │ │ +MetaWord IDENTIFIER │ │ │ │ +MetaNameValueStr IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +MetaListPaths IDENTIFIER ( SimplePath , SimplePath , ) │ │ │ │ +MetaListIdents IDENTIFIER ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ +MetaListNameValueStr IDENTIFIER ( MetaNameValueStr , MetaNameValueStr , ) │ │ │ │ +InlineAttribute inline ( always ) inline ( never ) inline │ │ │ │ +CollapseDebuginfoAttribute collapse_debuginfo ( CollapseDebuginfoOption ) │ │ │ │ +CollapseDebuginfoOption yes no external │ │ │ │ +ProcMacroDeriveAttribute proc_macro_derive ( DeriveMacroName , │ │ │ │ +DeriveMacroAttributes , ) │ │ │ │ +DeriveMacroName IDENTIFIER │ │ │ │ +DeriveMacroAttributes attributes ( IDENTIFIER , IDENTIFIER , ) │ │ │ │ ********** _MM_aa_cc_rr_oo_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n → │ │ │ │ -    _S_i_m_p_l_e_P_a_t_h ! _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -_D_e_l_i_m_T_o_k_e_n_T_r_e_e → │ │ │ │ -      ( _T_o_k_e_n_T_r_e_e* ) │ │ │ │ -    | [ _T_o_k_e_n_T_r_e_e* ] │ │ │ │ -    | { _T_o_k_e_n_T_r_e_e* } │ │ │ │ -_T_o_k_e_n_T_r_e_e → │ │ │ │ -    _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s | _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ -_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i → │ │ │ │ -      _S_i_m_p_l_e_P_a_t_h ! ( _T_o_k_e_n_T_r_e_e* ) ; │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ! [ _T_o_k_e_n_T_r_e_e* ] ; │ │ │ │ -    | _S_i_m_p_l_e_P_a_t_h ! { _T_o_k_e_n_T_r_e_e* } │ │ │ │ _M_a_c_r_o_R_u_l_e_s_D_e_f_i_n_i_t_i_o_n → │ │ │ │     macro_rules ! _I_D_E_N_T_I_F_I_E_R _M_a_c_r_o_R_u_l_e_s_D_e_f │ │ │ │ _M_a_c_r_o_R_u_l_e_s_D_e_f → │ │ │ │       ( _M_a_c_r_o_R_u_l_e_s ) ; │ │ │ │     | [ _M_a_c_r_o_R_u_l_e_s ] ; │ │ │ │     | { _M_a_c_r_o_R_u_l_e_s } │ │ │ │ _M_a_c_r_o_R_u_l_e_s → │ │ │ │ @@ -26132,166 +25965,168 @@ │ │ │ │     | $ ( _M_a_c_r_o_M_a_t_c_h+ ) _M_a_c_r_o_R_e_p_S_e_p? _M_a_c_r_o_R_e_p_O_p │ │ │ │ _M_a_c_r_o_F_r_a_g_S_p_e_c → │ │ │ │       block | expr | expr_2021 | ident | item | lifetime | literal │ │ │ │     | meta | pat | pat_param | path | stmt | tt | ty | vis │ │ │ │ _M_a_c_r_o_R_e_p_S_e_p → _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s and _M_a_c_r_o_R_e_p_O_p │ │ │ │ _M_a_c_r_o_R_e_p_O_p → * | + | ? │ │ │ │ _M_a_c_r_o_T_r_a_n_s_c_r_i_b_e_r → _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n → │ │ │ │ +    _S_i_m_p_l_e_P_a_t_h ! _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_D_e_l_i_m_T_o_k_e_n_T_r_e_e → │ │ │ │ +      ( _T_o_k_e_n_T_r_e_e* ) │ │ │ │ +    | [ _T_o_k_e_n_T_r_e_e* ] │ │ │ │ +    | { _T_o_k_e_n_T_r_e_e* } │ │ │ │ +_T_o_k_e_n_T_r_e_e → │ │ │ │ +    _T_o_k_e_nexcept _d_e_l_i_m_i_t_e_r_s | _D_e_l_i_m_T_o_k_e_n_T_r_e_e │ │ │ │ +_M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i → │ │ │ │ +      _S_i_m_p_l_e_P_a_t_h ! ( _T_o_k_e_n_T_r_e_e* ) ; │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ! [ _T_o_k_e_n_T_r_e_e* ] ; │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h ! { _T_o_k_e_n_T_r_e_e* } │ │ │ │ Show Railroad │ │ │ │ -MacroInvocation SimplePath ! DelimTokenTree │ │ │ │ -DelimTokenTree ( TokenTree ) [ TokenTree ] { TokenTree } │ │ │ │ -TokenTree except delimiters Token DelimTokenTree │ │ │ │ -MacroInvocationSemi SimplePath ! ( TokenTree ) ; SimplePath ! [ TokenTree ] ; │ │ │ │ -SimplePath ! { TokenTree } │ │ │ │ MacroRulesDefinition macro_rules ! IDENTIFIER MacroRulesDef │ │ │ │ MacroRulesDef ( MacroRules ) ; [ MacroRules ] ; { MacroRules } │ │ │ │ MacroRules MacroRule ; MacroRule ; │ │ │ │ MacroRule MacroMatcher => MacroTranscriber │ │ │ │ MacroMatcher ( MacroMatch ) [ MacroMatch ] { MacroMatch } │ │ │ │ MacroMatch except `$` and delimiters Token MacroMatcher $ except `crate` │ │ │ │ IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER : MacroFragSpec $ ( MacroMatch ) │ │ │ │ MacroRepSep MacroRepOp │ │ │ │ MacroFragSpec block expr expr_2021 ident item lifetime literal meta pat │ │ │ │ pat_param path stmt tt ty vis │ │ │ │ MacroRepSep except delimiters and MacroRepOp Token │ │ │ │ MacroRepOp * + ? │ │ │ │ MacroTranscriber DelimTokenTree │ │ │ │ -********** _AA_ss_ss_ee_mm_bb_ll_yy_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ -SSyynnttaaxx │ │ │ │ -_A_s_m_A_r_g_s → _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g ( , _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g )* ( , _A_s_m_A_t_t_r_O_p_e_r_a_n_d )* │ │ │ │ -,? │ │ │ │ -_F_o_r_m_a_t_S_t_r_i_n_g → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ -_A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _F_o_r_m_a_t_S_t_r_i_n_g │ │ │ │ -_A_s_m_O_p_e_r_a_n_d → │ │ │ │ -      _C_l_o_b_b_e_r_A_b_i │ │ │ │ -    | _A_s_m_O_p_t_i_o_n_s │ │ │ │ -    | _R_e_g_O_p_e_r_a_n_d │ │ │ │ -_A_s_m_A_t_t_r_O_p_e_r_a_n_d → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _A_s_m_O_p_e_r_a_n_d │ │ │ │ -_C_l_o_b_b_e_r_A_b_i → clobber_abi ( _A_b_i ( , _A_b_i )* ,? ) │ │ │ │ -_A_s_m_O_p_t_i_o_n_s → │ │ │ │ -    options ( ( _A_s_m_O_p_t_i_o_n ( , _A_s_m_O_p_t_i_o_n )* ,? )? ) │ │ │ │ -_A_s_m_O_p_t_i_o_n → │ │ │ │ -      pure │ │ │ │ -    | nomem │ │ │ │ -    | readonly │ │ │ │ -    | preserves_flags │ │ │ │ -    | noreturn │ │ │ │ -    | nostack │ │ │ │ -    | att_syntax │ │ │ │ -    | raw │ │ │ │ -_R_e_g_O_p_e_r_a_n_d → ( _P_a_r_a_m_N_a_m_e = )? │ │ │ │ -    ( │ │ │ │ -          _D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | _D_u_a_l_D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | sym _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | const _E_x_p_r_e_s_s_i_o_n │ │ │ │ -        | label { _S_t_a_t_e_m_e_n_t_s? } │ │ │ │ -    ) │ │ │ │ -_P_a_r_a_m_N_a_m_e → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ -_D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n => _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_R_e_g_S_p_e_c → _R_e_g_i_s_t_e_r_C_l_a_s_s | _E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r │ │ │ │ -_R_e_g_i_s_t_e_r_C_l_a_s_s → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ -_E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r → _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -_D_i_r_S_p_e_c → │ │ │ │ -      in │ │ │ │ -    | out │ │ │ │ -    | lateout │ │ │ │ -_D_u_a_l_D_i_r_S_p_e_c → │ │ │ │ -      inout │ │ │ │ -    | inlateout │ │ │ │ -Show Railroad │ │ │ │ -AsmArgs AsmAttrFormatString , AsmAttrFormatString , AsmAttrOperand , │ │ │ │ -FormatString STRING_LITERAL RAW_STRING_LITERAL MacroInvocation │ │ │ │ -AsmAttrFormatString OuterAttribute FormatString │ │ │ │ -AsmOperand ClobberAbi AsmOptions RegOperand │ │ │ │ -AsmAttrOperand OuterAttribute AsmOperand │ │ │ │ -ClobberAbi clobber_abi ( Abi , Abi , ) │ │ │ │ -AsmOptions options ( AsmOption , AsmOption , ) │ │ │ │ -AsmOption pure nomem readonly preserves_flags noreturn nostack att_syntax raw │ │ │ │ -RegOperand ParamName = DirSpec ( RegSpec ) Expression DualDirSpec ( RegSpec ) │ │ │ │ -DualDirSpecExpression sym PathExpression const Expression label { Statements } │ │ │ │ -ParamName IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER │ │ │ │ -DualDirSpecExpression Expression Expression => Expression │ │ │ │ -RegSpec RegisterClass ExplicitRegister │ │ │ │ -RegisterClass IDENTIFIER_OR_KEYWORD │ │ │ │ -ExplicitRegister STRING_LITERAL │ │ │ │ -DirSpec in out lateout │ │ │ │ -DualDirSpec inout inlateout │ │ │ │ +MacroInvocation SimplePath ! DelimTokenTree │ │ │ │ +DelimTokenTree ( TokenTree ) [ TokenTree ] { TokenTree } │ │ │ │ +TokenTree except delimiters Token DelimTokenTree │ │ │ │ +MacroInvocationSemi SimplePath ! ( TokenTree ) ; SimplePath ! [ TokenTree ] ; │ │ │ │ +SimplePath ! { TokenTree } │ │ │ │ ********** _EE_xx_pp_rr_ee_ss_ss_ii_oo_nn_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ SSyynnttaaxx │ │ │ │ -_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ -      _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_r_r_a_y_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_w_a_i_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _I_n_d_e_x_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _F_i_e_l_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _B_r_e_a_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k → │ │ │ │ -    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ -_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ -      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _I_f_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _M_a_t_c_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _C_H_A_R___L_I_T_E_R_A_L │ │ │ │ +    | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ +    | _B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _R_A_W___C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +    | _I_N_T_E_G_E_R___L_I_T_E_R_A_L │ │ │ │ +    | _F_L_O_A_T___L_I_T_E_R_A_L │ │ │ │ +    | true │ │ │ │ +    | false │ │ │ │ +_A_w_a_i_t_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . await │ │ │ │ +_M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ +_R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n → return _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    async? │ │ │ │ +    move? │ │ │ │ +    ( || | | _C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s? | ) │ │ │ │ +    ( _E_x_p_r_e_s_s_i_o_n | -> _T_y_p_e_N_o_B_o_u_n_d_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n ) │ │ │ │ +_C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s → _C_l_o_s_u_r_e_P_a_r_a_m ( , _C_l_o_s_u_r_e_P_a_r_a_m )* ,? │ │ │ │ +_C_l_o_s_u_r_e_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ +_F_i_e_l_d_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _I_D_E_N_T_I_F_I_E_R │ │ │ │ +_I_f_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    if _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    ( else ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_f_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ +_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_e_t_C_h_a_i_n │ │ │ │ +_L_e_t_C_h_a_i_n → _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n ( && _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n )* │ │ │ │ +_L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ +    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _S_c_r_u_t_i_n_e_eexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ +    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n → _ │ │ │ │ _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n → ( _T_u_p_l_e_E_l_e_m_e_n_t_s? ) │ │ │ │ _T_u_p_l_e_E_l_e_m_e_n_t_s → ( _E_x_p_r_e_s_s_i_o_n , )+ _E_x_p_r_e_s_s_i_o_n? │ │ │ │ _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _T_U_P_L_E___I_N_D_E_X │ │ │ │ +_A_r_r_a_y_E_x_p_r_e_s_s_i_o_n → [ _A_r_r_a_y_E_l_e_m_e_n_t_s? ] │ │ │ │ +_A_r_r_a_y_E_l_e_m_e_n_t_s → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n ; _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_I_n_d_e_x_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n [ _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n → │ │ │ │     _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n { ( _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d_s | _S_t_r_u_c_t_B_a_s_e )? } │ │ │ │ _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d_s → │ │ │ │     _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d ( , _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d )* ( , _S_t_r_u_c_t_B_a_s_e | ,? ) │ │ │ │ _S_t_r_u_c_t_E_x_p_r_F_i_e_l_d → │ │ │ │     _O_u_t_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │     ( │ │ │ │         _I_D_E_N_T_I_F_I_E_R │ │ │ │       | ( _I_D_E_N_T_I_F_I_E_R | _T_U_P_L_E___I_N_D_E_X ) : _E_x_p_r_e_s_s_i_o_n │ │ │ │     ) │ │ │ │ _S_t_r_u_c_t_B_a_s_e → .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n → return _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_P_a_t_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │       _R_a_n_g_e_E_x_p_r │ │ │ │     | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │     | _R_a_n_g_e_T_o_E_x_p_r │ │ │ │     | _R_a_n_g_e_F_u_l_l_E_x_p_r │ │ │ │     | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │     | _R_a_n_g_e_T_o_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ _R_a_n_g_e_E_x_p_r → _E_x_p_r_e_s_s_i_o_n .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_F_r_o_m_E_x_p_r → _E_x_p_r_e_s_s_i_o_n .. │ │ │ │ _R_a_n_g_e_T_o_E_x_p_r → .. _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_F_u_l_l_E_x_p_r → .. │ │ │ │ _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r → _E_x_p_r_e_s_s_i_o_n ..= _E_x_p_r_e_s_s_i_o_n │ │ │ │ _R_a_n_g_e_T_o_I_n_c_l_u_s_i_v_e_E_x_p_r → ..= _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_P_a_t_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    match _S_c_r_u_t_i_n_e_e { │ │ │ │ +        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ +        _M_a_t_c_h_A_r_m_s? │ │ │ │ +    } │ │ │ │ +_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_A_r_m_s → │ │ │ │ +    ( _M_a_t_c_h_A_r_m => ( _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k , | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ,? ) )* │ │ │ │ +    _M_a_t_c_h_A_r_m => _E_x_p_r_e_s_s_i_o_n ,? │ │ │ │ +_M_a_t_c_h_A_r_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n _M_a_t_c_h_A_r_m_G_u_a_r_d? │ │ │ │ +_M_a_t_c_h_A_r_m_G_u_a_r_d → if _M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +     _M_a_t_c_h_G_u_a_r_d_C_h_a_i_n │ │ │ │ +   | _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_C_h_a_i_n → _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n ( && _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n )* │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n → │ │ │ │ +     _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +   | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e │ │ │ │ +_M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ +_E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ +      _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ +    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ +    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    _L_o_o_p_L_a_b_e_l? ( │ │ │ │ +        _I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +      | _L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    ) │ │ │ │ +_I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → loop _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → while _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    for _P_a_t_t_e_r_n in _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_L_o_o_p_L_a_b_e_l → _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L : │ │ │ │ +_B_r_e_a_k_E_x_p_r_e_s_s_i_o_n → break _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? _E_x_p_r_e_s_s_i_o_n? │ │ │ │ +_L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +_C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n → continue _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? │ │ │ │ +_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ +_C_a_l_l_P_a_r_a_m_s → _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n → │ │ │ │       _B_o_r_r_o_w_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _D_e_r_e_f_e_r_e_n_c_e_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _T_r_y_P_r_o_p_a_g_a_t_i_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _N_e_g_a_t_i_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _A_r_i_t_h_m_e_t_i_c_O_r_L_o_g_i_c_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │     | _C_o_m_p_a_r_i_s_o_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ @@ -26339,170 +26174,103 @@ │ │ │ │     | _E_x_p_r_e_s_s_i_o_n /= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n %= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n &= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n |= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n ^= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n <<= _E_x_p_r_e_s_s_i_o_n │ │ │ │     | _E_x_p_r_e_s_s_i_o_n >>= _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ -_M_a_t_c_h_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    match _S_c_r_u_t_i_n_e_e { │ │ │ │ -        _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │ -        _M_a_t_c_h_A_r_m_s? │ │ │ │ -    } │ │ │ │ -_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_a_t_c_h_A_r_m_s → │ │ │ │ -    ( _M_a_t_c_h_A_r_m => ( _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k , | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ,? ) )* │ │ │ │ -    _M_a_t_c_h_A_r_m => _E_x_p_r_e_s_s_i_o_n ,? │ │ │ │ -_M_a_t_c_h_A_r_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n _M_a_t_c_h_A_r_m_G_u_a_r_d? │ │ │ │ -_M_a_t_c_h_A_r_m_G_u_a_r_d → if _M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -     _M_a_t_c_h_G_u_a_r_d_C_h_a_i_n │ │ │ │ -   | _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_C_h_a_i_n → _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n ( && _M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n )* │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_C_o_n_d_i_t_i_o_n → │ │ │ │ -     _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -   | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e │ │ │ │ -_M_a_t_c_h_G_u_a_r_d_S_c_r_u_t_i_n_e_e → _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_E_x_c_l_u_d_e_d_M_a_t_c_h_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ -    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    _L_o_o_p_L_a_b_e_l? ( │ │ │ │ -        _I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ -      | _L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    ) │ │ │ │ -_I_n_f_i_n_i_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → loop _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_P_r_e_d_i_c_a_t_e_L_o_o_p_E_x_p_r_e_s_s_i_o_n → while _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_I_t_e_r_a_t_o_r_L_o_o_p_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    for _P_a_t_t_e_r_n in _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_L_o_o_p_L_a_b_e_l → _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L : │ │ │ │ -_B_r_e_a_k_E_x_p_r_e_s_s_i_o_n → break _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? _E_x_p_r_e_s_s_i_o_n? │ │ │ │ -_L_a_b_e_l_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n → continue _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L? │ │ │ │ -_L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -      _C_H_A_R___L_I_T_E_R_A_L │ │ │ │ -    | _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _B_Y_T_E___L_I_T_E_R_A_L │ │ │ │ -    | _B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___B_Y_T_E___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _R_A_W___C___S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ -    | _I_N_T_E_G_E_R___L_I_T_E_R_A_L │ │ │ │ -    | _F_L_O_A_T___L_I_T_E_R_A_L │ │ │ │ -    | true │ │ │ │ -    | false │ │ │ │ -_I_f_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    if _C_o_n_d_i_t_i_o_n_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    ( else ( _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n | _I_f_E_x_p_r_e_s_s_i_o_n ) )? │ │ │ │ -_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_nexcept _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_e_t_C_h_a_i_n │ │ │ │ -_L_e_t_C_h_a_i_n → _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n ( && _L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n )* │ │ │ │ -_L_e_t_C_h_a_i_n_C_o_n_d_i_t_i_o_n → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_nexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ -    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n = _S_c_r_u_t_i_n_e_eexcept _E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s │ │ │ │ -_E_x_c_l_u_d_e_d_C_o_n_d_i_t_i_o_n_s → │ │ │ │ -      _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _R_a_n_g_e_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_F_r_o_m_E_x_p_r │ │ │ │ -    | _R_a_n_g_e_I_n_c_l_u_s_i_v_e_E_x_p_r │ │ │ │ -    | _A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ -    | _C_o_m_p_o_u_n_d_A_s_s_i_g_n_m_e_n_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n → ( _E_x_p_r_e_s_s_i_o_n ) │ │ │ │ -_F_i_e_l_d_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . _I_D_E_N_T_I_F_I_E_R │ │ │ │ -_C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n → │ │ │ │ -    async? │ │ │ │ -    move? │ │ │ │ -    ( || | | _C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s? | ) │ │ │ │ -    ( _E_x_p_r_e_s_s_i_o_n | -> _T_y_p_e_N_o_B_o_u_n_d_s _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n ) │ │ │ │ -_C_l_o_s_u_r_e_P_a_r_a_m_e_t_e_r_s → _C_l_o_s_u_r_e_P_a_r_a_m ( , _C_l_o_s_u_r_e_P_a_r_a_m )* ,? │ │ │ │ -_C_l_o_s_u_r_e_P_a_r_a_m → _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ -_C_a_l_l_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n ( _C_a_l_l_P_a_r_a_m_s? ) │ │ │ │ -_C_a_l_l_P_a_r_a_m_s → _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → │ │ │ │     { │ │ │ │         _I_n_n_e_r_A_t_t_r_i_b_u_t_e* │ │ │ │         _S_t_a_t_e_m_e_n_t_s? │ │ │ │     } │ │ │ │ _S_t_a_t_e_m_e_n_t_s → │ │ │ │       _S_t_a_t_e_m_e_n_t+ │ │ │ │     | _S_t_a_t_e_m_e_n_t+ _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │     | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → async move? _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → const _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n → unsafe _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ -_A_w_a_i_t_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n . await │ │ │ │ -_A_r_r_a_y_E_x_p_r_e_s_s_i_o_n → [ _A_r_r_a_y_E_l_e_m_e_n_t_s? ] │ │ │ │ -_A_r_r_a_y_E_l_e_m_e_n_t_s → │ │ │ │ -      _E_x_p_r_e_s_s_i_o_n ( , _E_x_p_r_e_s_s_i_o_n )* ,? │ │ │ │ -    | _E_x_p_r_e_s_s_i_o_n ; _E_x_p_r_e_s_s_i_o_n │ │ │ │ -_I_n_d_e_x_E_x_p_r_e_s_s_i_o_n → _E_x_p_r_e_s_s_i_o_n [ _E_x_p_r_e_s_s_i_o_n ] │ │ │ │ +_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ +      _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _O_p_e_r_a_t_o_r_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _G_r_o_u_p_e_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_r_r_a_y_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_w_a_i_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _I_n_d_e_x_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _T_u_p_l_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _T_u_p_l_e_I_n_d_e_x_i_n_g_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_t_r_u_c_t_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_e_t_h_o_d_C_a_l_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _F_i_e_l_d_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_l_o_s_u_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _A_s_y_n_c_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_n_t_i_n_u_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _B_r_e_a_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_a_n_g_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _R_e_t_u_r_n_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _U_n_d_e_r_s_c_o_r_e_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s → │ │ │ │ +      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _C_o_n_s_t_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _U_n_s_a_f_e_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_o_o_p_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _I_f_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _M_a_t_c_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ Show Railroad │ │ │ │ -Expression ExpressionWithoutBlock ExpressionWithBlock │ │ │ │ -ExpressionWithoutBlock OuterAttribute ExpressionWithoutBlockNoAttrs │ │ │ │ -ExpressionWithoutBlockNoAttrs LiteralExpression PathExpression │ │ │ │ -OperatorExpression GroupedExpression ArrayExpression AwaitExpression │ │ │ │ -IndexExpression TupleExpression TupleIndexingExpression StructExpression │ │ │ │ -CallExpression MethodCallExpression FieldExpression ClosureExpression │ │ │ │ -AsyncBlockExpression ContinueExpression BreakExpression RangeExpression │ │ │ │ -ReturnExpression UnderscoreExpression MacroInvocation │ │ │ │ -ExpressionWithBlock OuterAttribute ExpressionWithBlockNoAttrs │ │ │ │ -ExpressionWithBlockNoAttrs BlockExpression ConstBlockExpression │ │ │ │ -UnsafeBlockExpression LoopExpression IfExpression MatchExpression │ │ │ │ +LiteralExpression CHAR_LITERAL STRING_LITERAL RAW_STRING_LITERAL BYTE_LITERAL │ │ │ │ +BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL C_STRING_LITERAL │ │ │ │ +RAW_C_STRING_LITERAL INTEGER_LITERAL FLOAT_LITERAL true false │ │ │ │ +AwaitExpression Expression . await │ │ │ │ +MethodCallExpression Expression . PathExprSegment ( CallParams ) │ │ │ │ +ReturnExpression return Expression │ │ │ │ +ClosureExpression async move || | ClosureParameters | Expression - │ │ │ │ +> TypeNoBounds BlockExpression │ │ │ │ +ClosureParameters ClosureParam , ClosureParam , │ │ │ │ +ClosureParam OuterAttribute PatternNoTopAlt : Type │ │ │ │ +FieldExpression Expression . IDENTIFIER │ │ │ │ +IfExpression if Conditions BlockExpression else BlockExpression IfExpression │ │ │ │ +Conditions except StructExpression Expression LetChain │ │ │ │ +LetChain LetChainCondition && LetChainCondition │ │ │ │ +LetChainCondition except ExcludedConditions Expression OuterAttribute let │ │ │ │ +Pattern = except ExcludedConditions Scrutinee │ │ │ │ +ExcludedConditions StructExpression LazyBooleanExpression RangeExpr │ │ │ │ +RangeFromExpr RangeInclusiveExpr AssignmentExpression │ │ │ │ +CompoundAssignmentExpression │ │ │ │ UnderscoreExpression _ │ │ │ │ TupleExpression ( TupleElements ) │ │ │ │ TupleElements Expression , Expression │ │ │ │ TupleIndexingExpression Expression . TUPLE_INDEX │ │ │ │ +ArrayExpression [ ArrayElements ] │ │ │ │ +ArrayElements Expression , Expression , Expression ; Expression │ │ │ │ +IndexExpression Expression [ Expression ] │ │ │ │ StructExpression PathInExpression { StructExprFields StructBase } │ │ │ │ StructExprFields StructExprField , StructExprField , StructBase , │ │ │ │ StructExprField OuterAttribute IDENTIFIER IDENTIFIER TUPLE_INDEX : Expression │ │ │ │ StructBase .. Expression │ │ │ │ -ReturnExpression return Expression │ │ │ │ +PathExpression PathInExpression QualifiedPathInExpression │ │ │ │ RangeExpression RangeExpr RangeFromExpr RangeToExpr RangeFullExpr │ │ │ │ RangeInclusiveExpr RangeToInclusiveExpr │ │ │ │ RangeExpr Expression .. Expression │ │ │ │ RangeFromExpr Expression .. │ │ │ │ RangeToExpr .. Expression │ │ │ │ RangeFullExpr .. │ │ │ │ RangeInclusiveExpr Expression ..= Expression │ │ │ │ RangeToInclusiveExpr ..= Expression │ │ │ │ -PathExpression PathInExpression QualifiedPathInExpression │ │ │ │ -OperatorExpression BorrowExpression DereferenceExpression │ │ │ │ -TryPropagationExpression NegationExpression ArithmeticOrLogicalExpression │ │ │ │ -ComparisonExpression LazyBooleanExpression TypeCastExpression │ │ │ │ -AssignmentExpression CompoundAssignmentExpression │ │ │ │ -BorrowExpression & && Expression & && mut Expression & && raw const Expression │ │ │ │ -& && raw mut Expression │ │ │ │ -DereferenceExpression * Expression │ │ │ │ -TryPropagationExpression Expression ? │ │ │ │ -NegationExpression - Expression ! Expression │ │ │ │ -ArithmeticOrLogicalExpression Expression + Expression Expression - Expression │ │ │ │ -Expression * Expression Expression / Expression Expression % Expression │ │ │ │ -Expression & Expression Expression | Expression Expression ^ Expression │ │ │ │ -Expression << Expression Expression >> Expression │ │ │ │ -ComparisonExpression Expression == Expression Expression != Expression │ │ │ │ -Expression > Expression Expression < Expression Expression >= Expression │ │ │ │ -Expression <= Expression │ │ │ │ -LazyBooleanExpression Expression || Expression Expression && Expression │ │ │ │ -TypeCastExpression Expression as TypeNoBounds │ │ │ │ -AssignmentExpression Expression = Expression │ │ │ │ -CompoundAssignmentExpression Expression += Expression Expression -= Expression │ │ │ │ -Expression *= Expression Expression /= Expression Expression %= Expression │ │ │ │ -Expression &= Expression Expression |= Expression Expression ^= Expression │ │ │ │ -Expression <<= Expression Expression >>= Expression │ │ │ │ -MethodCallExpression Expression . PathExprSegment ( CallParams ) │ │ │ │ MatchExpression match Scrutinee { InnerAttribute MatchArms } │ │ │ │ Scrutinee except StructExpression Expression │ │ │ │ MatchArms MatchArm => ExpressionWithoutBlock , ExpressionWithBlock , MatchArm │ │ │ │ => Expression , │ │ │ │ MatchArm OuterAttribute Pattern MatchArmGuard │ │ │ │ MatchArmGuard if MatchConditions │ │ │ │ MatchConditions MatchGuardChain Expression │ │ │ │ @@ -26518,42 +26286,274 @@ │ │ │ │ PredicateLoopExpression while Conditions BlockExpression │ │ │ │ IteratorLoopExpression for Pattern in except StructExpression Expression │ │ │ │ BlockExpression │ │ │ │ LoopLabel LIFETIME_OR_LABEL : │ │ │ │ BreakExpression break LIFETIME_OR_LABEL Expression │ │ │ │ LabelBlockExpression BlockExpression │ │ │ │ ContinueExpression continue LIFETIME_OR_LABEL │ │ │ │ -LiteralExpression CHAR_LITERAL STRING_LITERAL RAW_STRING_LITERAL BYTE_LITERAL │ │ │ │ -BYTE_STRING_LITERAL RAW_BYTE_STRING_LITERAL C_STRING_LITERAL │ │ │ │ -RAW_C_STRING_LITERAL INTEGER_LITERAL FLOAT_LITERAL true false │ │ │ │ -IfExpression if Conditions BlockExpression else BlockExpression IfExpression │ │ │ │ -Conditions except StructExpression Expression LetChain │ │ │ │ -LetChain LetChainCondition && LetChainCondition │ │ │ │ -LetChainCondition except ExcludedConditions Expression OuterAttribute let │ │ │ │ -Pattern = except ExcludedConditions Scrutinee │ │ │ │ -ExcludedConditions StructExpression LazyBooleanExpression RangeExpr │ │ │ │ -RangeFromExpr RangeInclusiveExpr AssignmentExpression │ │ │ │ -CompoundAssignmentExpression │ │ │ │ -GroupedExpression ( Expression ) │ │ │ │ -FieldExpression Expression . IDENTIFIER │ │ │ │ -ClosureExpression async move || | ClosureParameters | Expression - │ │ │ │ -> TypeNoBounds BlockExpression │ │ │ │ -ClosureParameters ClosureParam , ClosureParam , │ │ │ │ -ClosureParam OuterAttribute PatternNoTopAlt : Type │ │ │ │ CallExpression Expression ( CallParams ) │ │ │ │ CallParams Expression , Expression , │ │ │ │ +OperatorExpression BorrowExpression DereferenceExpression │ │ │ │ +TryPropagationExpression NegationExpression ArithmeticOrLogicalExpression │ │ │ │ +ComparisonExpression LazyBooleanExpression TypeCastExpression │ │ │ │ +AssignmentExpression CompoundAssignmentExpression │ │ │ │ +BorrowExpression & && Expression & && mut Expression & && raw const Expression │ │ │ │ +& && raw mut Expression │ │ │ │ +DereferenceExpression * Expression │ │ │ │ +TryPropagationExpression Expression ? │ │ │ │ +NegationExpression - Expression ! Expression │ │ │ │ +ArithmeticOrLogicalExpression Expression + Expression Expression - Expression │ │ │ │ +Expression * Expression Expression / Expression Expression % Expression │ │ │ │ +Expression & Expression Expression | Expression Expression ^ Expression │ │ │ │ +Expression << Expression Expression >> Expression │ │ │ │ +ComparisonExpression Expression == Expression Expression != Expression │ │ │ │ +Expression > Expression Expression < Expression Expression >= Expression │ │ │ │ +Expression <= Expression │ │ │ │ +LazyBooleanExpression Expression || Expression Expression && Expression │ │ │ │ +TypeCastExpression Expression as TypeNoBounds │ │ │ │ +AssignmentExpression Expression = Expression │ │ │ │ +CompoundAssignmentExpression Expression += Expression Expression -= Expression │ │ │ │ +Expression *= Expression Expression /= Expression Expression %= Expression │ │ │ │ +Expression &= Expression Expression |= Expression Expression ^= Expression │ │ │ │ +Expression <<= Expression Expression >>= Expression │ │ │ │ +GroupedExpression ( Expression ) │ │ │ │ BlockExpression { InnerAttribute Statements } │ │ │ │ Statements Statement Statement ExpressionWithoutBlock ExpressionWithoutBlock │ │ │ │ AsyncBlockExpression async move BlockExpression │ │ │ │ ConstBlockExpression const BlockExpression │ │ │ │ UnsafeBlockExpression unsafe BlockExpression │ │ │ │ -AwaitExpression Expression . await │ │ │ │ -ArrayExpression [ ArrayElements ] │ │ │ │ -ArrayElements Expression , Expression , Expression ; Expression │ │ │ │ -IndexExpression Expression [ Expression ] │ │ │ │ +Expression ExpressionWithoutBlock ExpressionWithBlock │ │ │ │ +ExpressionWithoutBlock OuterAttribute ExpressionWithoutBlockNoAttrs │ │ │ │ +ExpressionWithoutBlockNoAttrs LiteralExpression PathExpression │ │ │ │ +OperatorExpression GroupedExpression ArrayExpression AwaitExpression │ │ │ │ +IndexExpression TupleExpression TupleIndexingExpression StructExpression │ │ │ │ +CallExpression MethodCallExpression FieldExpression ClosureExpression │ │ │ │ +AsyncBlockExpression ContinueExpression BreakExpression RangeExpression │ │ │ │ +ReturnExpression UnderscoreExpression MacroInvocation │ │ │ │ +ExpressionWithBlock OuterAttribute ExpressionWithBlockNoAttrs │ │ │ │ +ExpressionWithBlockNoAttrs BlockExpression ConstBlockExpression │ │ │ │ +UnsafeBlockExpression LoopExpression IfExpression MatchExpression │ │ │ │ +********** _SS_tt_aa_tt_ee_mm_ee_nn_tt_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_S_t_a_t_e_m_e_n_t → │ │ │ │ +      ; │ │ │ │ +    | _I_t_e_m │ │ │ │ +    | _L_e_t_S_t_a_t_e_m_e_n_t │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t │ │ │ │ +    | _O_u_t_e_r_A_t_t_r_i_b_u_t_e* _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n_S_e_m_i │ │ │ │ +_L_e_t_S_t_a_t_e_m_e_n_t → │ │ │ │ +    _O_u_t_e_r_A_t_t_r_i_b_u_t_e* let _P_a_t_t_e_r_n_N_o_T_o_p_A_l_t ( : _T_y_p_e )? │ │ │ │ +    ( │ │ │ │ +          = _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | = _E_x_p_r_e_s_s_i_o_nexcept _L_a_z_y_B_o_o_l_e_a_n_E_x_p_r_e_s_s_i_o_n or end with a } else │ │ │ │ +_B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    )? ; │ │ │ │ +_E_x_p_r_e_s_s_i_o_n_S_t_a_t_e_m_e_n_t → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k ; │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k ;? │ │ │ │ +Show Railroad │ │ │ │ +Statement ; Item LetStatement ExpressionStatement OuterAttribute │ │ │ │ +MacroInvocationSemi │ │ │ │ +LetStatement OuterAttribute let PatternNoTopAlt : Type = Expression = except │ │ │ │ +LazyBooleanExpression or end with a `}` Expression else BlockExpression ; │ │ │ │ +ExpressionStatement ExpressionWithoutBlock ; ExpressionWithBlock ; │ │ │ │ +********** _CC_oo_nn_ff_ii_gg_uu_rr_aa_tt_ii_oo_nn_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ +      _C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y │ │ │ │ +    | _C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t │ │ │ │ +    | true │ │ │ │ +    | false │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_O_p_t_i_o_n → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R ( = ( _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L ) )? │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_A_l_l → │ │ │ │ +    all ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_A_n_y → │ │ │ │ +    any ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t? ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_N_o_t → │ │ │ │ +    not ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ +_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e_L_i_s_t → │ │ │ │ +    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ( , _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e )* ,? │ │ │ │ +_C_f_g_A_t_t_r_i_b_u_t_e → cfg ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e ) │ │ │ │ +_C_f_g_A_t_t_r_A_t_t_r_i_b_u_t_e → cfg_attr ( _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e , _C_f_g_A_t_t_r_s? ) │ │ │ │ +_C_f_g_A_t_t_r_s → _A_t_t_r ( , _A_t_t_r )* ,? │ │ │ │ +_C_f_g_S_e_l_e_c_t → _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +_C_f_g_S_e_l_e_c_t_A_r_m_s → │ │ │ │ +    _C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e => │ │ │ │ +    ( │ │ │ │ +        { ^ _T_o_k_e_n_T_r_e_e } ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_B_l_o_c_k_N_o_A_t_t_r_s ,? _C_f_g_S_e_l_e_c_t_A_r_m_s? │ │ │ │ +      | _E_x_p_r_e_s_s_i_o_n_W_i_t_h_o_u_t_B_l_o_c_k_N_o_A_t_t_r_s ( , _C_f_g_S_e_l_e_c_t_A_r_m_s? )? │ │ │ │ +    ) │ │ │ │ +_C_f_g_S_e_l_e_c_t_C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e → │ │ │ │ +    _C_o_n_f_i_g_u_r_a_t_i_o_n_P_r_e_d_i_c_a_t_e | _ │ │ │ │ +Show Railroad │ │ │ │ +ConfigurationPredicate ConfigurationOption ConfigurationAll ConfigurationAny │ │ │ │ +ConfigurationNot true false │ │ │ │ +ConfigurationOption IDENTIFIER = STRING_LITERAL RAW_STRING_LITERAL │ │ │ │ +ConfigurationAll all ( ConfigurationPredicateList ) │ │ │ │ +ConfigurationAny any ( ConfigurationPredicateList ) │ │ │ │ +ConfigurationNot not ( ConfigurationPredicate ) │ │ │ │ +ConfigurationPredicateList ConfigurationPredicate , ConfigurationPredicate , │ │ │ │ +CfgAttribute cfg ( ConfigurationPredicate ) │ │ │ │ +CfgAttrAttribute cfg_attr ( ConfigurationPredicate , CfgAttrs ) │ │ │ │ +CfgAttrs Attr , Attr , │ │ │ │ +CfgSelect CfgSelectArms │ │ │ │ +CfgSelectArms CfgSelectConfigurationPredicate => { no backtracking TokenTree } │ │ │ │ +, CfgSelectArms ExpressionWithBlockNoAttrs , CfgSelectArms │ │ │ │ +ExpressionWithoutBlockNoAttrs , CfgSelectArms │ │ │ │ +CfgSelectConfigurationPredicate ConfigurationPredicate _ │ │ │ │ +********** _AA_ss_ss_ee_mm_bb_ll_yy_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_A_s_m_A_r_g_s → _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g ( , _A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g )* ( , _A_s_m_A_t_t_r_O_p_e_r_a_n_d )* │ │ │ │ +,? │ │ │ │ +_F_o_r_m_a_t_S_t_r_i_n_g → _S_T_R_I_N_G___L_I_T_E_R_A_L | _R_A_W___S_T_R_I_N_G___L_I_T_E_R_A_L | _M_a_c_r_o_I_n_v_o_c_a_t_i_o_n │ │ │ │ +_A_s_m_A_t_t_r_F_o_r_m_a_t_S_t_r_i_n_g → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _F_o_r_m_a_t_S_t_r_i_n_g │ │ │ │ +_A_s_m_O_p_e_r_a_n_d → │ │ │ │ +      _C_l_o_b_b_e_r_A_b_i │ │ │ │ +    | _A_s_m_O_p_t_i_o_n_s │ │ │ │ +    | _R_e_g_O_p_e_r_a_n_d │ │ │ │ +_A_s_m_A_t_t_r_O_p_e_r_a_n_d → ( _O_u_t_e_r_A_t_t_r_i_b_u_t_e )* _A_s_m_O_p_e_r_a_n_d │ │ │ │ +_C_l_o_b_b_e_r_A_b_i → clobber_abi ( _A_b_i ( , _A_b_i )* ,? ) │ │ │ │ +_A_s_m_O_p_t_i_o_n_s → │ │ │ │ +    options ( ( _A_s_m_O_p_t_i_o_n ( , _A_s_m_O_p_t_i_o_n )* ,? )? ) │ │ │ │ +_A_s_m_O_p_t_i_o_n → │ │ │ │ +      pure │ │ │ │ +    | nomem │ │ │ │ +    | readonly │ │ │ │ +    | preserves_flags │ │ │ │ +    | noreturn │ │ │ │ +    | nostack │ │ │ │ +    | att_syntax │ │ │ │ +    | raw │ │ │ │ +_R_e_g_O_p_e_r_a_n_d → ( _P_a_r_a_m_N_a_m_e = )? │ │ │ │ +    ( │ │ │ │ +          _D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | _D_u_a_l_D_i_r_S_p_e_c ( _R_e_g_S_p_e_c ) _D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | sym _P_a_t_h_E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | const _E_x_p_r_e_s_s_i_o_n │ │ │ │ +        | label { _S_t_a_t_e_m_e_n_t_s? } │ │ │ │ +    ) │ │ │ │ +_P_a_r_a_m_N_a_m_e → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D | _R_A_W___I_D_E_N_T_I_F_I_E_R │ │ │ │ +_D_u_a_l_D_i_r_S_p_e_c_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +      _E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _E_x_p_r_e_s_s_i_o_n => _E_x_p_r_e_s_s_i_o_n │ │ │ │ +_R_e_g_S_p_e_c → _R_e_g_i_s_t_e_r_C_l_a_s_s | _E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r │ │ │ │ +_R_e_g_i_s_t_e_r_C_l_a_s_s → _I_D_E_N_T_I_F_I_E_R___O_R___K_E_Y_W_O_R_D │ │ │ │ +_E_x_p_l_i_c_i_t_R_e_g_i_s_t_e_r → _S_T_R_I_N_G___L_I_T_E_R_A_L │ │ │ │ +_D_i_r_S_p_e_c → │ │ │ │ +      in │ │ │ │ +    | out │ │ │ │ +    | lateout │ │ │ │ +_D_u_a_l_D_i_r_S_p_e_c → │ │ │ │ +      inout │ │ │ │ +    | inlateout │ │ │ │ +Show Railroad │ │ │ │ +AsmArgs AsmAttrFormatString , AsmAttrFormatString , AsmAttrOperand , │ │ │ │ +FormatString STRING_LITERAL RAW_STRING_LITERAL MacroInvocation │ │ │ │ +AsmAttrFormatString OuterAttribute FormatString │ │ │ │ +AsmOperand ClobberAbi AsmOptions RegOperand │ │ │ │ +AsmAttrOperand OuterAttribute AsmOperand │ │ │ │ +ClobberAbi clobber_abi ( Abi , Abi , ) │ │ │ │ +AsmOptions options ( AsmOption , AsmOption , ) │ │ │ │ +AsmOption pure nomem readonly preserves_flags noreturn nostack att_syntax raw │ │ │ │ +RegOperand ParamName = DirSpec ( RegSpec ) Expression DualDirSpec ( RegSpec ) │ │ │ │ +DualDirSpecExpression sym PathExpression const Expression label { Statements } │ │ │ │ +ParamName IDENTIFIER_OR_KEYWORD RAW_IDENTIFIER │ │ │ │ +DualDirSpecExpression Expression Expression => Expression │ │ │ │ +RegSpec RegisterClass ExplicitRegister │ │ │ │ +RegisterClass IDENTIFIER_OR_KEYWORD │ │ │ │ +ExplicitRegister STRING_LITERAL │ │ │ │ +DirSpec in out lateout │ │ │ │ +DualDirSpec inout inlateout │ │ │ │ +********** _MM_ii_ss_cc_ee_ll_ll_aa_nn_ee_oo_uu_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_T_y_p_e_P_a_r_a_m_B_o_u_n_d_s → _T_y_p_e_P_a_r_a_m_B_o_u_n_d ( + _T_y_p_e_P_a_r_a_m_B_o_u_n_d )* +? │ │ │ │ +_T_y_p_e_P_a_r_a_m_B_o_u_n_d → _L_i_f_e_t_i_m_e | _T_r_a_i_t_B_o_u_n_d | _U_s_e_B_o_u_n_d │ │ │ │ +_T_r_a_i_t_B_o_u_n_d → │ │ │ │ +      ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h │ │ │ │ +    | ( ( ? | _F_o_r_L_i_f_e_t_i_m_e_s )? _T_y_p_e_P_a_t_h ) │ │ │ │ +_L_i_f_e_t_i_m_e_B_o_u_n_d_s → ( _L_i_f_e_t_i_m_e + )* _L_i_f_e_t_i_m_e? │ │ │ │ +_L_i_f_e_t_i_m_e → │ │ │ │ +      _L_I_F_E_T_I_M_E___O_R___L_A_B_E_L │ │ │ │ +    | 'static │ │ │ │ +    | '_ │ │ │ │ +_U_s_e_B_o_u_n_d → use _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s │ │ │ │ +_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ +      < > │ │ │ │ +    | < ( _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g , )* _U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ +_U_s_e_B_o_u_n_d_G_e_n_e_r_i_c_A_r_g → │ │ │ │ +      _L_i_f_e_t_i_m_e │ │ │ │ +    | _I_D_E_N_T_I_F_I_E_R │ │ │ │ +    | Self │ │ │ │ +_F_o_r_L_i_f_e_t_i_m_e_s → for _G_e_n_e_r_i_c_P_a_r_a_m_s │ │ │ │ +Show Railroad │ │ │ │ +TypeParamBounds TypeParamBound + TypeParamBound + │ │ │ │ +TypeParamBound Lifetime TraitBound UseBound │ │ │ │ +TraitBound ? ForLifetimes TypePath ( ? ForLifetimes TypePath ) │ │ │ │ +LifetimeBounds Lifetime + Lifetime │ │ │ │ +Lifetime LIFETIME_OR_LABEL 'static '_ │ │ │ │ +UseBound use UseBoundGenericArgs │ │ │ │ +UseBoundGenericArgs < > < UseBoundGenericArg , UseBoundGenericArg , > │ │ │ │ +UseBoundGenericArg Lifetime IDENTIFIER Self │ │ │ │ +ForLifetimes for GenericParams │ │ │ │ +********** _PP_aa_tt_hh_ss_ _ss_uu_mm_mm_aa_rr_yy ********** │ │ │ │ +SSyynnttaaxx │ │ │ │ +_S_i_m_p_l_e_P_a_t_h → │ │ │ │ +    ::? _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t ( :: _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ +_S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R | super | self | crate | $crate │ │ │ │ +_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → │ │ │ │ +    ::? _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )* │ │ │ │ +_P_a_t_h_E_x_p_r_S_e_g_m_e_n_t → │ │ │ │ +    _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( :: _G_e_n_e_r_i_c_A_r_g_s )? │ │ │ │ +_P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R | super | self | Self | crate | $crate │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s → │ │ │ │ +      < > │ │ │ │ +    | < ( _G_e_n_e_r_i_c_A_r_g , )* _G_e_n_e_r_i_c_A_r_g ,? > │ │ │ │ +_G_e_n_e_r_i_c_A_r_g → │ │ │ │ +    _L_i_f_e_t_i_m_e | _T_y_p_e | _G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t | _G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g | _G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_C_o_n_s_t → │ │ │ │ +      _B_l_o_c_k_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | - _L_i_t_e_r_a_l_E_x_p_r_e_s_s_i_o_n │ │ │ │ +    | _S_i_m_p_l_e_P_a_t_h_S_e_g_m_e_n_t │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_B_i_n_d_i_n_g → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? = _T_y_p_e │ │ │ │ +_G_e_n_e_r_i_c_A_r_g_s_B_o_u_n_d_s → │ │ │ │ +    _I_D_E_N_T_I_F_I_E_R _G_e_n_e_r_i_c_A_r_g_s? : _T_y_p_e_P_a_r_a_m_B_o_u_n_d_s │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_E_x_p_r_e_s_s_i_o_n → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _P_a_t_h_E_x_p_r_S_e_g_m_e_n_t )+ │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e → < _T_y_p_e ( as _T_y_p_e_P_a_t_h )? > │ │ │ │ +_Q_u_a_l_i_f_i_e_d_P_a_t_h_I_n_T_y_p_e → _Q_u_a_l_i_f_i_e_d_P_a_t_h_T_y_p_e ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )+ │ │ │ │ +_T_y_p_e_P_a_t_h → ::? _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t ( :: _T_y_p_e_P_a_t_h_S_e_g_m_e_n_t )* │ │ │ │ +_T_y_p_e_P_a_t_h_S_e_g_m_e_n_t → _P_a_t_h_I_d_e_n_t_S_e_g_m_e_n_t ( ::? ( _G_e_n_e_r_i_c_A_r_g_s | _T_y_p_e_P_a_t_h_F_n ) )? │ │ │ │ +_T_y_p_e_P_a_t_h_F_n → ( _T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s? ) ( -> _T_y_p_e_N_o_B_o_u_n_d_s )? │ │ │ │ +_T_y_p_e_P_a_t_h_F_n_I_n_p_u_t_s → _T_y_p_e ( , _T_y_p_e )* ,? │ │ │ │ +Show Railroad │ │ │ │ +SimplePath :: SimplePathSegment :: SimplePathSegment │ │ │ │ +SimplePathSegment IDENTIFIER super self crate $crate │ │ │ │ +PathInExpression :: PathExprSegment :: PathExprSegment │ │ │ │ +PathExprSegment PathIdentSegment :: GenericArgs │ │ │ │ +PathIdentSegment IDENTIFIER super self Self crate $crate │ │ │ │ +GenericArgs < > < GenericArg , GenericArg , > │ │ │ │ +GenericArg Lifetime Type GenericArgsConst GenericArgsBinding GenericArgsBounds │ │ │ │ +GenericArgsConst BlockExpression LiteralExpression - LiteralExpression │ │ │ │ +SimplePathSegment │ │ │ │ +GenericArgsBinding IDENTIFIER GenericArgs = Type │ │ │ │ +GenericArgsBounds IDENTIFIER GenericArgs : TypeParamBounds │ │ │ │ +QualifiedPathInExpression QualifiedPathType :: PathExprSegment │ │ │ │ +QualifiedPathType < Type as TypePath > │ │ │ │ +QualifiedPathInType QualifiedPathType :: TypePathSegment │ │ │ │ +TypePath :: TypePathSegment :: TypePathSegment │ │ │ │ +TypePathSegment PathIdentSegment :: GenericArgs TypePathFn │ │ │ │ +TypePathFn ( TypePathFnInputs ) -> TypeNoBounds │ │ │ │ +TypePathFnInputs Type , Type , │ │ │ │ ************ _SS_yy_nn_tt_aa_xx_ _ii_nn_dd_ee_xx ************ │ │ │ │ This appendix provides an index of tokens and common forms with links to where │ │ │ │ those elements are defined. │ │ │ │ ********** _KK_ee_yy_ww_oo_rr_dd_ss ********** │ │ │ │ KKeeyywwoorrdd UUssee │ │ │ │ _w_i_l_d_c_a_r_d_ _p_a_t_t_e_r_n, _i_n_f_e_r_r_e_d_ _c_o_n_s_t, _i_n_f_e_r_r_e_d_ _t_y_p_e, _p_l_a_c_e_h_o_l_d_e_r │ │ │ │ _ _l_i_f_e_t_i_m_e, _c_o_n_s_t_a_n_t_ _i_t_e_m_s, _e_x_t_e_r_n_ _c_r_a_t_e, _u_s_e_ _d_e_c_l_a_r_a_t_i_o_n_s,