summaryrefslogtreecommitdiff
path: root/src/Scilab2C/Scilab2C/CCodeGeneration/JoinDeclarAndCcode.sci
blob: a869cdab76ef8711b4dd81333c8d078073ee9bd2 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
function JoinDeclarAndCcode(FileInfoDatFile)
// function JoinDeclarAndCcode(FileInfoDatFile)
// -----------------------------------------------------------------
// Status:
// 07-Nov-2007 -- Raffaele Nutricato: Author.
//
// Copyright 2007 Raffaele Nutricato.
// Contact: raffaele.nutricato@tiscali.it
// -----------------------------------------------------------------

SCI2CNInArgCheck(argn(2),1,1);

load(FileInfoDatFile,'FileInfo');

load(FileInfo.SharedInfoDatFile,'SharedInfo');

nxtscifunname   = SharedInfo.NextSCIFunName;
funnumber = SharedInfo.NextSCIFunNumber;

CPass1FileName       = FileInfo.Funct(funnumber).CPass1FileName;
CPass2FileName       = FileInfo.Funct(funnumber).CPass2FileName;
CDeclarationFileName = FileInfo.Funct(funnumber).CDeclarationFileName;
CGblDeclarFileName   = FileInfo.Funct(funnumber).CGblDeclarFileName;
CInitVarsFileName    = FileInfo.Funct(funnumber).CInitVarsFileName;
ReportFileName       = FileInfo.Funct(funnumber).ReportFileName;

CPass1V1FileFid      = SCI2COpenFileRead(CPass1FileName);
CDeclarationFileFid  = SCI2COpenFileRead(CDeclarationFileName);
CGblDeclarFileFid    = SCI2COpenFileRead(CGblDeclarFileName);
CInitVarsFileFid     = SCI2COpenFileRead(CInitVarsFileName);


PrintStringInfo('/*',CPass2FileName,'file','y');
PrintStringInfo('** -------------------------------------',CPass2FileName,'file','y');
PrintStringInfo('** --- Global Variables Declaration. ---',CPass2FileName,'file','y');
PrintStringInfo('** -------------------------------------',CPass2FileName,'file','y');
PrintStringInfo('*/',CPass2FileName,'file','y');

while (~meof(CGblDeclarFileFid))

   tmpcline = mgetl(CGblDeclarFileFid,1);
   if (length(tmpcline) == 0)
      tmpcline = ' ';
   end

   noblkstmpcline = stripblanks(tmpcline);
   PrintStringInfo(tmpcline,CPass2FileName,'file','y');
end
PrintStringInfo('/*',CPass2FileName,'file','y');
PrintStringInfo('** -----------------------------------------',CPass2FileName,'file','y');
PrintStringInfo('** --- End Global Variables Declaration. ---',CPass2FileName,'file','y');
PrintStringInfo('** -----------------------------------------',CPass2FileName,'file','y');
PrintStringInfo('*/',CPass2FileName,'file','y');
PrintStringInfo(' ',CPass2FileName,'file','y');

FoundCurlyBracket = 0;
while ((~meof(CPass1V1FileFid)) & (FoundCurlyBracket == 0))
   tmpcline = mgetl(CPass1V1FileFid,1);
   noblkstmpcline = stripblanks(tmpcline);
   if (length(noblkstmpcline) > 0)
      if (SCI2Cstrncmps1size('{',noblkstmpcline))
         FoundCurlyBracket = 1;
      end
   else
      tmpcline = ' ';
   end
   PrintStringInfo(tmpcline,CPass2FileName,'file','y');
end

if (FoundCurlyBracket == 0)
   SCI2CerrorFile('""{"" char not found in:'+CPass1FileName,ReportFileName);
end

PrintStringInfo('/*',CPass2FileName,'file','y');
PrintStringInfo('** -----------------------------',CPass2FileName,'file','y');
PrintStringInfo('** --- Variable Declaration. ---',CPass2FileName,'file','y');
PrintStringInfo('** -----------------------------',CPass2FileName,'file','y');
PrintStringInfo('*/',CPass2FileName,'file','y');
while (~meof(CDeclarationFileFid))
   tmpcline = mgetl(CDeclarationFileFid,1);
   if (length(tmpcline) == 0)
      tmpcline = ' ';
   end

   noblkstmpcline = stripblanks(tmpcline);
   PrintStringInfo(tmpcline,CPass2FileName,'file','y');
end

while (~meof(CInitVarsFileFid))
   tmpcline = mgetl(CInitVarsFileFid,1);
   if (length(tmpcline) == 0)
      tmpcline = ' ';
   end

   noblkstmpcline = stripblanks(tmpcline);
   PrintStringInfo(tmpcline,CPass2FileName,'file','y');
end
PrintStringInfo('/*',CPass2FileName,'file','y');
PrintStringInfo('** ---------------------------------',CPass2FileName,'file','y');
PrintStringInfo('** --- End Variable Declaration. ---',CPass2FileName,'file','y');
PrintStringInfo('** ---------------------------------',CPass2FileName,'file','y');
PrintStringInfo('*/',CPass2FileName,'file','y');


PrintStringInfo('/*',CPass2FileName,'file','y');
PrintStringInfo('** ---------------',CPass2FileName,'file','y');
PrintStringInfo('** --- C code. ---',CPass2FileName,'file','y');
PrintStringInfo('** ---------------',CPass2FileName,'file','y');
PrintStringInfo('*/',CPass2FileName,'file','y');
while (~meof(CPass1V1FileFid))
   tmpcline = mgetl(CPass1V1FileFid,1);
   if (length(tmpcline) == 0)
      tmpcline = ' ';
   end
   PrintStringInfo(tmpcline,CPass2FileName,'file','y');
end

mclose(CPass1V1FileFid);
mclose(CDeclarationFileFid);
mclose(CGblDeclarFileFid);
mclose(CInitVarsFileFid);

endfunction