*****************************
Annex - Reference Materials
*****************************

.. container:: PRELUDE BEGIN

.. container:: PRELUDE ROLES

.. role:: ada(code)
    :language: Ada

.. role:: C(code)
    :language: C

.. role:: cpp(code)
    :language: C++

.. role:: rust(code)
    :language: Rust

.. container:: PRELUDE SYMBOLS

.. |rightarrow| replace:: :math:`\rightarrow`
.. |forall| replace:: :math:`\forall`
.. |exists| replace:: :math:`\exists`
.. |equivalent| replace:: :math:`\iff`
.. |le| replace:: :math:`\le`
.. |ge| replace:: :math:`\ge`
.. |lt| replace:: :math:`<`
.. |gt| replace:: :math:`>`
.. |checkmark| replace:: :math:`\checkmark`

.. container:: PRELUDE END

==========================
General Ada Information
==========================

---------------------------
Learning the Ada Language
---------------------------

* Written as a tutorial for those new to Ada

.. image:: barnes_cover.png

------------------
Reference Manual
------------------

* **LRM** - Language Reference Manual (or just **RM**)

   - Always on-line (including all previous versions) at `www.adaic.org <www.adaic.org>`_

* Finding stuff in the RM

   - You will often see the RM cited like this **RM 4.5.3(10)**
   - This means *Section 4.5.3, paragraph 10*
   - Have a look at the table of contents

       * Knowing that chapter 5 is *Statements* is useful

   - Index is very long, but very good!

----------------------
Current Ada Standard
----------------------

* "ISO/IEC 8652(E) with Technical Corrigendum 1"
* Useful as a Reference Text but not intended to be read from beginning to end

=====================
GNAT-Specific Help
=====================

------------------
Reference Manual
------------------

* Reference Manual(s) available from :toolname:`GNAT Studio` Help

.. image:: gnatstudio-help-gnat.jpeg

-------------
GNAT Tools
-------------

* GNAT User's Guide

   - LOTS of info about the main tools: the GNAT compiler, binder, linker etc.

* GNAT Reference Manual

   - How GNAT implements Ada, pragmas, aspects, attributes etc. etc.

* :toolname:`GNAT Studio` (the IDE)

   - Tutorial
   - User's Guide
   - Release notes

* Many other tools

==================
AdaCore Support
==================

----------------
Need More Help?
----------------

* If you have an AdaCore subscription:

   - Find out your customer number #XXXX

* Open a "Case" via the GNATtracker web interface and/or email

   - GNATtracker

      * Select "Create A New Case" from the main landing page

   - Email
   
      * Send to: `support@adacore.com <mailto:support@adacore.com>`_
      * Subject should read: #XXXX - (descriptive text)

* Not just for "bug reports"

   - Ask questions, make suggestions, etc.
