Skip to content

Commit 6550b36

Browse files
author
rasmussn
committed
Added return of <str> values in the OFP_Traverse struct.
1 parent 6795d34 commit 6550b36

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

fortran/traverse/traversal.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "traversal.h"
2+
#include <string.h>
23

34
#define DEBUG_PRINT
45

@@ -10,6 +11,11 @@ ATbool ofp_traverse_init()
1011
return ATtrue;
1112
}
1213

14+
static char * ofp_strdup(char * str)
15+
{
16+
return strdup(str);
17+
}
18+
1319
ATbool ofp_traverse_Dop(ATerm term, pOFP_Traverse Dop)
1420
{
1521
#ifdef DEBUG_PRINT
@@ -19,6 +25,7 @@ ATbool ofp_traverse_Dop(ATerm term, pOFP_Traverse Dop)
1925
char * Dop_val;
2026
if (ATmatch(term, "<str>", &Dop_val)) {
2127
// MATCHED Dop
28+
Dop->post = ofp_strdup(Dop_val);
2229
return ATtrue;
2330
} else return ATfalse;
2431

@@ -34,6 +41,7 @@ ATbool ofp_traverse_HexConstant(ATerm term, pOFP_Traverse HexConstant)
3441
char * HexConstant_val;
3542
if (ATmatch(term, "<str>", &HexConstant_val)) {
3643
// MATCHED HexConstant
44+
HexConstant->post = ofp_strdup(HexConstant_val);
3745
return ATtrue;
3846
} else return ATfalse;
3947

@@ -49,6 +57,7 @@ ATbool ofp_traverse_OctalConstant(ATerm term, pOFP_Traverse OctalConstant)
4957
char * OctalConstant_val;
5058
if (ATmatch(term, "<str>", &OctalConstant_val)) {
5159
// MATCHED OctalConstant
60+
OctalConstant->post = ofp_strdup(OctalConstant_val);
5261
return ATtrue;
5362
} else return ATfalse;
5463

@@ -64,6 +73,7 @@ ATbool ofp_traverse_BinaryConstant(ATerm term, pOFP_Traverse BinaryConstant)
6473
char * BinaryConstant_val;
6574
if (ATmatch(term, "<str>", &BinaryConstant_val)) {
6675
// MATCHED BinaryConstant
76+
BinaryConstant->post = ofp_strdup(BinaryConstant_val);
6777
return ATtrue;
6878
} else return ATfalse;
6979

@@ -79,6 +89,7 @@ ATbool ofp_traverse_Rcon(ATerm term, pOFP_Traverse Rcon)
7989
char * Rcon_val;
8090
if (ATmatch(term, "<str>", &Rcon_val)) {
8191
// MATCHED Rcon
92+
Rcon->post = ofp_strdup(Rcon_val);
8293
return ATtrue;
8394
} else return ATfalse;
8495

@@ -94,6 +105,7 @@ ATbool ofp_traverse_Scon(ATerm term, pOFP_Traverse Scon)
94105
char * Scon_val;
95106
if (ATmatch(term, "<str>", &Scon_val)) {
96107
// MATCHED Scon
108+
Scon->post = ofp_strdup(Scon_val);
97109
return ATtrue;
98110
} else return ATfalse;
99111

@@ -109,6 +121,7 @@ ATbool ofp_traverse_Icon(ATerm term, pOFP_Traverse Icon)
109121
char * Icon_val;
110122
if (ATmatch(term, "<str>", &Icon_val)) {
111123
// MATCHED Icon
124+
Icon->post = ofp_strdup(Icon_val);
112125
return ATtrue;
113126
} else return ATfalse;
114127

@@ -124,6 +137,7 @@ ATbool ofp_traverse_Ident(ATerm term, pOFP_Traverse Ident)
124137
char * Ident_val;
125138
if (ATmatch(term, "<str>", &Ident_val)) {
126139
// MATCHED Ident
140+
Ident->post = ofp_strdup(Ident_val);
127141
return ATtrue;
128142
} else return ATfalse;
129143

@@ -139,6 +153,7 @@ ATbool ofp_traverse_Letter(ATerm term, pOFP_Traverse Letter)
139153
char * Letter_val;
140154
if (ATmatch(term, "<str>", &Letter_val)) {
141155
// MATCHED Letter
156+
Letter->post = ofp_strdup(Letter_val);
142157
return ATtrue;
143158
} else return ATfalse;
144159

@@ -154,6 +169,7 @@ ATbool ofp_traverse_Label(ATerm term, pOFP_Traverse Label)
154169
char * Label_val;
155170
if (ATmatch(term, "<str>", &Label_val)) {
156171
// MATCHED Label
172+
Label->post = ofp_strdup(Label_val);
157173
return ATtrue;
158174
} else return ATfalse;
159175

@@ -169,6 +185,7 @@ ATbool ofp_traverse_LblRef(ATerm term, pOFP_Traverse LblRef)
169185
char * LblRef_val;
170186
if (ATmatch(term, "<str>", &LblRef_val)) {
171187
// MATCHED LblRef
188+
LblRef->post = ofp_strdup(LblRef_val);
172189
return ATtrue;
173190
} else return ATfalse;
174191

@@ -184,6 +201,7 @@ ATbool ofp_traverse_StartCommentBlock(ATerm term, pOFP_Traverse StartCommentBloc
184201
char * StartCommentBlock_val;
185202
if (ATmatch(term, "<str>", &StartCommentBlock_val)) {
186203
// MATCHED StartCommentBlock
204+
StartCommentBlock->post = ofp_strdup(StartCommentBlock_val);
187205
return ATtrue;
188206
} else return ATfalse;
189207

@@ -199,6 +217,7 @@ ATbool ofp_traverse_EOS(ATerm term, pOFP_Traverse EOS)
199217
char * EOS_val;
200218
if (ATmatch(term, "<str>", &EOS_val)) {
201219
// MATCHED EOS
220+
EOS->post = ofp_strdup(EOS_val);
202221
return ATtrue;
203222
} else return ATfalse;
204223

0 commit comments

Comments
 (0)