File: data__formats.pro

package info (click to toggle)
spark 2012.0.deb-9
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 29,260 kB
  • ctags: 3,098
  • sloc: ada: 186,243; cpp: 13,497; makefile: 685; yacc: 440; lex: 176; ansic: 119; sh: 16
file content (87 lines) | stat: -rw-r--r-- 3,553 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
% -----------------------------------------------------------------------------
%  (C) Altran Praxis Limited
% -----------------------------------------------------------------------------
% 
%  The SPARK toolset is free software; you can redistribute it and/or modify it
%  under terms of the GNU General Public License as published by the Free
%  Software Foundation; either version 3, or (at your option) any later
%  version. The SPARK toolset 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 distributed with the SPARK toolset; see file
%  COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy of
%  the license.
% 
% =============================================================================


%###############################################################################
% PURPOSE
%-------------------------------------------------------------------------------
% This module offers no system functionality. It provides a location for
% modules to store their type and data descriptions. By providing a uniform
% interface, rather than embedding this information into comments, the
% expectation is that it will be more consistent, better maintained and
% easier to read.
%###############################################################################

:- module(data__formats, [get_state/2,
                          add_state/2,
                          get_type/2,
                          add_type/2]).


%###############################################################################
% DEPENDENCIES
%###############################################################################


%###############################################################################
% TYPES
%###############################################################################


%###############################################################################
% DATA
%###############################################################################

% As this module manages types and data, it is unable to initially manage
% its own types and data until the whole module has been parsed. For this
% reason the types and data declarations are contained in a predicated and
% dynamically invoked at the end of the module.
declare_data_formats:-
    add_state(get_state,
              get_state('Data_Atom', 'DataAttributes_Any')),

    add_state(get_type,
              get_type('Type_Atom', 'TypeAttributes_AnyList')).

:- dynamic(get_state/2).
:- dynamic(get_type/2).


%###############################################################################
% PREDICATES
%###############################################################################


%===============================================================================
% Add.
%===============================================================================

add_state(Data_Atom, DataAttributes_Any):-
    assert(get_state(Data_Atom, DataAttributes_Any)),
    !.

add_type(Type_Atom, TypeAttributes_AnyList):-
    assert(get_type(Type_Atom, TypeAttributes_AnyList)),
    !.
%===============================================================================


% Delayed setting of types and data for this module.
:- declare_data_formats.

%###############################################################################
% END-OF-FILE