//===-- ASTNodes.def - ReST AST Metaprogramming -----------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines macros used for macro-metaprogramming with ReST AST
// nodes.
//
//===----------------------------------------------------------------------===//

/// REST_AST_NODE(Id, Parent)
///
/// ABSTRACT_REST_AST_NODE(Id, Parent)
///
/// REST_AST_NODE_RANGE(Id, FirstId, LastId)

REST_AST_NODE(Document, ReSTASTNode)
REST_AST_NODE(Section, ReSTASTNode)
REST_AST_NODE(Topic, ReSTASTNode)
REST_AST_NODE(Sidebar, ReSTASTNode)
REST_AST_NODE(Title, ReSTASTNode)
REST_AST_NODE(Subtitle, ReSTASTNode)
REST_AST_NODE(Transition, ReSTASTNode)
REST_AST_NODE(Paragraph, ReSTASTNode)
REST_AST_NODE(BulletList, ReSTASTNode)
REST_AST_NODE(EnumeratedList, ReSTASTNode)
REST_AST_NODE(DefinitionListItem, ReSTASTNode)
REST_AST_NODE(DefinitionList, ReSTASTNode)
REST_AST_NODE(Field, ReSTASTNode)
REST_AST_NODE(FieldList, ReSTASTNode)
REST_AST_NODE(BlockQuote, ReSTASTNode)
REST_AST_NODE(TextAndInline, ReSTASTNode)
ABSTRACT_REST_AST_NODE(InlineContent, ReSTASTNode)
  REST_AST_NODE(PlainText, InlineContent)
  REST_AST_NODE(Emphasis, InlineContent)
  REST_AST_NODE(StrongEmphasis, InlineContent)
  REST_AST_NODE(InterpretedText, InlineContent)
  REST_AST_NODE(InlineLiteral, InlineContent)
  REST_AST_NODE(HyperlinkReference, InlineContent)
  REST_AST_NODE(InlineHyperlinkTarget, InlineContent)
  REST_AST_NODE(FootnoteReference, InlineContent)
  REST_AST_NODE(CitationReference, InlineContent)
  REST_AST_NODE(SubstitutionReference, InlineContent)
  REST_AST_NODE_RANGE(InlineContent, PlainText, SubstitutionReference)
REST_AST_NODE(PrivateExtension, ReSTASTNode)

#undef REST_AST_NODE
#undef ABSTRACT_REST_AST_NODE
#undef REST_AST_NODE_RANGE

