mittens 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/LICENSE.txt +1 -1
- data/README.md +4 -4
- data/lib/mittens/version.rb +1 -1
- data/mittens.gemspec +1 -1
- data/vendor/snowball/.github/workflows/ci.yml +216 -0
- data/vendor/snowball/CONTRIBUTING.rst +111 -62
- data/vendor/snowball/GNUmakefile +194 -136
- data/vendor/snowball/NEWS +798 -3
- data/vendor/snowball/README.rst +50 -1
- data/vendor/snowball/ada/src/stemmer.adb +25 -13
- data/vendor/snowball/ada/src/stemmer.ads +9 -9
- data/vendor/snowball/ada/stemmer_config.gpr +7 -7
- data/vendor/snowball/algorithms/basque.sbl +4 -19
- data/vendor/snowball/algorithms/catalan.sbl +2 -9
- data/vendor/snowball/algorithms/danish.sbl +1 -1
- data/vendor/snowball/algorithms/dutch.sbl +284 -122
- data/vendor/snowball/algorithms/dutch_porter.sbl +178 -0
- data/vendor/snowball/algorithms/english.sbl +52 -37
- data/vendor/snowball/algorithms/esperanto.sbl +157 -0
- data/vendor/snowball/algorithms/estonian.sbl +269 -0
- data/vendor/snowball/algorithms/finnish.sbl +2 -3
- data/vendor/snowball/algorithms/french.sbl +42 -16
- data/vendor/snowball/algorithms/german.sbl +35 -14
- data/vendor/snowball/algorithms/greek.sbl +76 -76
- data/vendor/snowball/algorithms/hungarian.sbl +8 -6
- data/vendor/snowball/algorithms/indonesian.sbl +14 -8
- data/vendor/snowball/algorithms/italian.sbl +11 -21
- data/vendor/snowball/algorithms/lithuanian.sbl +36 -37
- data/vendor/snowball/algorithms/lovins.sbl +0 -1
- data/vendor/snowball/algorithms/nepali.sbl +138 -37
- data/vendor/snowball/algorithms/norwegian.sbl +19 -5
- data/vendor/snowball/algorithms/porter.sbl +2 -2
- data/vendor/snowball/algorithms/portuguese.sbl +9 -13
- data/vendor/snowball/algorithms/romanian.sbl +17 -4
- data/vendor/snowball/algorithms/serbian.sbl +467 -468
- data/vendor/snowball/algorithms/spanish.sbl +5 -7
- data/vendor/snowball/algorithms/swedish.sbl +60 -6
- data/vendor/snowball/algorithms/tamil.sbl +207 -176
- data/vendor/snowball/algorithms/turkish.sbl +461 -445
- data/vendor/snowball/algorithms/yiddish.sbl +36 -38
- data/vendor/snowball/compiler/analyser.c +445 -192
- data/vendor/snowball/compiler/driver.c +109 -101
- data/vendor/snowball/compiler/generator.c +853 -464
- data/vendor/snowball/compiler/generator_ada.c +404 -366
- data/vendor/snowball/compiler/generator_csharp.c +297 -260
- data/vendor/snowball/compiler/generator_go.c +323 -254
- data/vendor/snowball/compiler/generator_java.c +326 -252
- data/vendor/snowball/compiler/generator_js.c +362 -252
- data/vendor/snowball/compiler/generator_pascal.c +349 -197
- data/vendor/snowball/compiler/generator_python.c +257 -240
- data/vendor/snowball/compiler/generator_rust.c +423 -251
- data/vendor/snowball/compiler/header.h +117 -71
- data/vendor/snowball/compiler/space.c +137 -68
- data/vendor/snowball/compiler/syswords.h +2 -2
- data/vendor/snowball/compiler/tokeniser.c +125 -107
- data/vendor/snowball/csharp/Snowball/Among.cs +14 -14
- data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +7 -7
- data/vendor/snowball/csharp/Snowball/Stemmer.cs +57 -37
- data/vendor/snowball/csharp/Stemwords/App.config +2 -2
- data/vendor/snowball/csharp/Stemwords/Program.cs +16 -12
- data/vendor/snowball/doc/libstemmer_c_README +7 -4
- data/vendor/snowball/doc/libstemmer_csharp_README +4 -1
- data/vendor/snowball/doc/libstemmer_java_README +12 -1
- data/vendor/snowball/doc/libstemmer_js_README +6 -4
- data/vendor/snowball/doc/libstemmer_python_README +9 -4
- data/vendor/snowball/examples/stemwords.c +12 -12
- data/vendor/snowball/go/env.go +107 -31
- data/vendor/snowball/go/util.go +0 -4
- data/vendor/snowball/include/libstemmer.h +4 -0
- data/vendor/snowball/java/org/tartarus/snowball/Among.java +32 -15
- data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +347 -261
- data/vendor/snowball/java/org/tartarus/snowball/SnowballStemmer.java +3 -0
- data/vendor/snowball/java/org/tartarus/snowball/TestApp.java +52 -37
- data/vendor/snowball/javascript/base-stemmer.js +186 -2
- data/vendor/snowball/javascript/stemwords.js +3 -6
- data/vendor/snowball/libstemmer/libstemmer_c.in +1 -1
- data/vendor/snowball/libstemmer/mkalgorithms.pl +6 -6
- data/vendor/snowball/libstemmer/mkmodules.pl +2 -2
- data/vendor/snowball/libstemmer/modules.txt +13 -10
- data/vendor/snowball/libstemmer/test.c +1 -1
- data/vendor/snowball/pascal/SnowballProgram.pas +84 -2
- data/vendor/snowball/pascal/generate.pl +13 -13
- data/vendor/snowball/python/create_init.py +4 -1
- data/vendor/snowball/python/setup.cfg +0 -3
- data/vendor/snowball/python/setup.py +8 -3
- data/vendor/snowball/python/snowballstemmer/basestemmer.py +20 -54
- data/vendor/snowball/python/stemwords.py +8 -12
- data/vendor/snowball/runtime/api.c +10 -5
- data/vendor/snowball/runtime/header.h +10 -9
- data/vendor/snowball/runtime/utilities.c +9 -9
- data/vendor/snowball/rust/build.rs +1 -1
- data/vendor/snowball/rust/src/snowball/snowball_env.rs +83 -5
- data/vendor/snowball/tests/stemtest.c +7 -4
- metadata +8 -12
- data/vendor/snowball/.travis.yml +0 -112
- data/vendor/snowball/algorithms/german2.sbl +0 -145
- data/vendor/snowball/algorithms/kraaij_pohlmann.sbl +0 -240
- data/vendor/snowball/compiler/syswords2.h +0 -13
@@ -32,24 +32,24 @@ static void print_arglist(int exit_code) {
|
|
32
32
|
FILE * f = exit_code ? stderr : stdout;
|
33
33
|
fprintf(f, "Usage: snowball SOURCE_FILE... [OPTIONS]\n\n"
|
34
34
|
"Supported options:\n"
|
35
|
-
" -o
|
36
|
-
" -s
|
35
|
+
" -o, -output OUTPUT_BASE\n"
|
36
|
+
" -s, -syntax\n"
|
37
37
|
" -comments\n"
|
38
38
|
#ifndef DISABLE_JAVA
|
39
|
-
" -j
|
39
|
+
" -j, -java\n"
|
40
40
|
#endif
|
41
41
|
#ifndef DISABLE_CSHARP
|
42
|
-
" -cs
|
42
|
+
" -cs, -csharp\n"
|
43
43
|
#endif
|
44
44
|
" -c++\n"
|
45
45
|
#ifndef DISABLE_PASCAL
|
46
46
|
" -pascal\n"
|
47
47
|
#endif
|
48
48
|
#ifndef DISABLE_PYTHON
|
49
|
-
" -py
|
49
|
+
" -py, -python\n"
|
50
50
|
#endif
|
51
51
|
#ifndef DISABLE_JS
|
52
|
-
" -js\n"
|
52
|
+
" -js generate Javascript\n"
|
53
53
|
#endif
|
54
54
|
#ifndef DISABLE_RUST
|
55
55
|
" -rust\n"
|
@@ -60,25 +60,25 @@ static void print_arglist(int exit_code) {
|
|
60
60
|
#ifndef DISABLE_ADA
|
61
61
|
" -ada\n"
|
62
62
|
#endif
|
63
|
-
" -w
|
64
|
-
" -u
|
65
|
-
" -n
|
66
|
-
" -ep
|
67
|
-
" -vp
|
68
|
-
" -i
|
69
|
-
" -r
|
70
|
-
" -p
|
63
|
+
" -w, -widechars\n"
|
64
|
+
" -u, -utf8\n"
|
65
|
+
" -n, -name CLASS_NAME\n"
|
66
|
+
" -ep, -eprefix EXTERNAL_PREFIX\n"
|
67
|
+
" -vp, -vprefix VARIABLE_PREFIX\n"
|
68
|
+
" -i, -include DIRECTORY\n"
|
69
|
+
" -r, -runtime DIRECTORY\n"
|
70
|
+
" -p, -parentclassname CLASS_NAME fully qualified parent class name\n"
|
71
71
|
#if !defined(DISABLE_JAVA) || !defined(DISABLE_CSHARP)
|
72
|
-
" -P
|
73
|
-
" -S
|
74
|
-
" -a
|
72
|
+
" -P, -Package PACKAGE_NAME package name for stemmers\n"
|
73
|
+
" -S, -Stringclass STRING_CLASS StringBuffer-compatible class\n"
|
74
|
+
" -a, -amongclass AMONG_CLASS fully qualified name of the Among class\n"
|
75
75
|
#endif
|
76
76
|
#ifndef DISABLE_GO
|
77
|
-
" -gop
|
78
|
-
" -gor
|
77
|
+
" -gop, -gopackage PACKAGE_NAME Go package name for stemmers\n"
|
78
|
+
" -gor, -goruntime PACKAGE_NAME Go snowball runtime package\n"
|
79
79
|
#endif
|
80
|
-
" --help
|
81
|
-
" --version
|
80
|
+
" --help display this help and exit\n"
|
81
|
+
" --version output version information and exit\n"
|
82
82
|
);
|
83
83
|
exit(exit_code);
|
84
84
|
}
|
@@ -90,19 +90,18 @@ static void check_lim(int i, int argc) {
|
|
90
90
|
}
|
91
91
|
}
|
92
92
|
|
93
|
-
static FILE * get_output(
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
93
|
+
static FILE * get_output(byte * s) {
|
94
|
+
s[SIZE(s)] = 0;
|
95
|
+
const char * filename = (const char *)s;
|
96
|
+
FILE * output = fopen(filename, "w");
|
97
|
+
if (output == NULL) {
|
98
|
+
fprintf(stderr, "Can't open output %s\n", filename);
|
98
99
|
exit(1);
|
99
100
|
}
|
100
|
-
free(s);
|
101
101
|
return output;
|
102
102
|
}
|
103
103
|
|
104
104
|
static int read_options(struct options * o, int argc, char * argv[]) {
|
105
|
-
char * s;
|
106
105
|
int i = 1;
|
107
106
|
int new_argc = 1;
|
108
107
|
/* Note down the last option used to specify an explicit encoding so
|
@@ -112,12 +111,13 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
112
111
|
|
113
112
|
/* set defaults: */
|
114
113
|
|
115
|
-
o->output_file =
|
114
|
+
o->output_file = NULL;
|
116
115
|
o->syntax_tree = false;
|
117
116
|
o->comments = false;
|
117
|
+
o->js_esm = false;
|
118
118
|
o->externals_prefix = NULL;
|
119
|
-
o->variables_prefix =
|
120
|
-
o->runtime_path =
|
119
|
+
o->variables_prefix = NULL;
|
120
|
+
o->runtime_path = NULL;
|
121
121
|
o->parent_class_name = NULL;
|
122
122
|
o->string_class = NULL;
|
123
123
|
o->among_class = NULL;
|
@@ -125,14 +125,14 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
125
125
|
o->go_snowball_runtime = DEFAULT_GO_SNOWBALL_RUNTIME;
|
126
126
|
o->name = NULL;
|
127
127
|
o->make_lang = LANG_C;
|
128
|
-
o->includes =
|
129
|
-
o->includes_end =
|
128
|
+
o->includes = NULL;
|
129
|
+
o->includes_end = NULL;
|
130
130
|
o->encoding = ENC_SINGLEBYTE;
|
131
131
|
|
132
132
|
/* read options: */
|
133
133
|
|
134
134
|
while (i < argc) {
|
135
|
-
s = argv[i++];
|
135
|
+
char * s = argv[i++];
|
136
136
|
if (s[0] != '-') {
|
137
137
|
/* Non-option argument - shuffle down. */
|
138
138
|
argv[new_argc++] = s;
|
@@ -153,7 +153,7 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
153
153
|
/* Take a copy of the argument here, because
|
154
154
|
* later we will free o->name */
|
155
155
|
len = strlen(argv[i]);
|
156
|
-
new_name =
|
156
|
+
new_name = MALLOC(len + 1);
|
157
157
|
memcpy(new_name, argv[i++], len);
|
158
158
|
new_name[len] = '\0';
|
159
159
|
o->name = new_name;
|
@@ -162,6 +162,7 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
162
162
|
#ifndef DISABLE_JS
|
163
163
|
if (eq(s, "-js")) {
|
164
164
|
o->make_lang = LANG_JAVASCRIPT;
|
165
|
+
o->js_esm = false;
|
165
166
|
continue;
|
166
167
|
}
|
167
168
|
#endif
|
@@ -239,12 +240,15 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
239
240
|
|
240
241
|
{
|
241
242
|
NEW(include, p);
|
242
|
-
|
243
|
-
|
244
|
-
p->next =
|
245
|
-
|
246
|
-
if (o->includes ==
|
247
|
-
|
243
|
+
byte * include_dir = add_sz_to_s(NULL, argv[i++]);
|
244
|
+
include_dir = add_char_to_s(include_dir, '/');
|
245
|
+
p->next = NULL; p->s = include_dir;
|
246
|
+
|
247
|
+
if (o->includes == NULL) {
|
248
|
+
o->includes = p;
|
249
|
+
} else {
|
250
|
+
o->includes_end->next = p;
|
251
|
+
}
|
248
252
|
o->includes_end = p;
|
249
253
|
}
|
250
254
|
continue;
|
@@ -399,7 +403,7 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
399
403
|
}
|
400
404
|
|
401
405
|
{
|
402
|
-
char * new_name =
|
406
|
+
char * new_name = MALLOC(len + 1);
|
403
407
|
switch (o->make_lang) {
|
404
408
|
case LANG_CSHARP:
|
405
409
|
case LANG_PASCAL:
|
@@ -413,23 +417,23 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
413
417
|
* underscore+letter or hyphen+letter to an upper case
|
414
418
|
* letter.
|
415
419
|
*/
|
416
|
-
size_t
|
420
|
+
size_t new_len = 0;
|
417
421
|
int uc_next = true;
|
418
|
-
for (
|
419
|
-
unsigned char ch = leaf[
|
422
|
+
for (size_t j = 0; j != len; ++j) {
|
423
|
+
unsigned char ch = leaf[j];
|
420
424
|
if (ch == '_' || ch == '-') {
|
421
425
|
uc_next = true;
|
422
426
|
} else {
|
423
427
|
if (uc_next) {
|
424
|
-
new_name[
|
428
|
+
new_name[new_len] = toupper(ch);
|
425
429
|
uc_next = false;
|
426
430
|
} else {
|
427
|
-
new_name[
|
431
|
+
new_name[new_len] = ch;
|
428
432
|
}
|
429
|
-
++
|
433
|
+
++new_len;
|
430
434
|
}
|
431
435
|
}
|
432
|
-
len =
|
436
|
+
len = new_len;
|
433
437
|
break;
|
434
438
|
}
|
435
439
|
default:
|
@@ -446,14 +450,13 @@ static int read_options(struct options * o, int argc, char * argv[]) {
|
|
446
450
|
}
|
447
451
|
|
448
452
|
extern int main(int argc, char * argv[]) {
|
449
|
-
|
450
453
|
int i;
|
451
454
|
NEW(options, o);
|
452
455
|
argc = read_options(o, argc, argv);
|
453
456
|
{
|
454
457
|
char * file = argv[1];
|
455
|
-
|
456
|
-
if (u ==
|
458
|
+
byte * u = get_input(file);
|
459
|
+
if (u == NULL) {
|
457
460
|
fprintf(stderr, "Can't open input %s\n", file);
|
458
461
|
exit(1);
|
459
462
|
}
|
@@ -470,14 +473,14 @@ extern int main(int argc, char * argv[]) {
|
|
470
473
|
NEW(input, q);
|
471
474
|
file = argv[i];
|
472
475
|
u = get_input(file);
|
473
|
-
if (u ==
|
476
|
+
if (u == NULL) {
|
474
477
|
fprintf(stderr, "Can't open input %s\n", file);
|
475
478
|
exit(1);
|
476
479
|
}
|
477
480
|
q->p = u;
|
478
481
|
q->c = 0;
|
479
482
|
q->file = file;
|
480
|
-
q->
|
483
|
+
q->file_owned = 0;
|
481
484
|
q->line_number = 1;
|
482
485
|
*next_input_ptr = q;
|
483
486
|
next_input_ptr = &(q->next);
|
@@ -486,26 +489,25 @@ extern int main(int argc, char * argv[]) {
|
|
486
489
|
read_program(a);
|
487
490
|
if (t->error_count > 0) exit(1);
|
488
491
|
if (o->syntax_tree) print_program(a);
|
489
|
-
close_tokeniser(t);
|
490
492
|
if (!o->syntax_tree) {
|
491
493
|
struct generator * g;
|
492
494
|
|
493
|
-
const char *
|
494
|
-
if (!
|
495
|
+
const char * output_base = o->output_file;
|
496
|
+
if (!output_base) {
|
495
497
|
fprintf(stderr, "Please include the -o option\n");
|
496
498
|
print_arglist(1);
|
497
499
|
}
|
498
500
|
g = create_generator(a, o);
|
499
501
|
if (o->make_lang == LANG_C || o->make_lang == LANG_CPLUSPLUS) {
|
500
|
-
|
501
|
-
|
502
|
-
o->output_h = get_output(
|
503
|
-
|
502
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
503
|
+
s = add_literal_to_s(s, ".h");
|
504
|
+
o->output_h = get_output(s);
|
505
|
+
s[SIZE(s) - 1] = 'c';
|
504
506
|
if (o->make_lang == LANG_CPLUSPLUS) {
|
505
|
-
|
507
|
+
s = add_char_to_s(s, 'c');
|
506
508
|
}
|
507
|
-
o->output_src = get_output(
|
508
|
-
|
509
|
+
o->output_src = get_output(s);
|
510
|
+
lose_s(s);
|
509
511
|
|
510
512
|
generate_program_c(g);
|
511
513
|
fclose(o->output_src);
|
@@ -513,99 +515,105 @@ extern int main(int argc, char * argv[]) {
|
|
513
515
|
}
|
514
516
|
#ifndef DISABLE_JAVA
|
515
517
|
if (o->make_lang == LANG_JAVA) {
|
516
|
-
|
517
|
-
|
518
|
-
o->output_src = get_output(
|
519
|
-
|
518
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
519
|
+
s = add_literal_to_s(s, ".java");
|
520
|
+
o->output_src = get_output(s);
|
521
|
+
lose_s(s);
|
520
522
|
generate_program_java(g);
|
521
523
|
fclose(o->output_src);
|
522
524
|
}
|
523
525
|
#endif
|
524
526
|
#ifndef DISABLE_PASCAL
|
525
527
|
if (o->make_lang == LANG_PASCAL) {
|
526
|
-
|
527
|
-
|
528
|
-
o->output_src = get_output(
|
529
|
-
|
528
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
529
|
+
s = add_literal_to_s(s, ".pas");
|
530
|
+
o->output_src = get_output(s);
|
531
|
+
lose_s(s);
|
530
532
|
generate_program_pascal(g);
|
531
533
|
fclose(o->output_src);
|
532
534
|
}
|
533
535
|
#endif
|
534
536
|
#ifndef DISABLE_PYTHON
|
535
537
|
if (o->make_lang == LANG_PYTHON) {
|
536
|
-
|
537
|
-
|
538
|
-
o->output_src = get_output(
|
539
|
-
|
538
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
539
|
+
s = add_literal_to_s(s, ".py");
|
540
|
+
o->output_src = get_output(s);
|
541
|
+
lose_s(s);
|
540
542
|
generate_program_python(g);
|
541
543
|
fclose(o->output_src);
|
542
544
|
}
|
543
545
|
#endif
|
544
546
|
#ifndef DISABLE_JS
|
545
547
|
if (o->make_lang == LANG_JAVASCRIPT) {
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
548
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
549
|
+
if (o->js_esm) {
|
550
|
+
s = add_literal_to_s(s, ".mjs");
|
551
|
+
} else {
|
552
|
+
s = add_literal_to_s(s, ".js");
|
553
|
+
}
|
554
|
+
o->output_src = get_output(s);
|
555
|
+
lose_s(s);
|
550
556
|
generate_program_js(g);
|
551
557
|
fclose(o->output_src);
|
552
558
|
}
|
553
559
|
#endif
|
554
560
|
#ifndef DISABLE_CSHARP
|
555
561
|
if (o->make_lang == LANG_CSHARP) {
|
556
|
-
|
557
|
-
|
558
|
-
o->output_src = get_output(
|
559
|
-
|
562
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
563
|
+
s = add_literal_to_s(s, ".cs");
|
564
|
+
o->output_src = get_output(s);
|
565
|
+
lose_s(s);
|
560
566
|
generate_program_csharp(g);
|
561
567
|
fclose(o->output_src);
|
562
568
|
}
|
563
569
|
#endif
|
564
570
|
#ifndef DISABLE_RUST
|
565
571
|
if (o->make_lang == LANG_RUST) {
|
566
|
-
|
567
|
-
|
568
|
-
o->output_src = get_output(
|
569
|
-
|
572
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
573
|
+
s = add_literal_to_s(s, ".rs");
|
574
|
+
o->output_src = get_output(s);
|
575
|
+
lose_s(s);
|
570
576
|
generate_program_rust(g);
|
571
577
|
fclose(o->output_src);
|
572
578
|
}
|
573
579
|
#endif
|
574
580
|
#ifndef DISABLE_GO
|
575
581
|
if (o->make_lang == LANG_GO) {
|
576
|
-
|
577
|
-
|
578
|
-
o->output_src = get_output(
|
579
|
-
|
582
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
583
|
+
s = add_literal_to_s(s, ".go");
|
584
|
+
o->output_src = get_output(s);
|
585
|
+
lose_s(s);
|
580
586
|
generate_program_go(g);
|
581
587
|
fclose(o->output_src);
|
582
588
|
}
|
583
589
|
#endif
|
584
590
|
#ifndef DISABLE_ADA
|
585
591
|
if (o->make_lang == LANG_ADA) {
|
586
|
-
|
587
|
-
|
588
|
-
o->output_h = get_output(
|
589
|
-
|
590
|
-
o->output_src = get_output(
|
591
|
-
|
592
|
+
byte * s = add_sz_to_s(NULL, output_base);
|
593
|
+
s = add_literal_to_s(s, ".ads");
|
594
|
+
o->output_h = get_output(s);
|
595
|
+
s[SIZE(s) - 1] = 'b';
|
596
|
+
o->output_src = get_output(s);
|
597
|
+
lose_s(s);
|
592
598
|
|
593
599
|
generate_program_ada(g);
|
594
600
|
fclose(o->output_src);
|
595
601
|
fclose(o->output_h);
|
596
|
-
|
597
602
|
}
|
598
603
|
#endif
|
599
604
|
close_generator(g);
|
600
605
|
}
|
606
|
+
close_tokeniser(t);
|
601
607
|
close_analyser(a);
|
602
608
|
}
|
603
|
-
|
609
|
+
lose_s(u);
|
604
610
|
}
|
605
611
|
{ struct include * p = o->includes;
|
606
612
|
while (p) {
|
607
613
|
struct include * q = p->next;
|
608
|
-
|
614
|
+
lose_s(p->s);
|
615
|
+
FREE(p);
|
616
|
+
p = q;
|
609
617
|
}
|
610
618
|
}
|
611
619
|
FREE(o->name);
|