comp.lang.ada
 help / color / mirror / Atom feed
From: moixa <moixa.dan@gmail.com>
Subject: Can .ads be compiled alone?
Date: Thu, 6 Nov 2014 21:21:37 -0800 (PST)
Date: 2014-11-06T21:21:37-08:00	[thread overview]
Message-ID: <520f8f3d-b345-4ef8-ac41-ead78edde92a@googlegroups.com> (raw)

Newbie question.

I have only two files, machinery_1_3.ads [1] and machinery_1_3.adb [2], in some directory, when I `gnat compile machinery_1_3.ads`, it told me compile error, (but no further information).

A stackoverflow post[3] said that it's a good practice to separate compile the spec and the body, so, why I cannot compile my .ads?

---------------------------

[3] http://stackoverflow.com/questions/9921794/error-when-compiling-spec-files

---------------------------

[1] machinery_1_3.ads
package Machinery_1_3 is                            -- 1 Package specification; requires body
    type Machine is private;                        -- 2 Specifies the visible part of the data type;
    procedure Turn_On (M : in out Machine);         -- 3 procedure specification
    procedure Turn_Off (M : in out Machine);        -- 4 procedure specification
    function Is_On (M : in Machine) return Boolean; -- 5 function specification
private                                             -- 6 private part hidden from a client of contract
    type Machine is record                          -- 7 full definition of the publicly declared type
        Turned_On : Boolean := False;               -- 8 component of the type; OOP attribute
    end record;                                     -- 9 scope terminator for the component
end Machinery_1_3;                                  -- 10 scope terminator for the specification

---------------------------

[2] machinery_1_3.adb
package body Machinery_1_3 is                         -- 1 Package body; implements specification declarations
    procedure Turn_On (M : in out Machine) is         -- 2 Repeat procedure specification; compiler checks this
    begin                                             -- 3 Starts algorithmic section of procedure
        M.Turned_ON := True;                          -- 4 Simple assignment statement of boolean value
    end Turn_On;                                      -- 5 Procedure scope terminator is required
    procedure Turn_Off (M : in out Machine) is        -- 6 Must match profile in specification
    begin                                             -- 7 Algorithms between begin and end
        M.Turned_On := False;                         -- 8 M.Turned called dot notation
    end Turn_Off;                                     -- 9 Name is optional but end is required
    function Is_On (M : in Machine) return Boolean is -- 10 In mode is like a constant; it may
    begin                                             -- 11 not be on left side of assignment
        return M.Turned_On;                           -- 12 return statement required of every function
    end Is_On;                                        -- 13 Scope terminator for function
end Machinery_1_3;                                    -- 14 End of all declarations for this package


             reply	other threads:[~2014-11-07  5:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-07  5:21 moixa [this message]
2014-11-07  6:09 ` Can .ads be compiled alone? Jeffrey Carter
2014-11-07 17:26   ` Robert A Duff
2014-11-07 17:41     ` Jeffrey Carter
2014-11-07  6:20 ` J-P. Rosen
2014-11-07  7:48 ` Chris Moore
2014-11-07 14:54   ` Tero Koskinen
2014-11-07 15:49     ` Björn Lundin
2014-11-07 16:29       ` G.B.
2014-11-08 13:01         ` moixa
2014-11-08 14:55           ` G.B.
2014-11-07 16:29       ` G.B.
2014-11-07 16:44     ` Adam Beneschan
2014-11-07 17:14   ` Shark8
2014-11-08 21:31     ` Chris Moore
2014-11-07 16:50 ` Adam Beneschan
2014-11-07 17:14   ` Robert A Duff
2014-11-08  2:01     ` Randy Brukardt
2014-11-15 12:54 ` rriehle
2014-11-15 19:17   ` Robert A Duff
2014-11-15 19:19     ` Robert A Duff
2014-11-17 15:52       ` Adam Beneschan
2014-11-17  0:07     ` rriehle
2014-11-17  6:50       ` Simon Wright
2014-11-24  3:16     ` rriehle
2014-11-24  6:34       ` Jeffrey Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox