linkparser 1.1.3 → 2.2.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.
data/LICENSE DELETED
@@ -1,27 +0,0 @@
1
- Copyright (c) 2006-2011, The FaerieMUD Consortium
2
- All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without
5
- modification, are permitted provided that the following conditions are met:
6
-
7
- * Redistributions of source code must retain the above copyright notice,
8
- this list of conditions and the following disclaimer.
9
-
10
- * Redistributions in binary form must reproduce the above copyright notice,
11
- this list of conditions and the following disclaimer in the documentation
12
- and/or other materials provided with the distribution.
13
-
14
- * Neither the name of the author/s, nor the names of the project's
15
- contributors may be used to endorse or promote products derived from this
16
- software without specific prior written permission.
17
-
18
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Rakefile DELETED
@@ -1,91 +0,0 @@
1
- #!/usr/bin/env rake
2
-
3
- require 'rbconfig'
4
- require 'pathname'
5
-
6
- begin
7
- require 'hoe'
8
- rescue LoadError => err
9
- abort "This Rakefile requires 'hoe' (gem install hoe)."
10
- end
11
-
12
- begin
13
- require 'rake/extensiontask'
14
- rescue LoadError => err
15
- abort "This Rakefile requires 'rake-compiler' (gem install rake-compiler)"
16
- end
17
-
18
- # Build constants
19
- BASEDIR = Pathname( __FILE__ ).dirname.relative_path_from( Pathname.pwd )
20
- SPECDIR = BASEDIR + 'spec'
21
- EXTDIR = BASEDIR + 'ext'
22
- LIBDIR = BASEDIR + 'lib'
23
-
24
- DLEXT = Config::CONFIG['DLEXT']
25
-
26
- EXTCONF = EXTDIR + 'extconf.rb'
27
- EXT = LIBDIR + "linkparser_ext.#{DLEXT}"
28
-
29
- # Hoe plugins
30
- Hoe.plugin :mercurial
31
- Hoe.plugin :signing
32
-
33
- Hoe.plugins.delete :rubyforge
34
-
35
- # Main gem configuration
36
- hoespec = Hoe.spec 'linkparser' do
37
- self.readme_file = 'README.md'
38
- self.history_file = 'History.md'
39
-
40
- self.developer 'Michael Granger', 'ged@FaerieMUD.org'
41
- self.developer 'Martin Chase', 'stillflame@FaerieMUD.org'
42
-
43
- self.dependency 'rake-compiler', '~> 0.7'
44
- self.dependency 'rspec', '~> 2.4', :development
45
- self.dependency 'hoe-deveiate', '~> 0.0.6', :development
46
-
47
- self.spec_extras[:licenses] = ["BSD"]
48
- self.spec_extras[:extensions] = [ EXTCONF.to_s ]
49
-
50
- self.require_ruby_version( '>=1.8.7' )
51
-
52
- self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
53
- self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
54
- end
55
-
56
- ENV['VERSION'] ||= hoespec.spec.version.to_s
57
-
58
- # Running the tests depends on compilation
59
- # Need to (re)compile before running specs
60
- task :spec => :compile
61
-
62
- # gem-testers support
63
- task :test do
64
- # rake-compiler always wants to copy the compiled extension into lib/, but
65
- # we don't want testers to have to re-compile, especially since that
66
- # often fails because they can't (and shouldn't have to) write to tmp/ in
67
- # the installed gem dir. So we clear the task rake-compiler set up
68
- # to break the dependency between :spec and :compile when running under
69
- # rubygems-test, and then run :spec.
70
- Rake::Task[ EXT.to_s ].clear
71
- Rake::Task[ :spec ].execute
72
- end
73
-
74
- desc "Turn on warnings and debugging in the build."
75
- task :maint do
76
- ENV['MAINTAINER_MODE'] = 'yes'
77
- end
78
-
79
- ENV['RUBY_CC_VERSION'] = '1.8.7:1.9.2'
80
-
81
- # Rake-compiler task
82
- Rake::ExtensionTask.new do |ext|
83
- ext.gem_spec = hoespec.spec
84
- ext.name = 'linkparser_ext'
85
- ext.ext_dir = 'ext'
86
- ext.lib_dir = 'lib'
87
- ext.source_pattern = "*.{c,h}"
88
- ext.cross_compile = true
89
- ext.cross_platform = %w[i386-mswin32 i386-mingw32]
90
- end
91
-
@@ -1,1236 +0,0 @@
1
- /*
2
- * parseoptions.c - Ruby LinkParser::ParseOptions class
3
- * $Id: parseoptions.c,v 21df914cedb1 2010/10/12 15:45:26 ged $
4
- *
5
- * Authors:
6
- * * Michael Granger <ged@FaerieMUD.org>
7
- *
8
- * Please see the LICENSE file at the top of the distribution for licensing
9
- * information.
10
- */
11
-
12
- #include "linkparser.h"
13
-
14
-
15
- /* --------------------------------------------------
16
- * Forward declarations
17
- * -------------------------------------------------- */
18
-
19
- static VALUE rlink_parseopts_each_opthash_i _(( VALUE, VALUE ));
20
-
21
-
22
- /* --------------------------------------------------
23
- * Macros and constants
24
- * -------------------------------------------------- */
25
-
26
-
27
- /* --------------------------------------------------
28
- * Memory-management functions
29
- * -------------------------------------------------- */
30
-
31
- /*
32
- * Free function
33
- */
34
- static void
35
- rlink_parseopts_gc_free( Parse_Options parseopts ) {
36
- if ( parseopts ) parse_options_delete( parseopts );
37
- }
38
-
39
-
40
- /*
41
- * Object validity checker. Returns the data pointer.
42
- */
43
- static Parse_Options
44
- check_parseopts( VALUE self ) {
45
- Check_Type( self, T_DATA );
46
-
47
- if ( !IsParseOptions(self) ) {
48
- rb_raise( rb_eTypeError, "wrong argument type %s (expected LinkParser::ParseOptions)",
49
- rb_class2name(CLASS_OF( self )) );
50
- }
51
-
52
- return DATA_PTR( self );
53
- }
54
-
55
-
56
- /*
57
- * Fetch the data pointer and check it for sanity.
58
- */
59
- static Parse_Options
60
- get_parseopts( VALUE self ) {
61
- Parse_Options parseopts = check_parseopts( self );
62
-
63
- if ( !parseopts )
64
- rb_raise( rb_eRuntimeError, "uninitialized ParseOptions" );
65
-
66
- return parseopts;
67
- }
68
-
69
-
70
- /*
71
- * Get the Parse_Options struct behind the LinkParser::ParseOptions +object+
72
- * specified.
73
- */
74
- Parse_Options
75
- rlink_get_parseopts( VALUE obj ) {
76
- return get_parseopts( obj );
77
- }
78
-
79
-
80
- /* --------------------------------------------------
81
- * Class Methods
82
- * -------------------------------------------------- */
83
-
84
- /*
85
- * call-seq:
86
- * LinkParser::ParseOptions.allocate -> obj
87
- *
88
- * Allocate a new LinkParser::ParseOptions object.
89
- */
90
- static VALUE
91
- rlink_parseopts_s_alloc( VALUE klass ) {
92
- debugMsg(( "Wrapping an uninitialized ParseOptions pointer." ));
93
- return Data_Wrap_Struct( klass, 0, rlink_parseopts_gc_free, 0 );
94
- }
95
-
96
-
97
-
98
- /* ---------------------------------------------------
99
- * Instance Methods
100
- * --------------------------------------------------- */
101
-
102
-
103
- /*
104
- * call-seq:
105
- * LinkParser::ParseOptions.new( opthash ) -> obj
106
- *
107
- * Create a new ParseOptions object and set values from opthash.
108
- *
109
- * po = LinkParser::ParseOptions.new( :allow_null => true, :batch_mode => true )
110
- *
111
- */
112
- static VALUE
113
- rlink_parseopts_init( int argc, VALUE *argv, VALUE self ) {
114
- if ( ! check_parseopts(self) ) {
115
- Parse_Options opts;
116
- VALUE opthash = Qnil;
117
-
118
- debugMsg(( "Initializing a ParseOptions: %p", self ));
119
- DATA_PTR( self ) = opts = parse_options_create();
120
-
121
- rb_scan_args( argc, argv, "01", &opthash );
122
- if ( RTEST(opthash) ) {
123
- debugMsg(( "Setting options from an opthash." ));
124
- rb_iterate( rb_each, opthash, rlink_parseopts_each_opthash_i, self );
125
- }
126
- }
127
-
128
- else {
129
- rb_raise( rb_eRuntimeError, "Cannot re-initialize a Dictionary object." );
130
- }
131
-
132
- return self;
133
- }
134
-
135
-
136
- /*
137
- * Iterator function for rlink_parseopts_init() -- for each element of the hash passed
138
- * to the constructor, call the corresponding accessor in the new object.
139
- */
140
- static VALUE
141
- rlink_parseopts_each_opthash_i( VALUE pair, VALUE self ) {
142
- VALUE key, val, keystring;
143
- char *method_name;
144
- ID method;
145
-
146
- key = rb_ary_entry( pair, 0 );
147
- val = rb_ary_entry( pair, 1 );
148
-
149
- keystring = rb_obj_as_string( key );
150
-
151
- method_name = ALLOCA_N( char, RSTRING_LEN(keystring) + 1 );
152
- strncpy( method_name, RSTRING_PTR(keystring), RSTRING_LEN(keystring) + 1 );
153
- strncat( method_name, "=", 1 );
154
-
155
- debugMsg(( "Calling method %s", method_name ));
156
- method = rb_intern( method_name );
157
-
158
- return rb_funcall( self, method, 1, val );
159
- }
160
-
161
-
162
- /*
163
- * call-seq:
164
- * merge( other ) -> parseopts
165
- *
166
- * Merge the receiving parse options with the given +other+ object, which can
167
- * be either another LinkParser::ParseOptions object or a Hash of options.
168
- */
169
- /*static VALUE
170
- rlink_parseopts_merge( VALUE self, other ) {
171
-
172
- }
173
- */
174
-
175
-
176
- /*
177
- * call-seq:
178
- * opts.verbosity= fixnum
179
- *
180
- * This sets the level of description printed to stderr/stdout about the
181
- * parsing process.
182
- */
183
- static VALUE
184
- rlink_parseopts_set_verbosity( VALUE self, VALUE verbosity ) {
185
- Parse_Options opts = get_parseopts( self );
186
- parse_options_set_verbosity( opts, NUM2INT(verbosity) );
187
- return verbosity;
188
- }
189
-
190
-
191
- /*
192
- * call-seq:
193
- * opts.verbosity -> fixnum
194
- *
195
- * This gets the level of description printed to stderr/stdout about the
196
- * parsing process.
197
- */
198
- static VALUE
199
- rlink_parseopts_get_verbosity( VALUE self ) {
200
- Parse_Options opts = get_parseopts( self );
201
- int rval;
202
-
203
- rval = parse_options_get_verbosity( opts );
204
- return INT2FIX( rval );
205
- }
206
-
207
-
208
- /*
209
- * call-seq:
210
- * opts.linkage_limit= fixnum
211
- *
212
- * This parameter determines the maximum number of linkages that are
213
- * considered in post-processing. If more than +linkage_limit+ linkages are found,
214
- * then a random sample of +linkage_limit+ is chosen for post-processing. When
215
- * this happen a warning is displayed at verbosity levels greater than 1.
216
- */
217
- static VALUE
218
- rlink_parseopts_set_linkage_limit( VALUE self, VALUE linkage_limit ) {
219
- Parse_Options opts = get_parseopts( self );
220
- parse_options_set_linkage_limit( opts, NUM2INT(linkage_limit) );
221
- return linkage_limit;
222
- }
223
-
224
-
225
- /*
226
- * call-seq:
227
- * opts.linkage_limit -> fixnum
228
- *
229
- * This parameter determines the maximum number of linkages that are
230
- * considered in post-processing. If more than +linkage_limit+ linkages are found,
231
- * then a random sample of +linkage_limit+ is chosen for post-processing. When
232
- * this happen a warning is displayed at verbosity levels greater than 1.
233
- */
234
- static VALUE
235
- rlink_parseopts_get_linkage_limit( VALUE self ) {
236
- Parse_Options opts = get_parseopts( self );
237
- int rval;
238
-
239
- rval = parse_options_get_linkage_limit( opts );
240
- return INT2FIX( rval );
241
- }
242
-
243
-
244
- /*
245
- * call-seq:
246
- * opts.disjunct_cost= fixnum
247
- *
248
- * Determines the maximum disjunct cost used during parsing, where the cost
249
- * of a disjunct is equal to the maximum cost of all of its connectors. The
250
- * default is that all disjuncts, no matter what their cost, are considered.
251
- */
252
- static VALUE
253
- rlink_parseopts_set_disjunct_cost( VALUE self, VALUE disjunct_cost ) {
254
- Parse_Options opts = get_parseopts( self );
255
- parse_options_set_disjunct_cost( opts, NUM2INT(disjunct_cost) );
256
- return disjunct_cost;
257
- }
258
-
259
-
260
- /*
261
- * call-seq:
262
- * opts.disjunct_cost -> fixnum
263
- *
264
- * Get the maximum disjunct cost used during parsing.
265
- */
266
- static VALUE
267
- rlink_parseopts_get_disjunct_cost( VALUE self ) {
268
- Parse_Options opts = get_parseopts( self );
269
- int rval;
270
-
271
- rval = parse_options_get_disjunct_cost( opts );
272
- return INT2FIX( rval );
273
- }
274
-
275
-
276
- /*
277
- * call-seq:
278
- * opts.min_null_count= fixnum -> fixnum
279
- *
280
- * Set the minimum of null links that a parse can have. A call to
281
- * LinkParser::Sentence#parse will find all linkages having the minimum
282
- * number of null links within the range specified by this parameter.
283
- */
284
- static VALUE
285
- rlink_parseopts_set_min_null_count( VALUE self, VALUE null_count ) {
286
- Parse_Options opts = get_parseopts( self );
287
- parse_options_set_min_null_count( opts, NUM2INT(null_count) );
288
- return null_count;
289
- }
290
-
291
-
292
- /*
293
- * call-seq:
294
- * opts.min_null_count -> fixnum
295
- *
296
- * Get the minimum of null links that a parse can have.
297
- */
298
- static VALUE
299
- rlink_parseopts_get_min_null_count( VALUE self ) {
300
- Parse_Options opts = get_parseopts( self );
301
- int rval;
302
-
303
- rval = parse_options_get_min_null_count( opts );
304
- return INT2FIX( rval );
305
- }
306
-
307
-
308
- /*
309
- * call-seq:
310
- * opts.max_null_count= fixnum
311
- *
312
- * Set the maximum number of null links allowed in a parse.
313
- */
314
- static VALUE
315
- rlink_parseopts_set_max_null_count( VALUE self, VALUE null_count ) {
316
- Parse_Options opts = get_parseopts( self );
317
- parse_options_set_max_null_count( opts, NUM2INT(null_count) );
318
- return null_count;
319
- }
320
-
321
-
322
- /*
323
- * call-seq:
324
- * opts.max_null_count -> fixnum
325
- *
326
- * Get the maximum number of null links allowed in a parse.
327
- */
328
- static VALUE
329
- rlink_parseopts_get_max_null_count( VALUE self ) {
330
- Parse_Options opts = get_parseopts( self );
331
- int rval;
332
-
333
- rval = parse_options_get_max_null_count( opts );
334
- return INT2FIX( rval );
335
- }
336
-
337
-
338
- /*
339
- * call-seq:
340
- * opts.null_block= null_block
341
- *
342
- * Set the null_block option to the specified value. The null_block option
343
- * allows null links to be counted in "bunches." For example, if null_block
344
- * is 4, then a linkage with 1,2,3 or 4 null links has a null cost of 1, a
345
- * linkage with 5,6,7 or 8 null links has a null cost of 2, etc.
346
- */
347
- static VALUE
348
- rlink_parseopts_set_null_block( VALUE self, VALUE null_block ) {
349
- Parse_Options opts = get_parseopts( self );
350
- parse_options_set_null_block( opts, NUM2INT(null_block) );
351
- return null_block;
352
- }
353
-
354
-
355
- /*
356
- * call-seq:
357
- * opts.null_block -> fixnum
358
- *
359
- * Get the value of the null_block option.
360
- */
361
- static VALUE
362
- rlink_parseopts_get_null_block( VALUE self ) {
363
- Parse_Options opts = get_parseopts( self );
364
- int rval;
365
-
366
- rval = parse_options_get_null_block( opts );
367
- return INT2FIX( rval );
368
- }
369
-
370
-
371
- /*
372
- * call-seq:
373
- * opts.islands_ok= boolean
374
- *
375
- * This option determines whether or not "islands" of links are allowed. For
376
- * example, the following linkage has an island:
377
- *
378
- * +------Wd-----+
379
- * | +--Dsu--+---Ss--+-Paf-+ +--Dsu--+---Ss--+--Pa-+
380
- * | | | | | | | | |
381
- * ///// this sentence.n is.v false.a this sentence.n is.v true.a
382
- */
383
- static VALUE
384
- rlink_parseopts_set_islands_ok( VALUE self, VALUE islands_ok ) {
385
- Parse_Options opts = get_parseopts( self );
386
- parse_options_set_islands_ok( opts, RTEST(islands_ok) );
387
- return islands_ok;
388
- }
389
-
390
-
391
- /*
392
- * call-seq:
393
- * opts.islands_ok? -> true or false
394
- *
395
- * Get the value of the islands_ok option.
396
- */
397
- static VALUE
398
- rlink_parseopts_get_islands_ok_p( VALUE self ) {
399
- Parse_Options opts = get_parseopts( self );
400
- int rval;
401
-
402
- rval = parse_options_get_islands_ok( opts );
403
- return rval ? Qtrue : Qfalse;
404
- }
405
-
406
-
407
- /*
408
- * call-seq:
409
- * opts.short_length= fixnum
410
- *
411
- * The short_length parameter determines how long the links are allowed to
412
- * be. The intended use of this is to speed up parsing by not considering
413
- * very long links for most connectors, since they are very rarely used in a
414
- * correct parse. An entry for UNLIMITED-CONNECTORS in the dictionary will
415
- * specify which connectors are exempt from the length limit.
416
- */
417
- static VALUE
418
- rlink_parseopts_set_short_length( VALUE self, VALUE short_length ) {
419
- Parse_Options opts = get_parseopts( self );
420
- parse_options_set_short_length( opts, NUM2INT(short_length) );
421
- return short_length;
422
- }
423
-
424
-
425
- /*
426
- * call-seq:
427
- * opts.short_length -> fixnum
428
- *
429
- * Get the value of the short_length option.
430
- */
431
- static VALUE
432
- rlink_parseopts_get_short_length( VALUE self ) {
433
- Parse_Options opts = get_parseopts( self );
434
- int rval;
435
-
436
- rval = parse_options_get_short_length( opts );
437
- return INT2FIX( rval );
438
- }
439
-
440
-
441
- /*
442
- * call-seq:
443
- * opts.max_memory= fixnum
444
- *
445
- * Determines the maximum memory allowed during parsing. This is used just as
446
- * max_parse_time is, so that the parsing process is terminated as quickly as
447
- * possible after the total memory (including that allocated to all
448
- * dictionaries, etc.) exceeds the maximum allowed.
449
- */
450
- static VALUE
451
- rlink_parseopts_set_max_memory( VALUE self, VALUE mem ) {
452
- Parse_Options opts = get_parseopts( self );
453
- parse_options_set_max_memory( opts, NUM2INT(mem) );
454
- return mem;
455
- }
456
-
457
-
458
- /*
459
- * call-seq:
460
- * opts.max_memory -> fixnum
461
- *
462
- * Get the value of the max_memory option.
463
- */
464
- static VALUE
465
- rlink_parseopts_get_max_memory( VALUE self ) {
466
- Parse_Options opts = get_parseopts( self );
467
- int rval;
468
-
469
- rval = parse_options_get_max_memory( opts );
470
- return INT2FIX( rval );
471
- }
472
-
473
-
474
- /*
475
- * call-seq:
476
- * opts.max_sentence_length= fixnum
477
- *
478
- * Determines the maximum length of a parsed sentence.
479
- */
480
- static VALUE
481
- rlink_parseopts_set_max_sentence_length( VALUE self, VALUE len ) {
482
- Parse_Options opts = get_parseopts( self );
483
- parse_options_set_max_sentence_length( opts, NUM2INT(len) );
484
- return len;
485
- }
486
-
487
-
488
- /*
489
- * call-seq:
490
- * opts.max_sentence_length -> fixnum
491
- *
492
- * Get the value of the max_sentence_length option.
493
- */
494
- static VALUE
495
- rlink_parseopts_get_max_sentence_length( VALUE self ) {
496
- Parse_Options opts = get_parseopts( self );
497
- int rval;
498
-
499
- rval = parse_options_get_max_sentence_length( opts );
500
- return INT2FIX( rval );
501
- }
502
-
503
-
504
- /*
505
- * call-seq:
506
- * opts.max_parse_time= seconds
507
- *
508
- * Determines the approximate maximum time that parsing is allowed to take.
509
- * The way it works is that after this time has expired, the parsing process
510
- * is artificially forced to complete quickly by pretending that no further
511
- * solutions (entries in the hash table) can be constructed. The actual
512
- * parsing time might be slightly longer.
513
- */
514
- static VALUE
515
- rlink_parseopts_set_max_parse_time( VALUE self, VALUE secs ) {
516
- Parse_Options opts = get_parseopts( self );
517
- parse_options_set_max_parse_time( opts, NUM2INT(secs) );
518
- return secs;
519
- }
520
-
521
-
522
- /*
523
- * call-seq:
524
- * opts.max_parse_time -> fixnum
525
- *
526
- * Get the number of seconds of the max_parse_time option.
527
- */
528
- static VALUE
529
- rlink_parseopts_get_max_parse_time( VALUE self ) {
530
- Parse_Options opts = get_parseopts( self );
531
- int rval;
532
-
533
- rval = parse_options_get_max_parse_time( opts );
534
- return INT2FIX( rval );
535
- }
536
-
537
-
538
- /*
539
- * call-seq:
540
- * opts.screen_width= columns
541
- *
542
- * Set the screen width assumed by the diagramming functions.
543
- */
544
- static VALUE
545
- rlink_parseopts_set_screen_width( VALUE self, VALUE val ) {
546
- Parse_Options opts = get_parseopts( self );
547
- parse_options_set_screen_width( opts, NUM2INT(val) );
548
- return val;
549
- }
550
-
551
-
552
- /*
553
- * call-seq:
554
- * opts.screen_width -> fixnum
555
- *
556
- * Get the screen width assumed by the diagramming functions.
557
- */
558
- static VALUE
559
- rlink_parseopts_get_screen_width( VALUE self ) {
560
- Parse_Options opts = get_parseopts( self );
561
- int rval;
562
-
563
- rval = parse_options_get_screen_width( opts );
564
- return INT2FIX( rval );
565
- }
566
-
567
-
568
- /*
569
- * call-seq:
570
- * opts.allow_null= boolean
571
- *
572
- * Indicates whether or not linkages are allowed to have null links.
573
- */
574
- static VALUE
575
- rlink_parseopts_set_allow_null( VALUE self, VALUE val ) {
576
- Parse_Options opts = get_parseopts( self );
577
- parse_options_set_allow_null( opts, RTEST(val) );
578
- return val;
579
- }
580
-
581
-
582
- /*
583
- * call-seq:
584
- * opts.allow_null? -> true or false
585
- *
586
- * Get the value of the allow_null option.
587
- */
588
- static VALUE
589
- rlink_parseopts_get_allow_null_p( VALUE self ) {
590
- Parse_Options opts = get_parseopts( self );
591
- int rval;
592
-
593
- rval = parse_options_get_allow_null( opts );
594
- return rval ? Qtrue : Qfalse;
595
- }
596
-
597
-
598
- /*
599
- * call-seq:
600
- * opts.display_walls= boolean
601
- *
602
- * Whether or not to show the wall word(s) when a linkage diagram is printed.
603
- */
604
- static VALUE
605
- rlink_parseopts_set_display_walls( VALUE self, VALUE val ) {
606
- Parse_Options opts = get_parseopts( self );
607
- parse_options_set_display_walls( opts, RTEST(val) );
608
- return val;
609
- }
610
-
611
-
612
- /*
613
- * call-seq:
614
- * opts.display_walls? -> true or false
615
- *
616
- * Whether or not to show the wall word(s) when a linkage diagram is printed.
617
- */
618
- static VALUE
619
- rlink_parseopts_get_display_walls_p( VALUE self ) {
620
- Parse_Options opts = get_parseopts( self );
621
- int rval;
622
-
623
- rval = parse_options_get_display_walls( opts );
624
- return rval ? Qtrue : Qfalse;
625
- }
626
-
627
-
628
- /*
629
- * call-seq:
630
- * opts.all_short_connectors= boolean
631
- *
632
- * If true, then all connectors have length restrictions imposed on them --
633
- * they can be no farther than short_length apart. This is used when parsing
634
- * in "panic" mode, for example.
635
- */
636
- static VALUE
637
- rlink_parseopts_set_all_short_connectors( VALUE self, VALUE val ) {
638
- Parse_Options opts = get_parseopts( self );
639
- parse_options_set_all_short_connectors( opts, RTEST(val) );
640
- return val;
641
- }
642
-
643
-
644
- /*
645
- * call-seq:
646
- * opts.all_short_connectors? -> true or false
647
- *
648
- * Get the value of the all_short_connectors option.
649
- */
650
- static VALUE
651
- rlink_parseopts_get_all_short_connectors_p( VALUE self ) {
652
- Parse_Options opts = get_parseopts( self );
653
- int rval;
654
-
655
- rval = parse_options_get_all_short_connectors( opts );
656
- return rval ? Qtrue : Qfalse;
657
- }
658
-
659
-
660
- /*
661
- * call-seq:
662
- * opts.cost_model_type=
663
- *
664
- * The cost model type for ranking linkages, which is an index into an array
665
- * of function pointers. The current code only has a single entry, but others
666
- * could easily be added.
667
- */
668
- static VALUE
669
- rlink_parseopts_set_cost_model_type( VALUE self, VALUE cm ) {
670
- Parse_Options opts = get_parseopts( self );
671
- parse_options_set_cost_model_type( opts, NUM2INT(cm) );
672
- return cm;
673
- }
674
-
675
-
676
- /*
677
- * call-seq:
678
- * opts.cost_model_type -> fixnum
679
- *
680
- * Get the cost model type for ranking linkages.
681
- */
682
- /*
683
-
684
- There's no actual API function for getting the cost_model_type. I guess if
685
- there's ever more than one model type defined there will be.
686
-
687
- static VALUE
688
- rlink_parseopts_get_cost_model_type( VALUE self ) {
689
- Parse_Options opts = get_parseopts( self );
690
- int rval;
691
-
692
- rval = parse_options_get_cost_model_type( opts );
693
- return INT2FIX( rval );
694
- }
695
- */
696
-
697
-
698
- /*
699
- * call-seq:
700
- * opts.batch_mode= boolean
701
- *
702
- * Enable or disable "batch mode."
703
- *
704
- * :TODO: Figure out what batch mode is.
705
- */
706
- static VALUE
707
- rlink_parseopts_set_batch_mode( VALUE self, VALUE val ) {
708
- Parse_Options opts = get_parseopts( self );
709
- parse_options_set_batch_mode( opts, RTEST(val) );
710
- return val;
711
- }
712
-
713
-
714
- /*
715
- * call-seq:
716
- * opts.batch_mode? -> true or false
717
- *
718
- * Returns +true+ if batch mode is enabled.
719
- */
720
- static VALUE
721
- rlink_parseopts_get_batch_mode_p( VALUE self ) {
722
- Parse_Options opts = get_parseopts( self );
723
- int rval;
724
-
725
- rval = parse_options_get_batch_mode( opts );
726
- return rval ? Qtrue : Qfalse;
727
- }
728
-
729
- /*
730
- * call-seq:
731
- * opts.panic_mode= boolean
732
- *
733
- * Enable or disable "panic mode."
734
- *
735
- * :TODO: Figure out what enabling this option does. I only know about panic
736
- * mode in the parser -- does this allow/disallow the parser from entering it?
737
- */
738
- static VALUE
739
- rlink_parseopts_set_panic_mode( VALUE self, VALUE val ) {
740
- Parse_Options opts = get_parseopts( self );
741
- parse_options_set_panic_mode( opts, RTEST(val) );
742
- return val;
743
- }
744
-
745
-
746
- /*
747
- * call-seq:
748
- * opts.panic_mode? -> true or false
749
- *
750
- * Returns +true+ if panic mode is enabled.
751
- */
752
- static VALUE
753
- rlink_parseopts_get_panic_mode_p( VALUE self ) {
754
- Parse_Options opts = get_parseopts( self );
755
- int rval;
756
-
757
- rval = parse_options_get_panic_mode( opts );
758
- return rval ? Qtrue : Qfalse;
759
- }
760
-
761
-
762
- /*
763
- * call-seq:
764
- * opts.display_on= boolean
765
- *
766
- * Enable/disable display.
767
- *
768
- * :TODO: Figure out what this setting does.
769
- *
770
- */
771
- static VALUE
772
- rlink_parseopts_set_display_on( VALUE self, VALUE val ) {
773
- Parse_Options opts = get_parseopts( self );
774
- parse_options_set_display_on( opts, RTEST(val) );
775
- return val;
776
- }
777
-
778
-
779
- /*
780
- * call-seq:
781
- * opts.display_on? -> true or false
782
- *
783
- * Returns +true+ if ...?
784
- */
785
- static VALUE
786
- rlink_parseopts_get_display_on_p( VALUE self ) {
787
- Parse_Options opts = get_parseopts( self );
788
- int rval;
789
-
790
- rval = parse_options_get_display_on( opts );
791
- return rval ? Qtrue : Qfalse;
792
- }
793
-
794
-
795
- /*
796
- * call-seq:
797
- * opts.display_postscript= boolean
798
- *
799
- * Enable/disable display using Postscript.
800
- */
801
- static VALUE
802
- rlink_parseopts_set_display_postscript( VALUE self, VALUE val ) {
803
- Parse_Options opts = get_parseopts( self );
804
- parse_options_set_display_postscript( opts, RTEST(val) );
805
- return val;
806
- }
807
-
808
-
809
- /*
810
- * call-seq:
811
- * opts.display_postscript? -> true or false
812
- *
813
- * Returns +true+ if display should use Postscript instead of plain text.
814
- */
815
- static VALUE
816
- rlink_parseopts_get_display_postscript_p( VALUE self ) {
817
- Parse_Options opts = get_parseopts( self );
818
- int rval;
819
-
820
- rval = parse_options_get_display_postscript( opts );
821
- return rval ? Qtrue : Qfalse;
822
- }
823
-
824
-
825
- /*
826
- * call-seq:
827
- * opts.display_constituents= boolean
828
- *
829
- * Set the display_constituents option to the specified value.
830
- */
831
- static VALUE
832
- rlink_parseopts_set_display_constituents( VALUE self, VALUE val ) {
833
- Parse_Options opts = get_parseopts( self );
834
- parse_options_set_display_constituents( opts, RTEST(val) );
835
- return val;
836
- }
837
-
838
-
839
- /*
840
- * call-seq:
841
- * opts.display_constituents? -> true or false
842
- *
843
- * Get the value of the display_constituents option.
844
- */
845
- static VALUE
846
- rlink_parseopts_get_display_constituents_p( VALUE self ) {
847
- Parse_Options opts = get_parseopts( self );
848
- int rval;
849
-
850
- rval = parse_options_get_display_constituents( opts );
851
- return rval ? Qtrue : Qfalse;
852
- }
853
-
854
-
855
- /*
856
- * call-seq:
857
- * opts.display_bad= boolean
858
- *
859
- * Set the display_bad option to the specified value.
860
- */
861
- static VALUE
862
- rlink_parseopts_set_display_bad( VALUE self, VALUE val ) {
863
- Parse_Options opts = get_parseopts( self );
864
- parse_options_set_display_bad( opts, RTEST(val) );
865
- return val;
866
- }
867
-
868
-
869
- /*
870
- * call-seq:
871
- * opts.display_bad? -> true or false
872
- *
873
- * Get the value of the display_bad option.
874
- */
875
- static VALUE
876
- rlink_parseopts_get_display_bad_p( VALUE self ) {
877
- Parse_Options opts = get_parseopts( self );
878
- int rval;
879
-
880
- rval = parse_options_get_display_bad( opts );
881
- return rval ? Qtrue : Qfalse;
882
- }
883
-
884
-
885
- /*
886
- * call-seq:
887
- * opts.display_links= boolean
888
- *
889
- * Set the display_links option to the specified value.
890
- */
891
- static VALUE
892
- rlink_parseopts_set_display_links( VALUE self, VALUE val ) {
893
- Parse_Options opts = get_parseopts( self );
894
- parse_options_set_display_links( opts, RTEST(val) );
895
- return val;
896
- }
897
-
898
-
899
- /*
900
- * call-seq:
901
- * opts.display_links? -> true or false
902
- *
903
- * Get the value of the display_links option.
904
- */
905
- static VALUE
906
- rlink_parseopts_get_display_links_p( VALUE self ) {
907
- Parse_Options opts = get_parseopts( self );
908
- int rval;
909
-
910
- rval = parse_options_get_display_links( opts );
911
- return rval ? Qtrue : Qfalse;
912
- }
913
-
914
-
915
- /*
916
- * call-seq:
917
- * opts.display_union= boolean
918
- *
919
- * Set the display_union option to the specified value.
920
- */
921
- static VALUE
922
- rlink_parseopts_set_display_union( VALUE self, VALUE val ) {
923
- Parse_Options opts = get_parseopts( self );
924
- parse_options_set_display_union( opts, RTEST(val) );
925
- return val;
926
- }
927
-
928
-
929
- /*
930
- * call-seq:
931
- * opts.display_union? -> true or false
932
- *
933
- * Get the value of the display_union option.
934
- */
935
- static VALUE
936
- rlink_parseopts_get_display_union_p( VALUE self ) {
937
- Parse_Options opts = get_parseopts( self );
938
- int rval;
939
-
940
- rval = parse_options_get_display_union( opts );
941
- return rval ? Qtrue : Qfalse;
942
- }
943
-
944
-
945
- /*
946
- * call-seq:
947
- * opts.echo_on= boolean
948
- *
949
- * Set the echo_on option to the specified value.
950
- */
951
- static VALUE
952
- rlink_parseopts_set_echo_on( VALUE self, VALUE val ) {
953
- Parse_Options opts = get_parseopts( self );
954
- parse_options_set_echo_on( opts, RTEST(val) );
955
- return val;
956
- }
957
-
958
-
959
- /*
960
- * call-seq:
961
- * opts.echo_on? -> true or false
962
- *
963
- * Get the value of the echo_on option.
964
- */
965
- static VALUE
966
- rlink_parseopts_get_echo_on_p( VALUE self ) {
967
- Parse_Options opts = get_parseopts( self );
968
- int rval;
969
-
970
- rval = parse_options_get_echo_on( opts );
971
- return rval ? Qtrue : Qfalse;
972
- }
973
-
974
-
975
-
976
-
977
- /*
978
- * call-seq:
979
- * opts.spell_guessing_enabled= boolean
980
- *
981
- * Enable/disable spell-guessing if it's supported.
982
- */
983
- static VALUE
984
- rlink_parseopts_set_spell_guess( VALUE self, VALUE val ) {
985
- #ifdef HAVE_PARSE_OPTIONS_GET_SPELL_GUESS
986
- Parse_Options opts = get_parseopts( self );
987
- parse_options_set_spell_guess( opts, RTEST(val) );
988
- return val;
989
- #else
990
- rb_notimplement();
991
- return Qnil;
992
- #endif /* HAVE_PARSE_OPTIONS_GET_SPELL_GUESS */
993
- }
994
-
995
-
996
- /*
997
- * call-seq:
998
- * opts.spell_guessing_enabled? -> true or false
999
- *
1000
- * Returns +true+ if spell-guessing is enabled. Note that a +true+ return value doesn't
1001
- * mean that it's supported, only that it will be used if it is.
1002
- */
1003
- static VALUE
1004
- rlink_parseopts_get_spell_guess_p( VALUE self ) {
1005
- #ifdef HAVE_PARSE_OPTIONS_GET_SPELL_GUESS
1006
- Parse_Options opts = get_parseopts( self );
1007
- int rval;
1008
-
1009
- rval = parse_options_get_spell_guess( opts );
1010
- return rval ? Qtrue : Qfalse;
1011
- #else
1012
- rb_notimplement();
1013
- return Qnil;
1014
- #endif /* HAVE_PARSE_OPTIONS_GET_SPELL_GUESS */
1015
- }
1016
-
1017
-
1018
- /*
1019
- * call-seq:
1020
- * opts.timer_expired? -> +true+ or +false+
1021
- *
1022
- * Returns true if timer constraints were exceeded during parsing.
1023
- *
1024
- * sentence.parse
1025
- * if sentence.options.timer_expired?
1026
- * $stderr.puts "Parsing sentence #{sentence} timed out."
1027
- * end
1028
- */
1029
- static VALUE
1030
- rlink_parseopts_timer_expired_p( VALUE self ) {
1031
- Parse_Options opts = get_parseopts( self );
1032
- int rval;
1033
-
1034
- rval = parse_options_timer_expired( opts );
1035
- return rval ? Qtrue : Qfalse;
1036
- }
1037
-
1038
-
1039
- /*
1040
- * call-seq:
1041
- * opts.memory_exhausted? -> +true+ or +false+
1042
- *
1043
- * Returns true if memory constraints were exceeded during parsing.
1044
- *
1045
- * sentence.parse
1046
- * if sentence.options.memory_exhausted?
1047
- * $stderr.puts "Parsing sentence #{sentence} ran out of memory."
1048
- * end
1049
- */
1050
- static VALUE
1051
- rlink_parseopts_memory_exhausted_p( VALUE self ) {
1052
- Parse_Options opts = get_parseopts( self );
1053
- int rval;
1054
-
1055
- rval = parse_options_memory_exhausted( opts );
1056
- return rval ? Qtrue : Qfalse;
1057
- }
1058
-
1059
-
1060
- /*
1061
- * call-seq:
1062
- * opts.resources_exhausted? -> +true+ or +false+
1063
- *
1064
- * Returns true if the memory or timer constraints were exceeded during parsing.
1065
- *
1066
- * sentence.parse
1067
- * if sentence.options.resources_exhausted?
1068
- * $stderr.puts "Parsing sentence #{sentence} ran out of resources."
1069
- * end
1070
- */
1071
- static VALUE
1072
- rlink_parseopts_resources_exhausted_p( VALUE self ) {
1073
- Parse_Options opts = get_parseopts( self );
1074
- int rval;
1075
-
1076
- rval = parse_options_resources_exhausted( opts );
1077
- return rval ? Qtrue : Qfalse;
1078
- }
1079
-
1080
-
1081
- /*
1082
- * call-seq:
1083
- * opts.reset_resources
1084
- *
1085
- * Reset the timer- and memory-constraint flags.
1086
- *
1087
- */
1088
- static VALUE
1089
- rlink_parseopts_reset_resources( VALUE self ) {
1090
- Parse_Options opts = get_parseopts( self );
1091
-
1092
- parse_options_reset_resources( opts );
1093
- return Qnil;
1094
- }
1095
-
1096
-
1097
-
1098
- /*
1099
- * LinkParser parse options class. Instances of this class are used to specify the different
1100
- * parameters that are used to parse sentences. Examples of the kinds of things that are
1101
- * controlled by ParseOptions include maximum parsing time and memory, whether to use
1102
- * null-links, and whether or not to use "panic" mode. This data structure is passed in to
1103
- * the various parsing and printing routines along with the sentence.
1104
- *
1105
- */
1106
- void
1107
- rlink_init_parseoptions() {
1108
- rlink_cParseOptions = rb_define_class_under( rlink_mLinkParser,
1109
- "ParseOptions", rb_cObject );
1110
-
1111
- rb_define_alloc_func( rlink_cParseOptions, rlink_parseopts_s_alloc );
1112
- rb_define_method( rlink_cParseOptions, "initialize", rlink_parseopts_init, -1 );
1113
- /*
1114
- rb_define_method( rlink_cParseOptions, "merge", rlink_parseopts_merge, 1 );
1115
- rb_define_method( rlink_cParseOptions, "merge!", rlink_parseopts_merge_bang, 1 );
1116
- */
1117
- rb_define_method( rlink_cParseOptions, "verbosity=",
1118
- rlink_parseopts_set_verbosity, 1 );
1119
- rb_define_method( rlink_cParseOptions, "verbosity",
1120
- rlink_parseopts_get_verbosity, 0 );
1121
- rb_define_method( rlink_cParseOptions, "linkage_limit=",
1122
- rlink_parseopts_set_linkage_limit, 1 );
1123
- rb_define_method( rlink_cParseOptions, "linkage_limit",
1124
- rlink_parseopts_get_linkage_limit, 0 );
1125
- rb_define_method( rlink_cParseOptions, "disjunct_cost=",
1126
- rlink_parseopts_set_disjunct_cost, 1 );
1127
- rb_define_method( rlink_cParseOptions, "disjunct_cost",
1128
- rlink_parseopts_get_disjunct_cost, 0 );
1129
- rb_define_method( rlink_cParseOptions, "min_null_count=",
1130
- rlink_parseopts_set_min_null_count, 1 );
1131
- rb_define_method( rlink_cParseOptions, "min_null_count",
1132
- rlink_parseopts_get_min_null_count, 0 );
1133
- rb_define_method( rlink_cParseOptions, "max_null_count=",
1134
- rlink_parseopts_set_max_null_count, 1 );
1135
- rb_define_method( rlink_cParseOptions, "max_null_count",
1136
- rlink_parseopts_get_max_null_count, 0 );
1137
- rb_define_method( rlink_cParseOptions, "null_block=",
1138
- rlink_parseopts_set_null_block, 1 );
1139
- rb_define_method( rlink_cParseOptions, "null_block",
1140
- rlink_parseopts_get_null_block, 0 );
1141
- rb_define_method( rlink_cParseOptions, "islands_ok=",
1142
- rlink_parseopts_set_islands_ok, 1 );
1143
- rb_define_method( rlink_cParseOptions, "islands_ok?",
1144
- rlink_parseopts_get_islands_ok_p, 0 );
1145
- rb_define_method( rlink_cParseOptions, "short_length=",
1146
- rlink_parseopts_set_short_length, 1 );
1147
- rb_define_method( rlink_cParseOptions, "short_length",
1148
- rlink_parseopts_get_short_length, 0 );
1149
- rb_define_method( rlink_cParseOptions, "max_memory=",
1150
- rlink_parseopts_set_max_memory, 1 );
1151
- rb_define_method( rlink_cParseOptions, "max_memory",
1152
- rlink_parseopts_get_max_memory, 0 );
1153
- rb_define_method( rlink_cParseOptions, "max_sentence_length=",
1154
- rlink_parseopts_set_max_sentence_length, 1 );
1155
- rb_define_method( rlink_cParseOptions, "max_sentence_length",
1156
- rlink_parseopts_get_max_sentence_length, 0 );
1157
- rb_define_method( rlink_cParseOptions, "max_parse_time=",
1158
- rlink_parseopts_set_max_parse_time, 1 );
1159
- rb_define_method( rlink_cParseOptions, "max_parse_time",
1160
- rlink_parseopts_get_max_parse_time, 0 );
1161
- rb_define_method( rlink_cParseOptions, "screen_width=",
1162
- rlink_parseopts_set_screen_width, 1 );
1163
- rb_define_method( rlink_cParseOptions, "screen_width",
1164
- rlink_parseopts_get_screen_width, 0 );
1165
- rb_define_method( rlink_cParseOptions, "allow_null=",
1166
- rlink_parseopts_set_allow_null, 1 );
1167
- rb_define_method( rlink_cParseOptions, "allow_null?",
1168
- rlink_parseopts_get_allow_null_p, 0 );
1169
- rb_define_method( rlink_cParseOptions, "display_walls=",
1170
- rlink_parseopts_set_display_walls, 1 );
1171
- rb_define_method( rlink_cParseOptions, "display_walls?",
1172
- rlink_parseopts_get_display_walls_p, 0 );
1173
- rb_define_method( rlink_cParseOptions, "all_short_connectors=",
1174
- rlink_parseopts_set_all_short_connectors, 1 );
1175
- rb_define_method( rlink_cParseOptions, "all_short_connectors?",
1176
- rlink_parseopts_get_all_short_connectors_p, 0 );
1177
- rb_define_method( rlink_cParseOptions, "cost_model_type=",
1178
- rlink_parseopts_set_cost_model_type, 1 );
1179
-
1180
- /* (No way to get the cost_model_type from the API)
1181
-
1182
- rb_define_method( rlink_cParseOptions, "cost_model_type",
1183
- rlink_parseopts_get_cost_model_type, 0 );
1184
- */
1185
- rb_define_method( rlink_cParseOptions, "batch_mode=",
1186
- rlink_parseopts_set_batch_mode, 1 );
1187
- rb_define_method( rlink_cParseOptions, "batch_mode?",
1188
- rlink_parseopts_get_batch_mode_p, 0 );
1189
- rb_define_method( rlink_cParseOptions, "panic_mode=",
1190
- rlink_parseopts_set_panic_mode, 1 );
1191
- rb_define_method( rlink_cParseOptions, "panic_mode?",
1192
- rlink_parseopts_get_panic_mode_p, 0 );
1193
- rb_define_method( rlink_cParseOptions, "display_on=",
1194
- rlink_parseopts_set_display_on, 1 );
1195
- rb_define_method( rlink_cParseOptions, "display_on?",
1196
- rlink_parseopts_get_display_on_p, 0 );
1197
- rb_define_method( rlink_cParseOptions, "display_postscript=",
1198
- rlink_parseopts_set_display_postscript, 1 );
1199
- rb_define_method( rlink_cParseOptions, "display_postscript?",
1200
- rlink_parseopts_get_display_postscript_p, 0 );
1201
- rb_define_method( rlink_cParseOptions, "display_constituents=",
1202
- rlink_parseopts_set_display_constituents, 1 );
1203
- rb_define_method( rlink_cParseOptions, "display_constituents?",
1204
- rlink_parseopts_get_display_constituents_p, 0 );
1205
- rb_define_method( rlink_cParseOptions, "display_bad=",
1206
- rlink_parseopts_set_display_bad, 1 );
1207
- rb_define_method( rlink_cParseOptions, "display_bad?",
1208
- rlink_parseopts_get_display_bad_p, 0 );
1209
- rb_define_method( rlink_cParseOptions, "display_links=",
1210
- rlink_parseopts_set_display_links, 1 );
1211
- rb_define_method( rlink_cParseOptions, "display_links?",
1212
- rlink_parseopts_get_display_links_p, 0 );
1213
- rb_define_method( rlink_cParseOptions, "display_union=",
1214
- rlink_parseopts_set_display_union, 1 );
1215
- rb_define_method( rlink_cParseOptions, "display_union?",
1216
- rlink_parseopts_get_display_union_p, 0 );
1217
- rb_define_method( rlink_cParseOptions, "echo_on=",
1218
- rlink_parseopts_set_echo_on, 1 );
1219
- rb_define_method( rlink_cParseOptions, "echo_on?",
1220
- rlink_parseopts_get_echo_on_p, 0 );
1221
- rb_define_method( rlink_cParseOptions, "spell_guessing_enabled=",
1222
- rlink_parseopts_set_spell_guess, 1 );
1223
- rb_define_method( rlink_cParseOptions, "spell_guessing_enabled?",
1224
- rlink_parseopts_get_spell_guess_p, 0 );
1225
-
1226
- rb_define_method( rlink_cParseOptions, "timer_expired?",
1227
- rlink_parseopts_timer_expired_p, 0 );
1228
- rb_define_method( rlink_cParseOptions, "memory_exhausted?",
1229
- rlink_parseopts_memory_exhausted_p, 0 );
1230
- rb_define_method( rlink_cParseOptions, "resources_exhausted?",
1231
- rlink_parseopts_resources_exhausted_p, 0 );
1232
- rb_define_method( rlink_cParseOptions, "reset_resources",
1233
- rlink_parseopts_reset_resources, 0 );
1234
-
1235
- }
1236
-