diff options
Diffstat (limited to 'gcc/rust/ast/rust-ast-full-decls.h')
-rw-r--r-- | gcc/rust/ast/rust-ast-full-decls.h | 528 |
1 files changed, 274 insertions, 254 deletions
diff --git a/gcc/rust/ast/rust-ast-full-decls.h b/gcc/rust/ast/rust-ast-full-decls.h index 9b604a5..ebd2b2a 100644 --- a/gcc/rust/ast/rust-ast-full-decls.h +++ b/gcc/rust/ast/rust-ast-full-decls.h @@ -1,266 +1,286 @@ +// Copyright (C) 2020 Free Software Foundation, Inc. + +// This file is part of GCC. + +// GCC is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3, or (at your option) any later +// version. + +// GCC is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. + +// You should have received a copy of the GNU General Public License +// along with GCC; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + #ifndef RUST_AST_FULL_DECLS_H #define RUST_AST_FULL_DECLS_H -// Forward declarations for all AST classes. Useful for not having to include all definitions. + +// Forward declarations for all AST classes. Useful for not having to include +// all definitions. namespace Rust { - namespace AST { - // rust-ast.h - class AttrInput; - class TokenTree; - class MacroMatch; - class Token; - struct Literal; - class DelimTokenTree; - class PathSegment; - class SimplePathSegment; - class SimplePath; - struct Attribute; - class MetaItemInner; - class AttrInputMetaItemContainer; - class MetaItem; - class Stmt; - class Item; - class Expr; - class ExprWithoutBlock; - class IdentifierExpr; - class Pattern; - class Type; - class TypeNoBounds; - class TypeParamBound; - class Lifetime; - class GenericParam; - class LifetimeParam; - class MacroItem; - class TraitItem; - class InherentImplItem; - class TraitImplItem; - class MacroInvocationSemi; - struct Crate; - class PathExpr; +namespace AST { +// rust-ast.h +class AttrInput; +class TokenTree; +class MacroMatch; +class Token; +struct Literal; +class DelimTokenTree; +class PathSegment; +class SimplePathSegment; +class SimplePath; +struct Attribute; +class MetaItemInner; +class AttrInputMetaItemContainer; +class MetaItem; +class Stmt; +class Item; +class Expr; +class ExprWithoutBlock; +class IdentifierExpr; +class Pattern; +class Type; +class TypeNoBounds; +class TypeParamBound; +class Lifetime; +class GenericParam; +class LifetimeParam; +class MacroItem; +class TraitItem; +class InherentImplItem; +class TraitImplItem; +class MacroInvocationSemi; +struct Crate; +class PathExpr; - // rust-path.h - class PathIdentSegment; - struct GenericArgsBinding; - struct GenericArgs; - class PathExprSegment; - class PathPattern; - class PathInExpression; - class TypePathSegment; - class TypePathSegmentGeneric; - struct TypePathFunction; - class TypePathSegmentFunction; - class TypePath; - struct QualifiedPathType; - class QualifiedPathInExpression; - class QualifiedPathInType; +// rust-path.h +class PathIdentSegment; +struct GenericArgsBinding; +struct GenericArgs; +class PathExprSegment; +class PathPattern; +class PathInExpression; +class TypePathSegment; +class TypePathSegmentGeneric; +struct TypePathFunction; +class TypePathSegmentFunction; +class TypePath; +struct QualifiedPathType; +class QualifiedPathInExpression; +class QualifiedPathInType; - // rust-expr.h - class ExprWithBlock; - class LiteralExpr; - class AttrInputLiteral; - class MetaItemLitExpr; - class MetaItemPathLit; - class OperatorExpr; - class BorrowExpr; - class DereferenceExpr; - class ErrorPropagationExpr; - class NegationExpr; - class ArithmeticOrLogicalExpr; - class ComparisonExpr; - class LazyBooleanExpr; - class TypeCastExpr; - class AssignmentExpr; - class CompoundAssignmentExpr; - class GroupedExpr; - class ArrayElems; - class ArrayElemsValues; - class ArrayElemsCopied; - class ArrayExpr; - class ArrayIndexExpr; - class TupleExpr; - class TupleIndexExpr; - class StructExpr; - class StructExprStruct; - struct StructBase; - class StructExprField; - class StructExprFieldIdentifier; - class StructExprFieldWithVal; - class StructExprFieldIdentifierValue; - class StructExprFieldIndexValue; - class StructExprStructFields; - class StructExprStructBase; - class StructExprTuple; - class StructExprUnit; - class EnumVariantExpr; - class EnumExprField; - class EnumExprFieldIdentifier; - class EnumExprFieldWithVal; - class EnumExprFieldIdentifierValue; - class EnumExprFieldIndexValue; - class EnumExprStruct; - class EnumExprTuple; - class EnumExprFieldless; - class CallExpr; - class MethodCallExpr; - class FieldAccessExpr; - struct ClosureParam; - class ClosureExpr; - class ClosureExprInner; - class BlockExpr; - class ClosureExprInnerTyped; - class ContinueExpr; - class BreakExpr; - class RangeExpr; - class RangeFromToExpr; - class RangeFromExpr; - class RangeToExpr; - class RangeFullExpr; - class RangeFromToInclExpr; - class RangeToInclExpr; - class ReturnExpr; - class UnsafeBlockExpr; - class LoopLabel; - class BaseLoopExpr; - class LoopExpr; - class WhileLoopExpr; - class WhileLetLoopExpr; - class ForLoopExpr; - class IfExpr; - class IfExprConseqElse; - class IfExprConseqIf; - class IfLetExpr; - class IfExprConseqIfLet; - class IfLetExprConseqElse; - class IfLetExprConseqIf; - class IfLetExprConseqIfLet; - struct MatchArm; - // class MatchCase; - // class MatchCaseBlockExpr; - // class MatchCaseExpr; - struct MatchCase; - class MatchExpr; - class AwaitExpr; - class AsyncBlockExpr; +// rust-expr.h +class ExprWithBlock; +class LiteralExpr; +class AttrInputLiteral; +class MetaItemLitExpr; +class MetaItemPathLit; +class OperatorExpr; +class BorrowExpr; +class DereferenceExpr; +class ErrorPropagationExpr; +class NegationExpr; +class ArithmeticOrLogicalExpr; +class ComparisonExpr; +class LazyBooleanExpr; +class TypeCastExpr; +class AssignmentExpr; +class CompoundAssignmentExpr; +class GroupedExpr; +class ArrayElems; +class ArrayElemsValues; +class ArrayElemsCopied; +class ArrayExpr; +class ArrayIndexExpr; +class TupleExpr; +class TupleIndexExpr; +class StructExpr; +class StructExprStruct; +struct StructBase; +class StructExprField; +class StructExprFieldIdentifier; +class StructExprFieldWithVal; +class StructExprFieldIdentifierValue; +class StructExprFieldIndexValue; +class StructExprStructFields; +class StructExprStructBase; +class StructExprTuple; +class StructExprUnit; +class EnumVariantExpr; +class EnumExprField; +class EnumExprFieldIdentifier; +class EnumExprFieldWithVal; +class EnumExprFieldIdentifierValue; +class EnumExprFieldIndexValue; +class EnumExprStruct; +class EnumExprTuple; +class EnumExprFieldless; +class CallExpr; +class MethodCallExpr; +class FieldAccessExpr; +struct ClosureParam; +class ClosureExpr; +class ClosureExprInner; +class BlockExpr; +class ClosureExprInnerTyped; +class ContinueExpr; +class BreakExpr; +class RangeExpr; +class RangeFromToExpr; +class RangeFromExpr; +class RangeToExpr; +class RangeFullExpr; +class RangeFromToInclExpr; +class RangeToInclExpr; +class ReturnExpr; +class UnsafeBlockExpr; +class LoopLabel; +class BaseLoopExpr; +class LoopExpr; +class WhileLoopExpr; +class WhileLetLoopExpr; +class ForLoopExpr; +class IfExpr; +class IfExprConseqElse; +class IfExprConseqIf; +class IfLetExpr; +class IfExprConseqIfLet; +class IfLetExprConseqElse; +class IfLetExprConseqIf; +class IfLetExprConseqIfLet; +struct MatchArm; +// class MatchCase; +// class MatchCaseBlockExpr; +// class MatchCaseExpr; +struct MatchCase; +class MatchExpr; +class AwaitExpr; +class AsyncBlockExpr; - // rust-stmt.h - class EmptyStmt; - class LetStmt; - class ExprStmt; - class ExprStmtWithoutBlock; - class ExprStmtWithBlock; +// rust-stmt.h +class EmptyStmt; +class LetStmt; +class ExprStmt; +class ExprStmtWithoutBlock; +class ExprStmtWithBlock; - // rust-item.h - class TypeParam; - class WhereClauseItem; - class LifetimeWhereClauseItem; - class TypeBoundWhereClauseItem; - struct WhereClause; - struct SelfParam; - struct FunctionQualifiers; - struct FunctionParam; - struct Visibility; - class Method; - class VisItem; - class Module; - class ModuleBodied; - class ModuleNoBody; - class ExternCrate; - class UseTree; - class UseTreeGlob; - class UseTreeList; - class UseTreeRebind; - class UseDeclaration; - class Function; - class TypeAlias; - class Struct; - struct StructField; - class StructStruct; - struct TupleField; - class TupleStruct; - class EnumItem; - class EnumItemTuple; - class EnumItemStruct; - class EnumItemDiscriminant; - class Enum; - class Union; - class ConstantItem; - class StaticItem; - struct TraitFunctionDecl; - class TraitItemFunc; - struct TraitMethodDecl; - class TraitItemMethod; - class TraitItemConst; - class TraitItemType; - class Trait; - class Impl; - class InherentImpl; - class TraitImpl; - class ExternalItem; - class ExternalStaticItem; - struct NamedFunctionParam; - class ExternalFunctionItem; - class ExternBlock; +// rust-item.h +class TypeParam; +class WhereClauseItem; +class LifetimeWhereClauseItem; +class TypeBoundWhereClauseItem; +struct WhereClause; +struct SelfParam; +struct FunctionQualifiers; +struct FunctionParam; +struct Visibility; +class Method; +class VisItem; +class Module; +class ModuleBodied; +class ModuleNoBody; +class ExternCrate; +class UseTree; +class UseTreeGlob; +class UseTreeList; +class UseTreeRebind; +class UseDeclaration; +class Function; +class TypeAlias; +class Struct; +struct StructField; +class StructStruct; +struct TupleField; +class TupleStruct; +class EnumItem; +class EnumItemTuple; +class EnumItemStruct; +class EnumItemDiscriminant; +class Enum; +class Union; +class ConstantItem; +class StaticItem; +struct TraitFunctionDecl; +class TraitItemFunc; +struct TraitMethodDecl; +class TraitItemMethod; +class TraitItemConst; +class TraitItemType; +class Trait; +class Impl; +class InherentImpl; +class TraitImpl; +class ExternalItem; +class ExternalStaticItem; +struct NamedFunctionParam; +class ExternalFunctionItem; +class ExternBlock; - // rust-macro.h - class MacroMatchFragment; - class MacroMatchRepetition; - class MacroMatcher; - struct MacroTranscriber; - struct MacroRule; - class MacroRulesDefinition; - class MacroInvocation; - class MetaItemPath; - class MetaItemSeq; - class MetaWord; - class MetaNameValueStr; - class MetaListPaths; - class MetaListNameValueStr; +// rust-macro.h +class MacroMatchFragment; +class MacroMatchRepetition; +class MacroMatcher; +struct MacroTranscriber; +struct MacroRule; +class MacroRulesDefinition; +class MacroInvocation; +class MetaItemPath; +class MetaItemSeq; +class MetaWord; +class MetaNameValueStr; +class MetaListPaths; +class MetaListNameValueStr; - // rust-pattern.h - class LiteralPattern; - class IdentifierPattern; - class WildcardPattern; - class RangePatternBound; - class RangePatternBoundLiteral; - class RangePatternBoundPath; - class RangePatternBoundQualPath; - class RangePattern; - class ReferencePattern; - struct StructPatternEtc; - class StructPatternField; - class StructPatternFieldTuplePat; - class StructPatternFieldIdentPat; - class StructPatternFieldIdent; - struct StructPatternElements; - class StructPattern; - class TupleStructItems; - class TupleStructItemsNoRange; - class TupleStructItemsRange; - class TupleStructPattern; - class TuplePatternItems; - class TuplePatternItemsMultiple; - class TuplePatternItemsRanged; - class TuplePattern; - class GroupedPattern; - class SlicePattern; +// rust-pattern.h +class LiteralPattern; +class IdentifierPattern; +class WildcardPattern; +class RangePatternBound; +class RangePatternBoundLiteral; +class RangePatternBoundPath; +class RangePatternBoundQualPath; +class RangePattern; +class ReferencePattern; +struct StructPatternEtc; +class StructPatternField; +class StructPatternFieldTuplePat; +class StructPatternFieldIdentPat; +class StructPatternFieldIdent; +struct StructPatternElements; +class StructPattern; +class TupleStructItems; +class TupleStructItemsNoRange; +class TupleStructItemsRange; +class TupleStructPattern; +class TuplePatternItems; +class TuplePatternItemsMultiple; +class TuplePatternItemsRanged; +class TuplePattern; +class GroupedPattern; +class SlicePattern; - // rust-type.h - class TraitBound; - class ImplTraitType; - class TraitObjectType; - class ParenthesisedType; - class ImplTraitTypeOneBound; - class TraitObjectTypeOneBound; - class TupleType; - class NeverType; - class RawPointerType; - class ReferenceType; - class ArrayType; - class SliceType; - class InferredType; - struct MaybeNamedParam; - class BareFunctionType; - } -} +// rust-type.h +class TraitBound; +class ImplTraitType; +class TraitObjectType; +class ParenthesisedType; +class ImplTraitTypeOneBound; +class TraitObjectTypeOneBound; +class TupleType; +class NeverType; +class RawPointerType; +class ReferenceType; +class ArrayType; +class SliceType; +class InferredType; +struct MaybeNamedParam; +class BareFunctionType; +} // namespace AST +} // namespace Rust -#endif
\ No newline at end of file +#endif |