~ubuntu-branches/ubuntu/karmic/fweb/karmic

« back to all changes in this revision

Viewing changes to Web/fweave.c

  • Committer: Bazaar Package Importer
  • Author(s): Yann Dirson
  • Date: 2002-01-04 23:20:22 UTC
  • Revision ID: james.westby@ubuntu.com-20020104232022-212l76iszpoja15x
Tags: 1.62-9
* The "Fifth anniversary (nearly)" release !
* Spelling in description (Closes: #12465).
* Spelling in copyright (lintian).
* Workaround in texi doc so that "makeinfo --html" can work - texi2html
  still does not (still many warnings).  Brought doc-base file from the
  attic.
* DEB_BUILD_OPTIONS support.
* Bounced Standards-Version to 3.5.6.
* Modernized debian/rules, debhelper v3.
* Split doc in its own package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#if(0)
2
 
  FTANGLE v1.60,\
3
 
 created with UNIX on "Thursday, September 24, 1998 at 16:12." \
4
 
  COMMAND LINE: "Web/ftangle Web/fweave -A -# --F -= 1.62/Web/fweave.c"\
5
 
  RUN TIME:     "Friday, September 25, 1998 at 8:02."\
6
 
  WEB FILE:     "Web/fweave.web"\
 
2
  FTANGLE v1.61,\
 
3
 created with UNIX on "Friday, September 25, 1998 at 8:02." \
 
4
  COMMAND LINE: "./ftangle ./fweave -uCONFIG -mCONFIG -mGCC -= fweave.c"\
 
5
  RUN TIME:     "Monday, December 13, 1999 at 23:13."\
 
6
  WEB FILE:     "./fweave.web"\
7
7
  CHANGE FILE:  (none)
8
8
#endif
9
9
#define _FWEAVE_h  
150
150
#define kill_newlines  114 \
151
151
 
152
152
#define ignore  0
153
 
#define verbatim  (eight_bits)02
154
 
#define force_line  (eight_bits)03 \
155
 
 
156
 
#define begin_comment0  (eight_bits)0376
157
 
#define begin_comment1  (eight_bits)0375
158
 
#define begin_comment  (eight_bits)011 \
159
 
 
160
 
#define compound_assignment  (eight_bits)017 \
161
 
 \
162
 
 
163
 
#define L_switch  (eight_bits)0200
164
 
#define begin_C  (eight_bits)0201
165
 
#define begin_RATFOR  (eight_bits)0202
166
 
#define begin_FORTRAN  (eight_bits)0203
167
 
#define begin_LITERAL  (eight_bits)0204
168
 
#define begin_TEX  (eight_bits)0205 \
169
 
 
170
 
#define begin_nuweb  (eight_bits)0206 \
171
 
 \
172
 
 \
173
 
 
174
 
#define dont_expand  (eight_bits)0210
175
 
#define auto_label  (eight_bits)0211
176
 
#define all_variable_args  (eight_bits)0212
177
 
#define macro_module_name  (eight_bits)0213
178
 
#define eq_gt  (eight_bits)0214
179
 
#define colon_colon  (eight_bits)0215 \
180
 
 \
181
 
 \
182
 
 \
183
 
 \
184
 
 \
185
 
 
186
 
#define switch_math_flag  (eight_bits)0175
187
 
#define underline  (eight_bits)0176 \
188
 
 
189
 
#define next_expr  (eight_bits)0226
190
 
#define next_reserved  (eight_bits)0227 \
191
 
 
192
 
#define xref_roman  (eight_bits)0233
193
 
#define xref_wildcard  (eight_bits)0234
194
 
#define xref_typewriter  (eight_bits)0235
195
 
#define TeX_string  (eight_bits)0236
196
 
#define ascii_constant  (eight_bits)0237
197
 
#define join  (eight_bits)0240
198
 
#define thin_space  (eight_bits)0241
199
 
#define math_break  (eight_bits)0242
200
 
#define line_break  (eight_bits)0243
201
 
#define ln_break_outdent  (eight_bits)0244 \
202
 
 
203
 
#define big_line_break  (eight_bits)0245
204
 
#define no_line_break  (eight_bits)0246
205
 
#define pseudo_semi  (eight_bits)0247
206
 
#define defd_at  (eight_bits)0250 \
207
 
 
208
 
#define begin_meta  (eight_bits)0251
209
 
#define end_meta  (eight_bits)0252 \
210
 
 
211
 
#define macro_space  (eight_bits)0253
212
 
#define copy_mode  (eight_bits)0254 \
213
 
 
214
 
#define toggle_output  (eight_bits)0255
215
 
#define turn_output_on  (eight_bits)0255
216
 
#define turn_output_off  (eight_bits)0256
217
 
#define Turn_output_on  (eight_bits)0257
218
 
#define Turn_output_off  (eight_bits)0260 \
219
 
 
220
 
#define left_preproc  (eight_bits)0261
221
 
#define right_preproc  (eight_bits)0262 \
222
 
 
223
 
#define Cont_Char  (eight_bits)0263 \
224
 
 
225
 
#define Compiler_Directive  (eight_bits)0264
226
 
#define new_output_file  (eight_bits)0265 \
227
 
 
228
 
#define implicit_reserved  (eight_bits)0266 \
229
 
 
230
 
#define trace  (eight_bits)0267 \
231
 
 \
232
 
 \
233
 
 
234
 
#define invisible_cmnt  (eight_bits)0272 \
235
 
 
236
 
#define pseudo_expr  (eight_bits)0273
237
 
#define pseudo_colon  (eight_bits)0274 \
238
 
 
239
 
#define begin_bp  (eight_bits)0275
240
 
#define insert_bp  (eight_bits)0276 \
241
 
 
242
 
#define no_index  (eight_bits)0277
243
 
#define yes_index  (eight_bits)0300 \
244
 
 
245
 
#define no_mac_expand  (eight_bits)0301
246
 
#define protect_code  (eight_bits)0302
247
 
#define set_line_info  (eight_bits)0303 \
248
 
 
249
 
#define short_fcn  (eight_bits)0304
250
 
#define keyword_name  (eight_bits)0305 \
251
 
 \
252
 
 
253
 
#define formatt  (eight_bits)0310 \
254
 
 
255
 
#define limbo_text  (eight_bits)0313
256
 
#define op_def  (eight_bits)0314
257
 
#define macro_def  (eight_bits)0315 \
258
 
 
259
 
#define definition  (eight_bits)0320
260
 
#define undefinition  (eight_bits)0321
261
 
#define WEB_definition  (eight_bits)0322 \
262
 
 \
263
 
 
264
 
#define m_ifdef  (eight_bits)0330
265
 
#define m_ifndef  (eight_bits)0331
266
 
#define m_if  (eight_bits)0332
267
 
#define m_else  (eight_bits)0333
268
 
#define m_elif  (eight_bits)0334
269
 
#define m_endif  (eight_bits)0335
270
 
#define m_for  (eight_bits)0336
271
 
#define m_endfor  (eight_bits)0337
272
 
#define m_line  (eight_bits)0340
273
 
#define m_undef  (eight_bits)0341 \
274
 
 \
275
 
 
276
 
#define begin_code  (eight_bits)0350
277
 
#define module_name  (eight_bits)0351 \
278
 
 \
279
 
 
280
 
#define new_module  (eight_bits)0352 \
281
 
 \
282
 
 \
283
 
 
284
 
#define constant  (eight_bits)0230
285
 
#define stringg  (eight_bits)0231
286
 
#define identifier  (eight_bits)0232 \
 
153
#define verbatim  (eight_bits)'\2'
 
154
#define force_line  (eight_bits)'\3' \
 
155
 
 
156
#define begin_comment0  (eight_bits)'\xFE'
 
157
#define begin_comment1  (eight_bits)'\xFD'
 
158
#define begin_comment  (eight_bits)'\11' \
 
159
 
 
160
#define compound_assignment  (eight_bits)'\17' \
 
161
 \
 
162
 
 
163
#define L_switch  (eight_bits)'\200'
 
164
#define begin_C  (eight_bits)'\201'
 
165
#define begin_RATFOR  (eight_bits)'\202'
 
166
#define begin_FORTRAN  (eight_bits)'\203'
 
167
#define begin_LITERAL  (eight_bits)'\204'
 
168
#define begin_TEX  (eight_bits)'\205' \
 
169
 
 
170
#define begin_nuweb  (eight_bits)'\206' \
 
171
 \
 
172
 \
 
173
 
 
174
#define dont_expand  (eight_bits)'\210'
 
175
#define auto_label  (eight_bits)'\211'
 
176
#define all_variable_args  (eight_bits)'\212'
 
177
#define macro_module_name  (eight_bits)'\213'
 
178
#define eq_gt  (eight_bits)'\214'
 
179
#define colon_colon  (eight_bits)'\215' \
 
180
 \
 
181
 \
 
182
 \
 
183
 \
 
184
 \
 
185
 
 
186
#define switch_math_flag  (eight_bits)'\175'
 
187
#define underline  (eight_bits)'\176' \
 
188
 
 
189
#define next_expr  (eight_bits)'\226'
 
190
#define next_reserved  (eight_bits)'\227' \
 
191
 
 
192
#define xref_roman  (eight_bits)'\233'
 
193
#define xref_wildcard  (eight_bits)'\234'
 
194
#define xref_typewriter  (eight_bits)'\235'
 
195
#define TeX_string  (eight_bits)'\236'
 
196
#define ascii_constant  (eight_bits)'\237'
 
197
#define join  (eight_bits)'\240'
 
198
#define thin_space  (eight_bits)'\241'
 
199
#define math_break  (eight_bits)'\242'
 
200
#define line_break  (eight_bits)'\243'
 
201
#define ln_break_outdent  (eight_bits)'\244' \
 
202
 
 
203
#define big_line_break  (eight_bits)'\245'
 
204
#define no_line_break  (eight_bits)'\246'
 
205
#define pseudo_semi  (eight_bits)'\247'
 
206
#define defd_at  (eight_bits)'\250' \
 
207
 
 
208
#define begin_meta  (eight_bits)'\251'
 
209
#define end_meta  (eight_bits)'\252' \
 
210
 
 
211
#define macro_space  (eight_bits)'\253'
 
212
#define copy_mode  (eight_bits)'\254' \
 
213
 
 
214
#define toggle_output  (eight_bits)'\255'
 
215
#define turn_output_on  (eight_bits)'\255'
 
216
#define turn_output_off  (eight_bits)'\256'
 
217
#define Turn_output_on  (eight_bits)'\257'
 
218
#define Turn_output_off  (eight_bits)'\260' \
 
219
 
 
220
#define left_preproc  (eight_bits)'\261'
 
221
#define right_preproc  (eight_bits)'\262' \
 
222
 
 
223
#define Cont_Char  (eight_bits)'\263' \
 
224
 
 
225
#define Compiler_Directive  (eight_bits)'\264'
 
226
#define new_output_file  (eight_bits)'\265' \
 
227
 
 
228
#define implicit_reserved  (eight_bits)'\266' \
 
229
 
 
230
#define trace  (eight_bits)'\267' \
 
231
 \
 
232
 \
 
233
 
 
234
#define invisible_cmnt  (eight_bits)'\272' \
 
235
 
 
236
#define pseudo_expr  (eight_bits)'\273'
 
237
#define pseudo_colon  (eight_bits)'\274' \
 
238
 
 
239
#define begin_bp  (eight_bits)'\275'
 
240
#define insert_bp  (eight_bits)'\276' \
 
241
 
 
242
#define no_index  (eight_bits)'\277'
 
243
#define yes_index  (eight_bits)'\300' \
 
244
 
 
245
#define no_mac_expand  (eight_bits)'\301'
 
246
#define protect_code  (eight_bits)'\302'
 
247
#define set_line_info  (eight_bits)'\303' \
 
248
 
 
249
#define short_fcn  (eight_bits)'\304'
 
250
#define keyword_name  (eight_bits)'\305' \
 
251
 \
 
252
 
 
253
#define formatt  (eight_bits)'\310' \
 
254
 
 
255
#define limbo_text  (eight_bits)'\313'
 
256
#define op_def  (eight_bits)'\314'
 
257
#define macro_def  (eight_bits)'\315' \
 
258
 
 
259
#define definition  (eight_bits)'\320'
 
260
#define undefinition  (eight_bits)'\321'
 
261
#define WEB_definition  (eight_bits)'\322' \
 
262
 \
 
263
 
 
264
#define m_ifdef  (eight_bits)'\330'
 
265
#define m_ifndef  (eight_bits)'\331'
 
266
#define m_if  (eight_bits)'\332'
 
267
#define m_else  (eight_bits)'\333'
 
268
#define m_elif  (eight_bits)'\334'
 
269
#define m_endif  (eight_bits)'\335'
 
270
#define m_for  (eight_bits)'\336'
 
271
#define m_endfor  (eight_bits)'\337'
 
272
#define m_line  (eight_bits)'\340'
 
273
#define m_undef  (eight_bits)'\341' \
 
274
 \
 
275
 
 
276
#define begin_code  (eight_bits)'\350'
 
277
#define module_name  (eight_bits)'\351' \
 
278
 \
 
279
 
 
280
#define new_module  (eight_bits)'\352' \
 
281
 \
 
282
 \
 
283
 
 
284
#define constant  (eight_bits)'\230'
 
285
#define stringg  (eight_bits)'\231'
 
286
#define identifier  (eight_bits)'\232' \
287
287
 
288
288
#define ordinary_space  01 \
289
289
 \
293
293
#define COMPOUND(c,n)if(loc<=limit){loc+= n;assignment_token= c; \
294
294
return(eight_bits)compound_assignment;} \
295
295
 
296
 
#define CA_START  (eight_bits)0100 \
 
296
#define CA_START  (eight_bits)'\100' \
297
297
 \
298
298
 
299
299
#define plus_eq  0
308
308
#define lt_lt_eq  011
309
309
#define or_or_or  012 \
310
310
 
311
 
#define BINARY_CODE  046
312
 
#define OCTAL_CODE  0176
313
 
#define HEX_CODE  0140 \
314
 
 
315
 
#define CONSTANT_CODE  043
316
 
#define FLOAT_CODE  060
317
 
#define LONG_CODE  061
318
 
#define UNSIGNED_CODE  062
319
 
#define ULONG_CODE  063 \
320
 
 
321
 
#define EXP_CODE  0136
322
 
#define HOLLERITH_CODE  045 \
323
 
 
324
 
#define discretionary_break  (eight_bits)0177
 
311
#define BINARY_CODE  '&'
 
312
#define OCTAL_CODE  '~'
 
313
#define HEX_CODE  '`' \
 
314
 
 
315
#define CONSTANT_CODE  '#'
 
316
#define FLOAT_CODE  '0'
 
317
#define LONG_CODE  '1'
 
318
#define UNSIGNED_CODE  '2'
 
319
#define ULONG_CODE  '3' \
 
320
 
 
321
#define EXP_CODE  '^'
 
322
#define HOLLERITH_CODE  '%' \
 
323
 
 
324
#define discretionary_break  (eight_bits)'\177'
325
325
#define NBREAK  25 \
326
326
 
327
327
#define change_params  prms[incl_depth].input_params \
331
331
#define KILL_XREFS(name)no_xref|= !defn_mask.name
332
332
#define INDEX_SHORT  index_short= index_flag= YES \
333
333
 
334
 
#define QUICK_FORMAT  056 \
 
334
#define QUICK_FORMAT  '.' \
335
335
 
336
336
#define IS_ON(flag,bits)((flag)&(bits)) \
337
337
 
412
412
#define ALL_LANGUAGES  (ONLY_C_like|ONLY_N_like|(int)LITERAL) \
413
413
 \
414
414
 
415
 
#define math_bin  (eight_bits)0345
416
 
#define math_rel  (eight_bits)0346 \
417
 
 
418
 
#define toggle_meta  (eight_bits)0347 \
419
 
 \
420
 
 
421
 
#define big_cancel  (eight_bits)0360
422
 
#define cancel  (eight_bits)0361 \
423
 
 \
424
 
 
425
 
#define indent  (eight_bits)0362
426
 
#define outdent  (eight_bits)0363
427
 
#define opt  (eight_bits)0364
428
 
#define backup  (eight_bits)0365
429
 
#define break_space  (eight_bits)0366
430
 
#define force  (eight_bits)0367
431
 
#define big_force  (eight_bits)0370 \
432
 
 
433
 
#define out_force  (eight_bits)0371 \
434
 
 
435
 
#define end_translation  (eight_bits)0377
 
415
#define math_bin  (eight_bits)'\345'
 
416
#define math_rel  (eight_bits)'\346' \
 
417
 
 
418
#define toggle_meta  (eight_bits)'\347' \
 
419
 \
 
420
 
 
421
#define big_cancel  (eight_bits)'\360'
 
422
#define cancel  (eight_bits)'\361' \
 
423
 \
 
424
 
 
425
#define indent  (eight_bits)'\362'
 
426
#define outdent  (eight_bits)'\363'
 
427
#define opt  (eight_bits)'\364'
 
428
#define backup  (eight_bits)'\365'
 
429
#define break_space  (eight_bits)'\366'
 
430
#define force  (eight_bits)'\367'
 
431
#define big_force  (eight_bits)'\370' \
 
432
 
 
433
#define out_force  (eight_bits)'\371' \
 
434
 
 
435
#define end_translation  (eight_bits)'\377'
436
436
#define inner  0
437
437
#define outer  1 \
438
438
 
441
441
#define cur_mode  cur_state.mode_field
442
442
#define ini_stack  stck_ptr= stack;cur_mode= outer \
443
443
 
444
 
#define res_word  (eight_bits)0201
445
 
#define mod_name  (eight_bits)0200 \
 
444
#define res_word  (eight_bits)'\201'
 
445
#define mod_name  (eight_bits)'\200' \
446
446
 
447
447
#define ALL_UC  (all_uc&&length(cur_name)>1) \
448
448
 \
499
499
#define ENCAP  YES
500
500
#define NO_ENCAP  NO \
501
501
 
 
502
/* 1: */
 
503
#line 32 "./fweave.web"
502
504
 
 
505
/* 5: */
 
506
#line 16 "./typedefs.hweb"
503
507
 
504
508
 
505
509
#ifndef part
511
515
#endif 
512
516
 
513
517
 
 
518
/* :5 */
 
519
/* 6: */
 
520
#line 42 "./typedefs.hweb"
514
521
 
515
522
 
516
523
#if(part == 0 || part == 1)
524
531
#endif
525
532
 
526
533
 
527
 
 
528
 
 
 
534
/* :6 */
 
535
#line 33 "./fweave.web"
 
536
 
 
537
 
 
538
/* 34: */
 
539
#line 440 "./typedefs.hweb"
529
540
 
530
541
#include "typedefs.h"
531
542
 
532
543
 
533
544
 
 
545
#line 84 "./fweave.web"
534
546
 
 
547
/* :34 */
 
548
/* 357: */
 
549
#line 10244 "./fweave.web"
535
550
 
536
551
 
537
552
#include "map.h" 
538
553
 
 
554
/* :357 */
 
555
#line 35 "./fweave.web"
539
556
 
 
557
/* 42: */
 
558
#line 79 "./xrefs.hweb"
540
559
 
541
560
 
542
561
typedef struct xref_info0
552
571
 
553
572
 
554
573
 
 
574
/* :42 */
 
575
/* 49: */
 
576
#line 27 "./tokens.hweb"
555
577
 
556
578
 
557
579
typedef sixteen_bits Token;
558
580
typedef Token HUGE*token_pointer;
559
581
typedef token_pointer HUGE*text_pointer;
560
582
 
 
583
/* :49 */
 
584
/* 191: */
 
585
#line 44 "./scraps.hweb"
561
586
 
562
587
 
563
588
typedef struct
569
594
union
570
595
{
571
596
text_pointer Trans;
 
597
/* 332: */
 
598
#line 9552 "./fweave.web"
572
599
 
573
600
 
574
601
name_pointer Head;
575
602
 
 
603
/* :332 */
 
604
#line 55 "./scraps.hweb"
576
605
 
577
606
}trans_plus;
578
607
}scrap;
579
608
 
580
609
typedef scrap HUGE*scrap_pointer;
581
610
 
 
611
/* :191 */
 
612
/* 239: */
 
613
#line 6944 "./fweave.web"
582
614
 
583
615
 
584
616
typedef int mode;
591
623
 
592
624
typedef output_state HUGE*stack_pointer;
593
625
 
 
626
/* :239 */
 
627
#line 36 "./fweave.web"
594
628
 
 
629
/* 39: */
 
630
#line 168 "./fweave.web"
595
631
 
596
632
 
597
633
#include "w_type.h" 
598
634
 
599
 
 
600
 
 
 
635
#line 8 "./xrefs.hweb"
 
636
 
 
637
/* :39 */
 
638
#line 37 "./fweave.web"
 
639
 
 
640
/* 33: */
 
641
#line 426 "./typedefs.hweb"
601
642
 
602
643
 
603
644
 
611
652
 
612
653
 
613
654
 
 
655
/* :33 */
 
656
/* 41: */
 
657
#line 47 "./xrefs.hweb"
614
658
 
615
659
 
616
660
EXTERN boolean change_exists;
617
661
 
 
662
/* :41 */
 
663
/* 43: */
 
664
#line 111 "./xrefs.hweb"
618
665
 
619
666
 
620
667
#ifndef COMMON_FCNS_
632
679
EXTERN NAME_TYPE defd_type SET(NEVER_DEFINED);
633
680
EXTERN boolean typd_switch;
634
681
EXTERN boolean index_short;
 
682
#line 173 "./fweave.web"
635
683
 
 
684
/* :43 */
 
685
/* 50: */
 
686
#line 37 "./tokens.hweb"
636
687
 
637
688
 
638
689
EXTERN long max_toks;
650
701
 
651
702
EXTERN token_pointer mx_tok_ptr;
652
703
EXTERN text_pointer mx_text_ptr;
 
704
#line 386 "./fweave.web"
653
705
 
 
706
/* :50 */
 
707
/* 58: */
 
708
#line 685 "./fweave.web"
654
709
 
655
710
 
656
711
IN_STYLE eight_bits ccode[128];
657
712
 
658
713
 
 
714
/* :58 */
 
715
/* 66: */
 
716
#line 954 "./fweave.web"
659
717
 
660
718
 
661
719
EXTERN name_pointer cur_module;
671
729
 
672
730
EXTERN ASCII c;
673
731
 
 
732
/* :66 */
 
733
/* 84: */
 
734
#line 1587 "./fweave.web"
674
735
 
675
736
 
676
737
EXTERN eight_bits assignment_token;
677
738
 
678
739
 
 
740
/* :84 */
 
741
/* 95: */
 
742
#line 2063 "./fweave.web"
679
743
 
680
744
 
681
745
EXTERN boolean insert_breaks SET(YES);
682
746
 
683
747
 
 
748
/* :95 */
 
749
/* 105: */
 
750
#line 2291 "./fweave.web"
684
751
 
685
752
 
686
753
EXTERN boolean doing_cdir SET(NO);
687
754
 
 
755
/* :105 */
 
756
/* 113: */
 
757
#line 2621 "./fweave.web"
688
758
 
689
759
 
690
760
EXTERN eight_bits next_control;
691
761
 
 
762
/* :113 */
 
763
/* 119: */
 
764
#line 2838 "./fweave.web"
692
765
 
693
766
 
694
767
IN_COMMON outer_char wbprefix[MAX_FILE_NAME_LENGTH];
703
776
EXTERN outer_char temp_in[L_tmpnam],temp_out[L_tmpnam];
704
777
 
705
778
 
 
779
/* :119 */
 
780
/* 136: */
 
781
#line 3558 "./fweave.web"
706
782
 
707
783
 
708
784
EXTERN name_pointer lhs,rhs;
709
785
 
710
786
 
 
787
/* :136 */
 
788
/* 147: */
 
789
#line 4062 "./fweave.web"
711
790
 
712
791
 
713
792
EXTERN boolean unnamed_section SET(NO);
714
793
 
 
794
/* :147 */
 
795
/* 149: */
 
796
#line 4140 "./fweave.web"
715
797
 
716
798
 
717
799
EXTERN xref_pointer cur_xref;
718
800
IN_COMMON boolean mod_warning_flag;
719
801
 
 
802
/* :149 */
 
803
/* 153: */
 
804
#line 4275 "./fweave.web"
720
805
 
721
806
 
722
807
EXTERN BUF_SIZE line_length;
726
811
EXTERN ASCII HUGE*out_ptr;
727
812
EXTERN LINE_NUMBER out_line;
728
813
 
 
814
/* :153 */
 
815
/* 158: */
 
816
#line 4408 "./fweave.web"
729
817
 
730
818
 
731
819
EXTERN boolean output_on SET(YES);
732
820
 
 
821
/* :158 */
 
822
/* 175: */
 
823
#line 4966 "./fweave.web"
733
824
 
734
825
 
735
826
EXTERN boolean strt_off SET(NO),ending_off SET(NO);
736
827
 
 
828
/* :175 */
 
829
/* 183: */
 
830
#line 5108 "./fweave.web"
737
831
 
738
832
 
739
833
EXTERN boolean in_comment;
740
834
 
 
835
/* :183 */
 
836
/* 192: */
 
837
#line 67 "./scraps.hweb"
741
838
 
742
839
 
743
840
EXTERN long max_scraps;
752
849
 
753
850
EXTERN scrap_pointer mx_scr_ptr;
754
851
 
 
852
/* :192 */
 
853
/* 198: */
 
854
#line 5383 "./fweave.web"
755
855
 
756
856
 
757
857
EXTERN boolean scanning_meta SET(NO);
758
858
 
 
859
/* :198 */
 
860
/* 202: */
 
861
#line 5515 "./fweave.web"
759
862
 
760
863
 
761
864
EXTERN boolean overloaded[NUM_LANGUAGES];
765
868
 
766
869
EXTERN OPERATOR HUGE*op_ptr;
767
870
 
 
871
/* :202 */
 
872
/* 207: */
 
873
#line 5740 "./fweave.web"
768
874
 
769
875
 
770
876
EXTERN eight_bits last_control;
771
877
 
 
878
/* :207 */
 
879
/* 211: */
 
880
#line 5913 "./fweave.web"
772
881
 
773
882
 
774
883
EXTERN boolean did_arg;
775
884
 
 
885
/* :211 */
 
886
/* 227: */
 
887
#line 6574 "./fweave.web"
776
888
 
777
889
 
778
890
EXTERN boolean the_type SET(NO_TYPE);
779
891
 
 
892
/* :227 */
 
893
/* 240: */
 
894
#line 6962 "./fweave.web"
780
895
 
781
896
 
782
897
EXTERN output_state cur_state;
790
905
 
791
906
EXTERN stack_pointer mx_stck_ptr;
792
907
 
 
908
/* :240 */
 
909
/* 245: */
 
910
#line 7031 "./fweave.web"
793
911
 
794
912
 
795
913
EXTERN name_pointer cur_name;
796
914
 
 
915
/* :245 */
 
916
/* 272: */
 
917
#line 7837 "./fweave.web"
797
918
 
798
919
 
799
920
EXTERN LINE_NUMBER save_line;
801
922
EXTERN boolean in_module SET(NO);
802
923
EXTERN boolean yskipped SET(NO);
803
924
 
 
925
/* :272 */
 
926
/* 275: */
 
927
#line 7894 "./fweave.web"
804
928
 
805
929
 
806
930
IN_COMMON outer_char last_include_file[],this_include_file[];
807
931
 
 
932
/* :275 */
 
933
/* 278: */
 
934
#line 7998 "./fweave.web"
808
935
 
809
936
 
810
937
EXTERN boolean ok_to_define SET(YES);
812
939
EXTERN boolean suppress_defn SET(NO);
813
940
EXTERN boolean output_protect SET(NO);
814
941
 
 
942
/* :278 */
 
943
/* 299: */
 
944
#line 8724 "./fweave.web"
815
945
 
816
946
 
817
947
EXTERN name_pointer this_module;
818
948
EXTERN name_pointer the_module;
819
949
 
820
950
 
 
951
/* :299 */
 
952
/* 315: */
 
953
#line 9124 "./fweave.web"
821
954
 
822
955
 
823
956
EXTERN xref_pointer next_xref,this_xref,first_xref,mid_xref;
824
957
 
825
958
 
 
959
/* :315 */
 
960
/* 326: */
 
961
#line 9458 "./fweave.web"
826
962
 
827
963
 
828
964
EXTERN sixteen_bits k_module;
829
965
 
 
966
/* :326 */
 
967
/* 328: */
 
968
#line 9494 "./fweave.web"
830
969
 
831
970
 
832
971
EXTERN name_pointer bucket[128];
839
978
EXTERN ASCII last_letter SET('\0');
840
979
 
841
980
 
 
981
/* :328 */
 
982
/* 333: */
 
983
#line 9565 "./fweave.web"
842
984
 
843
985
 
844
986
EXTERN eight_bits cur_depth;
847
989
 
848
990
EXTERN sort_pointer mx_sort_ptr;
849
991
 
 
992
/* :333 */
 
993
/* 335: */
 
994
#line 9583 "./fweave.web"
850
995
 
851
996
 
852
997
EXTERN ASCII collate[128];
853
998
EXTERN int max_collate;
854
999
 
 
1000
/* :335 */
 
1001
/* 347: */
 
1002
#line 9953 "./fweave.web"
855
1003
 
856
1004
 
857
1005
EXTERN FILE*mx_file;
861
1009
EXTERN outer_char HUGE*temp_ndx,HUGE*temp_mds;
862
1010
IN_COMMON outer_char wbflnm0[];
863
1011
 
 
1012
/* :347 */
 
1013
#line 38 "./fweave.web"
864
1014
 
865
1015
 
866
1016
 
867
1017
 
868
1018
#if(part == 0 || part == 1)
 
1019
/* 2: */
 
1020
#line 57 "./fweave.web"
869
1021
 
870
1022
 
871
1023
int main FCN((ac,av))
882
1034
ini_program(weave);
883
1035
 
884
1036
common_init();
885
 
 
886
 
 
 
1037
/* 38: */
 
1038
#line 163 "./fweave.web"
 
1039
 
 
1040
 
 
1041
/* 44: */
 
1042
#line 175 "./fweave.web"
887
1043
 
888
1044
 
889
1045
ALLOC(xref_info,xmem,"r",max_refs,0);
890
1046
xmem_end= xmem+max_refs-1;
891
1047
 
 
1048
/* :44 */
 
1049
/* 51: */
 
1050
#line 388 "./fweave.web"
892
1051
 
893
1052
 
894
1053
ALLOC(Token,tok_mem,"tw",max_toks,1);
899
1058
ALLOC(token_pointer,tok_start,"x",max_texts,0);
900
1059
tok_end= tok_start+max_texts-1;
901
1060
 
 
1061
/* :51 */
 
1062
/* 154: */
 
1063
#line 4285 "./fweave.web"
902
1064
 
903
1065
 
904
1066
ALLOC(ASCII,out_buf,"ll",line_length,1);
905
1067
 
906
1068
out_end= out_buf+line_length;
907
1069
 
 
1070
/* :154 */
 
1071
/* 196: */
 
1072
#line 5358 "./fweave.web"
908
1073
 
 
1074
#line 5359 "./fweave.web"
909
1075
 
910
1076
ALLOC(scrap,scrp_info,"s",max_scraps,0);
911
1077
scrp_end= scrp_info+max_scraps-1;
912
1078
 
 
1079
/* :196 */
 
1080
/* 203: */
 
1081
#line 5551 "./fweave.web"
913
1082
 
914
1083
{
915
1084
int l;
921
1090
op_end= op+op_entries;
922
1091
op_ptr= op+128;
923
1092
 
924
 
 
925
 
 
926
 
INIT_OP(041,"NOT",ALL_LANGUAGES,"\\WR",unop);
 
1093
/* 204: */
 
1094
#line 5567 "./fweave.web"
 
1095
 
 
1096
 
 
1097
INIT_OP('!',"NOT",ALL_LANGUAGES,"\\WR",unop);
927
1098
INIT_DOT("NOT",ALL_BUT_C_like,"\\WR",unop);
928
1099
 
929
1100
 
930
 
INIT_OP(045,"MOD",ALL_LANGUAGES,"\\WMOD",binop);
931
 
 
932
 
 
933
 
INIT_OP(046,"LAND",C,"\\amp",unorbinop);
934
 
INIT_OP(046,"LAND",C_PLUS_PLUS,"\\amp",reference);
935
 
 
936
 
INIT_OP(046,"LAND",ALL_BUT_C_like,"\\WAND",binop);
937
 
 
938
 
 
939
 
INIT_OP(053,"PLUS",ALL_LANGUAGES,"+",unorbinop);
940
 
INIT_OP(055,"MINUS",ALL_LANGUAGES,"-",unorbinop);
941
 
 
942
 
INIT_OP(052,"STAR",ALL_LANGUAGES,"\\ast",unorbinop);
943
 
 
944
 
 
945
 
 
946
 
 
947
 
 
948
 
INIT_OP(057,"SLASH",ALL_BUT_N_like,"\\WSl",binop);
949
 
INIT_OP(057,"SLASH",ONLY_N_like,"/",binop);
950
 
 
951
 
INIT_OP(074,"LT",ALL_BUT_Cpp,"<",binop);
952
 
INIT_OP(074,"LT",C_PLUS_PLUS,"<",langle);
 
1101
INIT_OP('%',"MOD",ALL_LANGUAGES,"\\WMOD",binop);
 
1102
 
 
1103
 
 
1104
INIT_OP('&',"LAND",C,"\\amp",unorbinop);
 
1105
INIT_OP('&',"LAND",C_PLUS_PLUS,"\\amp",reference);
 
1106
 
 
1107
INIT_OP('&',"LAND",ALL_BUT_C_like,"\\WAND",binop);
 
1108
 
 
1109
 
 
1110
INIT_OP('+',"PLUS",ALL_LANGUAGES,"+",unorbinop);
 
1111
INIT_OP('-',"MINUS",ALL_LANGUAGES,"-",unorbinop);
 
1112
 
 
1113
INIT_OP('*',"STAR",ALL_LANGUAGES,"\\ast",unorbinop);
 
1114
 
 
1115
 
 
1116
 
 
1117
 
 
1118
 
 
1119
INIT_OP('/',"SLASH",ALL_BUT_N_like,"\\WSl",binop);
 
1120
INIT_OP('/',"SLASH",ONLY_N_like,"/",binop);
 
1121
 
 
1122
INIT_OP('<',"LT",ALL_BUT_Cpp,"<",binop);
 
1123
INIT_OP('<',"LT",C_PLUS_PLUS,"<",langle);
953
1124
INIT_DOT("LT",ALL_BUT_C_like,"<",binop);
954
1125
 
955
1126
 
956
 
INIT_OP(075,"EQUALS",ALL_LANGUAGES,"=",binop);
 
1127
INIT_OP('=',"EQUALS",ALL_LANGUAGES,"=",binop);
957
1128
 
958
 
INIT_OP(076,"GT",ALL_BUT_Cpp,">",binop);
959
 
INIT_OP(076,"GT",C_PLUS_PLUS,">",rangle);
 
1129
INIT_OP('>',"GT",ALL_BUT_Cpp,">",binop);
 
1130
INIT_OP('>',"GT",C_PLUS_PLUS,">",rangle);
960
1131
INIT_DOT("GT",ALL_BUT_C_like,">",binop);
961
1132
 
962
1133
 
963
 
INIT_OP(077,"QUESTION",ONLY_C_like,"\\?",question);
964
 
 
965
 
INIT_OP(0136,"CARET",ALL_LANGUAGES,"\\Caret",binop);
966
 
 
967
 
 
968
 
INIT_OP(0174,"OR",ALL_LANGUAGES,"\\WOR",binop);
969
 
 
970
 
INIT_OP(0176,"TILDE",ONLY_C_like,"\\TLD",unop);
 
1134
INIT_OP('?',"QUESTION",ONLY_C_like,"\\?",question);
 
1135
 
 
1136
INIT_OP('^',"CARET",ALL_LANGUAGES,"\\Caret",binop);
 
1137
 
 
1138
 
 
1139
INIT_OP('|',"OR",ALL_LANGUAGES,"\\WOR",binop);
 
1140
 
 
1141
INIT_OP('~',"TILDE",ONLY_C_like,"\\TLD",unop);
971
1142
 
972
1143
 
973
1144
INIT_OP(not_eq,"NE",ALL_LANGUAGES,"\\WI",binop);
1024
1195
INIT_DOT("TRUE",ALL_BUT_C_like,"\\WTRUE",expr)
1025
1196
 
1026
1197
 
 
1198
/* :204 */
 
1199
#line 5562 "./fweave.web"
1027
1200
;
 
1201
/* 205: */
 
1202
#line 5671 "./fweave.web"
1028
1203
 
1029
1204
 
1030
1205
INIT_CA(plus_eq,"Wcp",ALL_LANGUAGES,"\\Wcp",binop);
1048
1223
INIT_CA(lt_lt_eq,"Wcl",ONLY_C_like,"\\Wcl",binop)
1049
1224
 
1050
1225
 
 
1226
/* :205 */
 
1227
#line 5563 "./fweave.web"
1051
1228
;
1052
1229
}
1053
1230
 
 
1231
/* :203 */
 
1232
/* 241: */
 
1233
#line 6976 "./fweave.web"
1054
1234
 
1055
1235
 
1056
1236
ALLOC(output_state,stack,"kw",stck_size,0);
1057
1237
stck_end= stack+stck_size-1;
1058
1238
 
 
1239
/* :241 */
 
1240
/* 329: */
 
1241
#line 9507 "./fweave.web"
1059
1242
 
1060
1243
 
1061
1244
ALLOC(name_pointer,blink,"n",max_names,0);
1062
1245
 
1063
 
 
1064
 
 
 
1246
/* :329 */
 
1247
#line 165 "./fweave.web"
 
1248
 
 
1249
 
 
1250
/* :38 */
 
1251
/* 45: */
 
1252
#line 181 "./fweave.web"
1065
1253
 
1066
1254
 
1067
1255
name_dir->xref= (XREF_POINTER)(xref_ptr= xmem);
1068
1256
xref_switch= mod_xref_switch= defd_switch= index_short= NO;
1069
1257
xmem->num= 0;
1070
1258
 
1071
 
 
1072
 
 
 
1259
/* :45 */
 
1260
/* 52: */
 
1261
#line 399 "./fweave.web"
 
1262
 
 
1263
 
 
1264
/* 53: */
 
1265
#line 405 "./fweave.web"
1073
1266
 
1074
1267
{
1075
1268
tok_ptr= tok_mem+1;
1077
1270
text_ptr= tok_start+1;
1078
1271
}
1079
1272
 
 
1273
/* :53 */
 
1274
#line 401 "./fweave.web"
1080
1275
 
1081
1276
mx_tok_ptr= tok_ptr;mx_text_ptr= text_ptr;
1082
1277
 
 
1278
/* :52 */
 
1279
/* 59: */
 
1280
#line 695 "./fweave.web"
1083
1281
 
1084
1282
 
1085
1283
zero_ccodes();
1086
 
ccode[057]= line_break;
1087
 
 
1088
 
 
 
1284
ccode['/']= line_break;
 
1285
 
 
1286
 
 
1287
/* 60: */
 
1288
#line 706 "./fweave.web"
1089
1289
 
1090
1290
{
1091
1291
 
1218
1418
 
1219
1419
ini_ccode((outer_char*)"protect_code",(outer_char*)"p",protect_code);
1220
1420
 
 
1421
/* 61: */
 
1422
#line 792 "./fweave.web"
1221
1423
 
1222
1424
 
1223
1425
#if(DEBUG)
1225
1427
ini_ccode((outer_char*)"trace",(outer_char*)"012",trace);
1226
1428
#endif 
1227
1429
 
 
1430
/* :61 */
 
1431
#line 786 "./fweave.web"
1228
1432
 
1229
1433
}
1230
1434
 
 
1435
/* :60 */
 
1436
#line 701 "./fweave.web"
1231
1437
 
1232
1438
prn_codes();
1233
1439
 
1234
 
 
1235
 
 
1236
 
mod_text[0]= 040;
1237
 
 
 
1440
/* :59 */
 
1441
/* 108: */
 
1442
#line 2475 "./fweave.web"
 
1443
 
 
1444
 
 
1445
mod_text[0]= ' ';
 
1446
 
 
1447
/* :108 */
 
1448
/* 157: */
 
1449
#line 4391 "./fweave.web"
1238
1450
 
1239
1451
{
1240
1452
out_ptr= out_buf;out_line= 1;
1248
1460
}
1249
1461
}
1250
1462
 
1251
 
 
1252
 
 
1253
 
out_buf[0]= 0134;
1254
 
 
 
1463
/* :157 */
 
1464
/* 162: */
 
1465
#line 4518 "./fweave.web"
 
1466
 
 
1467
 
 
1468
out_buf[0]= '\\';
 
1469
 
 
1470
/* :162 */
 
1471
/* 197: */
 
1472
#line 5364 "./fweave.web"
1255
1473
 
1256
1474
 
1257
1475
scrp_base= scrp_info+1;
1258
1476
 
1259
1477
mx_scr_ptr= scrp_ptr= scrp_info;
1260
1478
 
 
1479
/* :197 */
 
1480
/* 242: */
 
1481
#line 6982 "./fweave.web"
1261
1482
 
1262
1483
 
1263
1484
mx_stck_ptr= stack;
1264
1485
 
 
1486
/* :242 */
 
1487
/* 334: */
 
1488
#line 9574 "./fweave.web"
1265
1489
 
1266
1490
 
1267
1491
mx_sort_ptr= scrp_info;
1268
1492
 
1269
1493
 
 
1494
/* :334 */
 
1495
/* 336: */
 
1496
#line 9591 "./fweave.web"
1270
1497
 
1271
1498
 
1272
1499
collate[0]= 0;
1273
1500
 
 
1501
/* :336 */
 
1502
#line 73 "./fweave.web"
1274
1503
;
1275
1504
 
1276
1505
 
1281
1510
return wrap_up();
1282
1511
}
1283
1512
 
1284
 
 
1285
 
 
1286
 
 
 
1513
#line 1 "./typedefs.hweb"
 
1514
 
 
1515
 
 
1516
#line 8 "./formats.hweb"
 
1517
 
 
1518
/* :2 */
 
1519
/* 35: */
 
1520
#line 88 "./fweave.web"
1287
1521
 
1288
1522
 
1289
1523
SRTN
1293
1527
tex_file= stdout;
1294
1528
else
1295
1529
{
 
1530
/* 36: */
 
1531
#line 118 "./fweave.web"
1296
1532
 
1297
1533
{
1298
1534
if(tex_file= FOPEN(tex_fname,"r"))
1320
1556
}
1321
1557
 
1322
1558
 
 
1559
/* :36 */
 
1560
#line 98 "./fweave.web"
1323
1561
 
1324
1562
 
1325
1563
if((tex_file= FOPEN(tex_fname,"w"))==NULL)
1328
1566
fatal(ERR_W,OC("ABORTING:  "),OC("Can't open output file %s."),tex_fname);
1329
1567
}
1330
1568
else
 
1569
/* 37: */
 
1570
#line 155 "./fweave.web"
1331
1571
 
1332
1572
{
1333
1573
fprintf(tex_file,"%s v%s (%s)\n\n",
1335
1575
}
1336
1576
 
1337
1577
 
1338
 
 
1339
 
}
1340
 
}
1341
 
 
 
1578
/* :37 */
 
1579
#line 108 "./fweave.web"
 
1580
 
 
1581
}
 
1582
}
 
1583
 
 
1584
/* :35 */
 
1585
/* 46: */
 
1586
#line 196 "./fweave.web"
1342
1587
 
1343
1588
 
1344
1589
SRTN
1437
1682
 
1438
1683
check_implicit:
1439
1684
if(typd_switch)
 
1685
/* 47: */
 
1686
#line 299 "./fweave.web"
1440
1687
 
1441
1688
{
1442
1689
NAME_INFO rs_wd;
1446
1693
rhs->reserved_word= rhs->Language= BOOLEAN(language);
1447
1694
rhs->intrinsic_word= rhs->keyword= NO;
1448
1695
 
 
1696
/* 140: */
 
1697
#line 3738 "./fweave.web"
1449
1698
 
1450
1699
{
1451
1700
lhs->ilk= rhs->ilk;
1463
1712
#undef RST_BIT
1464
1713
}
1465
1714
 
1466
 
 
1467
 
 
 
1715
/* :140 */
 
1716
#line 308 "./fweave.web"
 
1717
 
 
1718
 
 
1719
/* :47 */
 
1720
/* 47: */
 
1721
#line 318 "./fweave.web"
1468
1722
 
1469
1723
 
1470
1724
for(q= (xref_pointer)p->xref;q>xmem;q= q->xlink)
1473
1727
typd_switch= NO;
1474
1728
}
1475
1729
 
 
1730
/* :47 */
 
1731
#line 294 "./fweave.web"
1476
1732
 
1477
1733
}
1478
1734
 
 
1735
/* :46 */
 
1736
/* 48: */
 
1737
#line 333 "./fweave.web"
1479
1738
 
1480
1739
 
1481
1740
SRTN
1484
1743
{
1485
1744
xref_pointer q,r;
1486
1745
 
 
1746
/* :48 */
 
1747
/* 48: */
 
1748
#line 345 "./fweave.web"
1487
1749
 
1488
1750
q= (xref_pointer)p->xref;r= xmem;
1489
1751
 
1524
1786
r->xlink= xref_ptr;
1525
1787
}
1526
1788
 
 
1789
#line 8 "./tokens.hweb"
1527
1790
 
 
1791
/* :48 */
 
1792
/* 54: */
 
1793
#line 415 "./fweave.web"
1528
1794
 
1529
1795
 
1530
1796
boolean
1543
1809
return(boolean)(!STRNCMP(first,p->byte_start,l));
1544
1810
}
1545
1811
 
 
1812
/* :54 */
 
1813
/* 55: */
 
1814
#line 436 "./fweave.web"
1546
1815
 
1547
1816
 
1548
1817
SRTN
1569
1838
{
1570
1839
node->xref= (XREF_POINTER)xmem;
1571
1840
 
 
1841
/* 24: */
 
1842
#line 193 "./typedefs.hweb"
1572
1843
 
1573
1844
{
1574
1845
 
1583
1854
}
1584
1855
 
1585
1856
 
 
1857
/* :24 */
 
1858
#line 462 "./fweave.web"
1586
1859
 
1587
1860
}
1588
1861
 
 
1862
#line 8 "./ccodes.hweb"
1589
1863
 
 
1864
/* :55 */
 
1865
/* 64: */
 
1866
#line 842 "./fweave.web"
1590
1867
 
1591
1868
 
1592
1869
SRTN
1597
1874
if(loc>limit&&!get_line())
1598
1875
return;
1599
1876
 
1600
 
*(limit+1)= 0100;
1601
 
 
1602
 
 
1603
 
while(*loc!=0100)
 
1877
*(limit+1)= '@';
 
1878
 
 
1879
 
 
1880
while(*loc!='@')
1604
1881
loc++;
1605
1882
 
1606
1883
 
1608
1885
switch(ccode[*loc++])
1609
1886
{
1610
1887
 
1611
 
 
1612
 
 
 
1888
/* 62: */
 
1889
#line 803 "./fweave.web"
 
1890
 
 
1891
 
 
1892
/* 9: */
 
1893
#line 80 "./typedefs.hweb"
1613
1894
 
1614
1895
 
1615
1896
case begin_C:
1619
1900
 
1620
1901
 
1621
1902
 
 
1903
/* :9 */
 
1904
#line 805 "./fweave.web"
1622
1905
:
1623
1906
loc--;
1624
1907
 
1625
1908
 
1626
1909
case L_switch:
 
1910
/* 63: */
 
1911
#line 821 "./fweave.web"
1627
1912
 
1628
1913
{
 
1914
/* 20: */
 
1915
#line 139 "./typedefs.hweb"
1629
1916
 
1630
1917
{
1631
1918
ASCII l= *loc++;
1632
1919
 
1633
1920
switch(l)
1634
1921
{
1635
 
 
1636
 
case 0143
1637
 
 
1638
 
:
1639
 
Cpp= BOOLEAN(*loc==053);
1640
 
break;
1641
 
 
1642
 
 
1643
 
case 0162
1644
 
 
1645
 
:
1646
 
 
1647
 
case 0156
1648
 
 
1649
 
:
1650
 
Fortran88= BOOLEAN(*loc==071);
1651
 
break;
1652
 
 
1653
 
 
1654
 
case 0166
1655
 
 
1656
 
 
1657
 
 
1658
 
:
1659
 
 
1660
 
case 0170
1661
 
 
 
1922
/* 10: */
 
1923
#line 95 "./typedefs.hweb"
 
1924
 
 
1925
case 'c'
 
1926
 
 
1927
/* :10 */
 
1928
#line 145 "./typedefs.hweb"
 
1929
:
 
1930
Cpp= BOOLEAN(*loc=='+');
 
1931
break;
 
1932
 
 
1933
/* 11: */
 
1934
#line 98 "./typedefs.hweb"
 
1935
 
 
1936
case 'r'
 
1937
 
 
1938
/* :11 */
 
1939
#line 149 "./typedefs.hweb"
 
1940
:
 
1941
/* 12: */
 
1942
#line 101 "./typedefs.hweb"
 
1943
 
 
1944
case 'n'
 
1945
 
 
1946
/* :12 */
 
1947
#line 150 "./typedefs.hweb"
 
1948
:
 
1949
Fortran88= BOOLEAN(*loc=='9');
 
1950
break;
 
1951
 
 
1952
/* 14: */
 
1953
#line 107 "./typedefs.hweb"
 
1954
 
 
1955
case 'v'
 
1956
 
 
1957
 
 
1958
 
 
1959
/* :14 */
 
1960
#line 154 "./typedefs.hweb"
 
1961
:
 
1962
/* 13: */
 
1963
#line 104 "./typedefs.hweb"
 
1964
 
 
1965
case 'x'
 
1966
 
 
1967
/* :13 */
 
1968
#line 155 "./typedefs.hweb"
1662
1969
:
1663
1970
break;
1664
1971
 
1673
1980
}
1674
1981
 
1675
1982
 
 
1983
/* :20 */
 
1984
#line 823 "./fweave.web"
1676
1985
 
1677
1986
 
1678
1987
if(module_count==0)
1679
1988
global_params= params;
1680
1989
 
1681
1990
ini0_language();
 
1991
/* 308: */
 
1992
#line 8966 "./fweave.web"
1682
1993
 
1683
1994
 
1684
1995
if(Fortran88&&(auto_semi&&!free_Fortran))
1688
1999
}
1689
2000
 
1690
2001
 
 
2002
/* :308 */
 
2003
#line 829 "./fweave.web"
1691
2004
 
1692
2005
}
1693
2006
 
 
2007
/* :63 */
 
2008
#line 810 "./fweave.web"
1694
2009
 
1695
2010
break;
1696
2011
 
1701
2016
global_params= params;
1702
2017
break;
1703
2018
 
 
2019
/* :62 */
 
2020
#line 863 "./fweave.web"
1704
2021
 
1705
2022
 
1706
2023
case invisible_cmnt:
1711
2028
return;
1712
2029
}
1713
2030
 
 
2031
/* :64 */
 
2032
/* 64: */
 
2033
#line 876 "./fweave.web"
1714
2034
}
1715
2035
}
1716
2036
 
 
2037
/* :64 */
 
2038
/* 65: */
 
2039
#line 884 "./fweave.web"
1717
2040
 
1718
2041
 
1719
2042
eight_bits
1724
2047
if(loc>limit&&!get_line())
1725
2048
return new_module;
1726
2049
 
1727
 
*(limit+1)= 0100;
 
2050
*(limit+1)= '@';
1728
2051
 
1729
 
while(*loc!=0100&&*loc!=0174)
 
2052
while(*loc!='@'&&*loc!='|')
1730
2053
loc++;
1731
2054
 
1732
 
if(*loc++==0174)
1733
 
return 0174;
 
2055
if(*loc++=='|')
 
2056
return '|';
1734
2057
 
1735
2058
if(loc<=limit)
1736
2059
{
1742
2065
DUMMY_RETURN(0);
1743
2066
}
1744
2067
 
 
2068
/* :65 */
 
2069
/* 67: */
 
2070
#line 974 "./fweave.web"
1745
2071
 
1746
2072
 
1747
2073
eight_bits
1753
2079
 
1754
2080
WHILE()
1755
2081
{
 
2082
/* 82: */
 
2083
#line 1490 "./fweave.web"
1756
2084
 
1757
2085
{
1758
2086
if(preprocessing&&at_beginning)
1762
2090
 
1763
2091
 
1764
2092
for(;loc<limit;loc++)
1765
 
if(!(*loc==040||*loc==tab_mark))
 
2093
if(!(*loc==' '||*loc==tab_mark))
1766
2094
break;
1767
2095
 
1768
 
*(loc-1)= 043;
 
2096
*(loc-1)= '#';
1769
2097
 
1770
2098
 
1771
2099
return(eight_bits)prs_regular_code(GOTO_GET_IDENTIFIER);
1772
2100
}
1773
2101
}
1774
2102
 
 
2103
/* :82 */
 
2104
#line 985 "./fweave.web"
1775
2105
;
 
2106
/* 83: */
 
2107
#line 1513 "./fweave.web"
1776
2108
 
1777
2109
 
1778
2110
chk_the_end:
1797
2129
else if(Fortran88
1798
2130
&&parsing_mode==OUTER
1799
2131
&&(auto_semi&&!free_Fortran)&&(limit>cur_buffer)
1800
 
&&!(limit[0]==0100&&limit[1]==0155))
 
2132
&&!(limit[0]=='@'&&limit[1]=='m'))
1801
2133
{
1802
2134
loc= limit+1;
1803
2135
chk_end= NO;
1819
2151
}
1820
2152
continue;
1821
2153
}
 
2154
#line 1559 "./fweave.web"
1822
2155
}
1823
2156
}
1824
2157
 
 
2158
/* :83 */
 
2159
#line 986 "./fweave.web"
1825
2160
;
1826
2161
 
1827
2162
chk_end= YES;
1828
2163
 
 
2164
/* 68: */
 
2165
#line 1044 "./fweave.web"
1829
2166
 
1830
2167
{
1831
2168
if(loc>limit)
1835
2172
terminator[0]= *limit;terminator[1]= *(limit+1);
1836
2173
}
1837
2174
 
 
2175
/* 69: */
 
2176
#line 1086 "./fweave.web"
1838
2177
 
1839
2178
{
1840
2179
if(just_inserted)
1844
2183
if(free_Fortran&&auto_semi&&!empty_line&&the_part==CODE)
1845
2184
{
1846
2185
just_inserted= YES;
1847
 
return auto_pseudo_semis?ccode[073]:073;
1848
 
 
1849
 
}
1850
 
}
1851
 
}
1852
 
 
 
2186
return auto_pseudo_semis?ccode[';']:';';
 
2187
 
 
2188
}
 
2189
}
 
2190
}
 
2191
 
 
2192
/* :69 */
 
2193
#line 1053 "./fweave.web"
1853
2194
 
1854
2195
 
1855
2196
empty_line= NO;
1859
2200
 
1860
2201
if(eat_blank_lines)
1861
2202
{
 
2203
/* 70: */
 
2204
#line 1104 "./fweave.web"
1862
2205
 
1863
2206
{
1864
2207
while(loc>=limit)
1869
2212
}
1870
2213
}
1871
2214
 
 
2215
/* :70 */
 
2216
#line 1062 "./fweave.web"
1872
2217
 
1873
2218
eat_blank_lines= NO;
1874
2219
}
1886
2231
at_beginning= NO;
1887
2232
}
1888
2233
 
 
2234
/* :68 */
 
2235
#line 990 "./fweave.web"
1889
2236
 
 
2237
/* 71: */
 
2238
#line 1117 "./fweave.web"
1890
2239
 
1891
2240
 
1892
2241
if(preprocessing)
 
2242
/* 72: */
 
2243
#line 1137 "./fweave.web"
1893
2244
 
1894
2245
{
1895
2246
do
1896
2247
{
1897
 
if((c= *loc++)!=040||c!=tab_mark)
 
2248
if((c= *loc++)!=' '||c!=tab_mark)
1898
2249
break;
1899
2250
}
1900
2251
while(loc<limit);
1901
2252
 
1902
 
if(c==040||c==tab_mark)
 
2253
if(c==' '||c==tab_mark)
1903
2254
return macro_space;
1904
2255
}
1905
2256
 
 
2257
/* :72 */
 
2258
#line 1121 "./fweave.web"
1906
2259
 
1907
2260
else
 
2261
/* 73: */
 
2262
#line 1151 "./fweave.web"
1908
2263
 
1909
2264
{
1910
2265
if(language==TEX)
1917
2272
{
1918
2273
c= *loc++;
1919
2274
}
1920
 
while(loc<=limit&&(c==040||c==tab_mark));
 
2275
while(loc<=limit&&(c==' '||c==tab_mark));
1921
2276
 
1922
2277
if(nuweb_mode)
1923
2278
{
1924
 
if(!(c==0100&&*loc==043))
 
2279
if(!(c=='@'&&*loc=='#'))
1925
2280
{
1926
2281
loc= loc0;
1927
2282
c= *loc++;
1928
2283
if(phase==1&&c==tab_mark)
1929
 
c= 040;
1930
 
}
1931
 
}
1932
 
}
1933
 
}
1934
 
 
1935
 
 
 
2284
c= ' ';
 
2285
}
 
2286
}
 
2287
}
 
2288
}
 
2289
 
 
2290
 
 
2291
/* :73 */
 
2292
#line 1123 "./fweave.web"
1936
2293
 
1937
2294
 
1938
2295
if(c==cont_char&&loc==limit)
1946
2303
continue;
1947
2304
}
1948
2305
 
 
2306
/* :71 */
 
2307
#line 991 "./fweave.web"
1949
2308
 
1950
2309
 
1951
2310
 
1995
2354
return(eight_bits)pcode;
1996
2355
}
1997
2356
 
 
2357
/* :67 */
 
2358
/* 74: */
 
2359
#line 1188 "./fweave.web"
1998
2360
 
1999
2361
GOTO_CODE
2000
2362
prs_TeX_code(VOID)
2002
2364
GOTO_CODE icode;
2003
2365
 
2004
2366
if(loc>limit)
2005
 
return 073;
 
2367
return ';';
2006
2368
 
2007
 
if(c==0100)
 
2369
if(c=='@')
2008
2370
{
2009
2371
if((icode= get_control_code())==GOTO_MISTAKE)
2010
2372
return prs_regular_code(GOTO_MISTAKE);
2016
2378
long_comment= YES;
2017
2379
return begin_comment;
2018
2380
}
2019
 
else if(c==0174&&parsing_mode==INNER)
2020
 
return 0174;
 
2381
else if(c=='|'&&parsing_mode==INNER)
 
2382
return '|';
2021
2383
else
2022
2384
if(phase==1)
2023
2385
{
2024
2386
if(TeX[c]==TeX_escape)
 
2387
/* 75: */
 
2388
#line 1228 "./fweave.web"
2025
2389
 
2026
2390
{
2027
2391
id_first= id_loc= mod_text+1;
2030
2394
 
2031
2395
if(TeX[*loc]!=TeX_letter)
2032
2396
{
2033
 
if(*loc==0100)
 
2397
if(*loc=='@')
2034
2398
{
2035
 
if(*(loc+1)!=0100)
 
2399
if(*(loc+1)!='@')
2036
2400
err0_print(ERR_W,OC("You should say `\\@@'"),0);
2037
2401
else loc++;
2038
2402
}
2040
2404
}
2041
2405
else while(TeX[*loc]==TeX_letter)
2042
2406
{
2043
 
if(*loc==0100)
 
2407
if(*loc=='@')
2044
2408
{
2045
 
if(*(loc+1)!=0100)
 
2409
if(*(loc+1)!='@')
2046
2410
err0_print(ERR_W,OC("You should say `@@'"),0);
2047
2411
else loc++;
2048
2412
}
2052
2416
return identifier;
2053
2417
}
2054
2418
 
 
2419
/* :75 */
 
2420
#line 1215 "./fweave.web"
2055
2421
 
2056
2422
else
2057
2423
return MORE_PARSE;
2058
2424
}
2059
2425
else
 
2426
/* 76: */
 
2427
#line 1263 "./fweave.web"
2060
2428
 
2061
2429
{
2062
2430
loc--;
2064
2432
 
2065
2433
while(loc<limit)
2066
2434
{
2067
 
if(*loc==0100)
2068
 
if(*(loc+1)==0100)*id_loc++= *loc++;
 
2435
if(*loc=='@')
 
2436
if(*(loc+1)=='@')*id_loc++= *loc++;
2069
2437
else break;
2070
2438
 
2071
2439
if(TeX[*loc]==TeX_comment)break;
2072
 
if(*loc==0174&&parsing_mode==INNER)break;
 
2440
if(*loc=='|'&&parsing_mode==INNER)break;
2073
2441
 
2074
2442
if(TeX[*loc]==TeX_escape)
2075
2443
{
2076
2444
if(TeX[*(loc+1)]!=TeX_letter)
2077
2445
{
2078
 
if(*(loc+1)==0100)
2079
 
if(*(loc+2)!=0100)
 
2446
if(*(loc+1)=='@')
 
2447
if(*(loc+2)!='@')
2080
2448
 
2081
2449
err0_print(ERR_W,OC("You should say \\@@"),0);
2082
2450
else*id_loc++= *loc++;
2107
2475
return stringg;
2108
2476
}
2109
2477
 
2110
 
 
2111
 
 
 
2478
/* :76 */
 
2479
#line 1220 "./fweave.web"
 
2480
 
 
2481
 
 
2482
#line 1223 "./fweave.web"
2112
2483
}
2113
2484
 
 
2485
/* :74 */
 
2486
/* 77: */
 
2487
#line 1313 "./fweave.web"
2114
2488
 
2115
2489
 
2116
2490
GOTO_CODE
2127
2501
}
2128
2502
 
2129
2503
 
2130
 
if(c==056&&*loc==056&&*(loc+1)==056)
 
2504
if(c=='.'&&*loc=='.'&&*(loc+1)=='.')
2131
2505
{
2132
2506
++loc;
2133
2507
compress(ellipsis);
2136
2510
 
2137
2511
else if(FORTRAN_LIKE(language)&&dot_constants&&
2138
2512
(c==wt_style.dot_delimiter.begin)&&!isDigit(*loc))
 
2513
/* 78: */
 
2514
#line 1412 "./fweave.web"
2139
2515
 
2140
2516
{
2141
2517
ASCII HUGE*p0;
2158
2534
if((dcode= dot_code(dots,uppercase(p0,n),loc,dot_const))!=0)
2159
2535
{
2160
2536
if(Fortran88)
2161
 
upcoming_kind= BOOLEAN(loc[1]==0137);
 
2537
upcoming_kind= BOOLEAN(loc[1]=='_');
2162
2538
 
2163
2539
compress(dcode);
2164
2540
}
2168
2544
goto mistake;
2169
2545
}
2170
2546
 
2171
 
 
2172
 
 
2173
 
 
2174
 
else if(isDigit(c)||c==0134||c==056||(upcoming_kind&&c==0137))
 
2547
/* :78 */
 
2548
#line 1338 "./fweave.web"
 
2549
 
 
2550
 
 
2551
 
 
2552
else if(isDigit(c)||c=='\\'||c=='.'||(upcoming_kind&&c=='_'))
 
2553
/* 88: */
 
2554
#line 1833 "./fweave.web"
2175
2555
 
2176
2556
{
2177
2557
boolean decimal_point= NO;
2182
2562
 
2183
2563
if(Fortran88)
2184
2564
{
2185
 
*id_loc++= 040;
 
2565
*id_loc++= ' ';
2186
2566
 
2187
2567
 
2188
2568
if(upcoming_kind)
2193
2573
}
2194
2574
}
2195
2575
 
2196
 
if(c!=0137)
2197
 
if(c==0134)
 
2576
if(c!='_')
 
2577
if(c=='\\')
2198
2578
{
2199
2579
ASCII*loc0;
2200
2580
 
2201
 
if(*loc==057)
 
2581
if(*loc=='/')
2202
2582
goto mistake;
2203
2583
 
2204
2584
*id_loc++= OCTAL_CODE;
2210
2590
if(loc==loc0)
2211
2591
return(eight_bits)c;
2212
2592
}
2213
 
else if(c==060)
 
2593
else if(c=='0')
 
2594
/* 89: */
 
2595
#line 1887 "./fweave.web"
2214
2596
 
2215
2597
{
2216
 
if(*loc==0170||*loc==0130)
 
2598
if(*loc=='x'||*loc=='X')
2217
2599
{
2218
2600
*id_loc++= HEX_CODE;
2219
2601
loc++;
2220
2602
while(isXdigit(*loc))
2221
2603
*id_loc++= *loc++;
2222
2604
}
2223
 
else if(*loc==0142||*loc==0102)
 
2605
else if(*loc=='b'||*loc=='B')
2224
2606
{
2225
2607
*id_loc++= BINARY_CODE;
2226
2608
loc++;
2237
2619
goto dec;
2238
2620
}
2239
2621
 
 
2622
/* :89 */
 
2623
#line 1872 "./fweave.web"
2240
2624
 
2241
2625
else
 
2626
/* 90: */
 
2627
#line 1915 "./fweave.web"
2242
2628
 
2243
2629
{
2244
 
if(c==056&&!isDigit(*loc))
 
2630
if(c=='.'&&!isDigit(*loc))
2245
2631
goto mistake;
2246
2632
 
2247
2633
dec:
2248
2634
*id_loc++= c;
2249
 
while(isDigit(*loc)||*loc==056)
 
2635
while(isDigit(*loc)||*loc=='.')
2250
2636
*id_loc++= *loc++;
2251
2637
 
2252
2638
 
2253
2639
 
2254
2640
 
2255
 
decimal_point= BOOLEAN(*(loc-1)==056);
 
2641
decimal_point= BOOLEAN(*(loc-1)=='.');
2256
2642
 
2257
2643
if(FORTRAN_LIKE(language))
2258
2644
if(decimal_point)
2265
2651
return constant;
2266
2652
}
2267
2653
}
2268
 
else if(*loc==0150||*loc==0110)
 
2654
else if(*loc=='h'||*loc=='H')
 
2655
/* 92: */
 
2656
#line 1973 "./fweave.web"
2269
2657
 
2270
2658
{
2271
2659
int k,n;
2282
2670
return constant;
2283
2671
}
2284
2672
 
 
2673
/* :92 */
 
2674
#line 1942 "./fweave.web"
2285
2675
;
2286
2676
 
2287
2677
if(in_format)
2289
2679
 
2290
2680
prec_char= *loc;
2291
2681
 
2292
 
if(prec_char==0145||prec_char==0105||(FORTRAN_LIKE(language)&&
2293
 
(prec_char==0144||prec_char==0104||
2294
 
prec_char==0161||prec_char==0121)))
 
2682
if(prec_char=='e'||prec_char=='E'||(FORTRAN_LIKE(language)&&
 
2683
(prec_char=='d'||prec_char=='D'||
 
2684
prec_char=='q'||prec_char=='Q')))
 
2685
/* 91: */
 
2686
#line 1958 "./fweave.web"
2295
2687
 
2296
2688
{
2297
2689
*id_loc++= EXP_CODE;
2299
2691
 
2300
2692
loc++;
2301
2693
 
2302
 
if(*loc==053||*loc==055)
 
2694
if(*loc=='+'||*loc=='-')
2303
2695
*id_loc++= *loc++;
2304
2696
 
2305
2697
while(isDigit(*loc))
2306
2698
*id_loc++= *loc++;
2307
2699
}
2308
2700
 
 
2701
/* :91 */
 
2702
#line 1952 "./fweave.web"
2309
2703
 
2310
2704
}
2311
2705
 
2312
 
 
2313
 
 
 
2706
/* :90 */
 
2707
#line 1874 "./fweave.web"
 
2708
 
 
2709
 
 
2710
/* 93: */
 
2711
#line 1991 "./fweave.web"
2314
2712
 
2315
2713
 
2316
2714
if(C_LIKE(language))
2317
2715
{
2318
2716
switch(*loc)
2319
2717
{
2320
 
case 0154:
2321
 
case 0114:
 
2718
case 'l':
 
2719
case 'L':
2322
2720
*id_loc++= CONSTANT_CODE;
2323
2721
loc++;
2324
 
if(*loc==0165||*loc==0125)
 
2722
if(*loc=='u'||*loc=='U')
2325
2723
{
2326
2724
*id_loc++= ULONG_CODE;
2327
2725
loc++;
2330
2728
*id_loc++= LONG_CODE;
2331
2729
break;
2332
2730
 
2333
 
case 0165:
2334
 
case 0125:
 
2731
case 'u':
 
2732
case 'U':
2335
2733
*id_loc++= CONSTANT_CODE;
2336
2734
loc++;
2337
 
if(*loc==0154||*loc==0114)
 
2735
if(*loc=='l'||*loc=='L')
2338
2736
{
2339
2737
*id_loc++= ULONG_CODE;
2340
2738
loc++;
2342
2740
else*id_loc++= UNSIGNED_CODE;
2343
2741
break;
2344
2742
 
2345
 
case 0146:
2346
 
case 0106:
 
2743
case 'f':
 
2744
case 'F':
2347
2745
*id_loc++= CONSTANT_CODE;
2348
2746
*id_loc++= FLOAT_CODE;
2349
2747
loc++;
2351
2749
}
2352
2750
}
2353
2751
else if(Fortran88)
2354
 
 
2355
 
{
2356
 
if(*loc==0137)
2357
 
{
2358
 
*id_first= 0173;
2359
 
 
2360
 
 
2361
 
*id_loc++= 0175;
 
2752
/* 94: */
 
2753
#line 2036 "./fweave.web"
 
2754
 
 
2755
{
 
2756
if(*loc=='_')
 
2757
{
 
2758
*id_first= '{';
 
2759
 
 
2760
 
 
2761
*id_loc++= '}';
2362
2762
 
2363
2763
while(is_kind(*loc))
2364
2764
*id_loc++= *loc++;
2367
2767
id_first++;
2368
2768
}
2369
2769
 
2370
 
 
2371
 
 
 
2770
/* :94 */
 
2771
#line 2031 "./fweave.web"
 
2772
 
 
2773
 
 
2774
/* :93 */
 
2775
#line 1876 "./fweave.web"
2372
2776
 
2373
2777
 
2374
2778
if(!decimal_point&&at_beginning&&
2375
2779
((is_FORTRAN_(language)&&!last_was_continued)||
2376
 
(is_RATFOR_(language)&&*loc==072)))
 
2780
(is_RATFOR_(language)&&*loc==':')))
2377
2781
return stmt_label;
2378
2782
 
2379
2783
return constant;
2380
2784
}
2381
2785
 
2382
 
 
2383
 
 
2384
 
 
2385
 
else if(in_data&&Fortran88&&(*loc==042||*loc==047)&&
2386
 
(c==0102||c==0117||c==0132))
 
2786
/* :88 */
 
2787
#line 1342 "./fweave.web"
 
2788
 
 
2789
 
 
2790
 
 
2791
else if(in_data&&Fortran88&&(*loc=='"'||*loc=='\'')&&
 
2792
(c=='B'||c=='O'||c=='Z'))
2387
2793
return get_string(*loc++,c);
2388
2794
 
2389
2795
 
2390
2796
else if(is_identifier(c))
 
2797
/* 29: */
 
2798
#line 317 "./typedefs.hweb"
2391
2799
 
2392
2800
{
2393
2801
IN_COMMON ASCII HUGE*pformat,HUGE*pdata;
2394
2802
 
2395
2803
get_identifier:
 
2804
/* 30: */
 
2805
#line 353 "./typedefs.hweb"
2396
2806
 
2397
2807
{
2398
2808
id_first= --loc;
2399
2809
 
2400
2810
 
2401
2811
for(++loc;isAlpha(*loc)||isDigit(*loc)
2402
 
||*loc==0137||*loc==044||(in_format&&*loc==056);loc++)
 
2812
||*loc=='_'||*loc=='$'||(in_format&&*loc=='.');loc++)
2403
2813
;
2404
2814
 
2405
2815
upcoming_kind= BOOLEAN(Fortran88&&(*loc=='"'||*loc=='\'')
2410
2820
}
2411
2821
 
2412
2822
 
 
2823
/* :30 */
 
2824
#line 322 "./typedefs.hweb"
2413
2825
 
2414
2826
 
2415
2827
if(FORTRAN_LIKE(language))
2440
2852
}
2441
2853
 
2442
2854
 
2443
 
 
2444
 
 
2445
 
 
2446
 
else if(c==047||c==042
 
2855
/* :29 */
 
2856
#line 1351 "./fweave.web"
 
2857
 
 
2858
 
 
2859
 
 
2860
else if(c=='\''||c=='"'
2447
2861
||(sharp_include_line&&!in_comment&&
2448
 
(c==050||(C_LIKE(language)&&c==074))))
 
2862
(c=='('||(C_LIKE(language)&&c=='<'))))
2449
2863
return get_string(c,'\0');
2450
2864
 
2451
2865
 
2452
 
else if(c==0100)
 
2866
else if(c=='@')
2453
2867
{
2454
2868
if((icode= get_control_code())==GOTO_MISTAKE)
2455
2869
goto mistake;
2459
2873
 
2460
2874
 
2461
2875
 
2462
 
else if(c==040||c==tab_mark)
 
2876
else if(c==' '||c==tab_mark)
 
2877
/* :77 */
 
2878
/* 77: */
 
2879
#line 1381 "./fweave.web"
2463
2880
if(nuweb_mode)
2464
2881
return c;else
2465
2882
return MORE_PARSE;
2466
2883
 
2467
2884
 
2468
 
if(c==043&&at_beginning&&C_LIKE(language))
 
2885
if(c=='#'&&at_beginning&&C_LIKE(language))
 
2886
/* 80: */
 
2887
#line 1456 "./fweave.web"
2469
2888
 
2470
2889
{
2471
2890
IN_COMMON ASCII HUGE*pinclude,HUGE*ppragma;
2473
2892
 
2474
2893
 
2475
2894
preprocessing= YES;
 
2895
/* 81: */
 
2896
#line 1474 "./fweave.web"
2476
2897
 
2477
2898
{
2478
2899
 
2479
 
while(*loc==040||*loc==011)
 
2900
while(*loc==' '||*loc=='\t')
2480
2901
loc++;
2481
2902
 
2482
2903
if(STRNCMP(loc,pinclude,7)==0)
2485
2906
sharp_pragma_line= YES;
2486
2907
}
2487
2908
 
 
2909
/* :81 */
 
2910
#line 1463 "./fweave.web"
2488
2911
;
2489
2912
return left_preproc;
2490
2913
}
2491
2914
 
2492
 
 
2493
 
 
2494
 
 
2495
 
 
2496
 
else if(in_format&&c==073)
 
2915
/* :80 */
 
2916
#line 1388 "./fweave.web"
 
2917
 
 
2918
 
 
2919
 
 
2920
 
 
2921
else if(in_format&&c==';')
2497
2922
{
2498
2923
in_format= NO;
2499
2924
return end_format_stmt;
2500
2925
}
2501
2926
 
2502
2927
 
2503
 
mistake:
 
2928
mistake:/* 85: */
 
2929
#line 1593 "./fweave.web"
 
2930
 
2504
2931
 
2505
2932
switch(c)
2506
2933
{
2512
2939
long_comment= NO;
2513
2940
return begin_comment;
2514
2941
 
2515
 
case 0134:
2516
 
if(*loc==057&&!in_format&&FORTRAN_LIKE(language))
 
2942
case '\\':
 
2943
if(*loc=='/'&&!in_format&&FORTRAN_LIKE(language))
2517
2944
{
2518
2945
compress(slash_slash);
2519
2946
}
2520
2947
break;
2521
2948
 
2522
 
case 057:
2523
 
 
2524
 
 
2525
 
if(*loc==052)
 
2949
case '/':
 
2950
/* 86: */
 
2951
#line 1740 "./fweave.web"
 
2952
 
 
2953
 
 
2954
if(*loc=='*')
2526
2955
{
2527
2956
long_comment= YES;
2528
2957
compress(begin_comment);
2529
2958
}
2530
 
else if(*loc==057)
 
2959
else if(*loc=='/')
2531
2960
{
2532
2961
if(C_LIKE(language)||language==TEX||(Cpp_comments&&
2533
2962
!in_format&&FORTRAN_LIKE(language)))
2543
2972
 
2544
2973
}
2545
2974
}
2546
 
else if(*loc==051&&!in_format)
 
2975
else if(*loc==')'&&!in_format)
2547
2976
{compress(right_array);
2548
2977
}
2549
 
else if(*loc==075)
 
2978
else if(*loc=='=')
2550
2979
{COMPOUND(slash_eq,1);
2551
2980
}
2552
2981
 
2553
 
 
2554
 
break;
2555
 
 
2556
 
case 050:
2557
 
if(*loc==057&&!in_format)compress(left_array);
2558
 
break;
2559
 
 
2560
 
case 053:
2561
 
if(*loc==053){compress(plus_plus);
2562
 
}
2563
 
else if(*loc==075){COMPOUND(plus_eq,1);
2564
 
 
2565
 
}
2566
 
break;
2567
 
 
2568
 
case 055:
2569
 
if(*loc==055){compress(minus_minus);
2570
 
}
2571
 
else if(*loc==076){compress(minus_gt);
2572
 
 
2573
 
}
2574
 
else if(*loc==075){COMPOUND(minus_eq,1);
2575
 
 
2576
 
}
2577
 
break;
2578
 
 
2579
 
case 075:
2580
 
if(*loc==075){compress(eq_eq);
2581
 
}
2582
 
else if(*loc==076){compress(eq_gt);
2583
 
 
2584
 
}
2585
 
break;
2586
 
 
2587
 
case 076:
2588
 
if(*loc==075){compress(gt_eq);
2589
 
}
2590
 
else if(*loc==076)
2591
 
if(*(loc+1)==075){COMPOUND(gt_gt_eq,2);
 
2982
/* :86 */
 
2983
#line 1613 "./fweave.web"
 
2984
 
 
2985
break;
 
2986
 
 
2987
case '(':
 
2988
if(*loc=='/'&&!in_format)compress(left_array);
 
2989
break;
 
2990
 
 
2991
case '+':
 
2992
if(*loc=='+'){compress(plus_plus);
 
2993
}
 
2994
else if(*loc=='='){COMPOUND(plus_eq,1);
 
2995
 
 
2996
}
 
2997
break;
 
2998
 
 
2999
case '-':
 
3000
if(*loc=='-'){compress(minus_minus);
 
3001
}
 
3002
else if(*loc=='>'){compress(minus_gt);
 
3003
 
 
3004
}
 
3005
else if(*loc=='='){COMPOUND(minus_eq,1);
 
3006
 
 
3007
}
 
3008
break;
 
3009
 
 
3010
case '=':
 
3011
if(*loc=='='){compress(eq_eq);
 
3012
}
 
3013
else if(*loc=='>'){compress(eq_gt);
 
3014
 
 
3015
}
 
3016
break;
 
3017
 
 
3018
case '>':
 
3019
if(*loc=='='){compress(gt_eq);
 
3020
}
 
3021
else if(*loc=='>')
 
3022
if(*(loc+1)=='='){COMPOUND(gt_gt_eq,2);
2592
3023
 
2593
3024
}
2594
3025
else{compress(gt_gt);
2595
3026
}
2596
3027
break;
2597
3028
 
2598
 
case 074:
2599
 
if(*loc==075){compress(lt_eq);
 
3029
case '<':
 
3030
if(*loc=='='){compress(lt_eq);
2600
3031
}
2601
 
else if(*loc==074)
2602
 
if(*(loc+1)==075)
 
3032
else if(*loc=='<')
 
3033
if(*(loc+1)=='=')
2603
3034
{COMPOUND(lt_lt_eq,2);
2604
3035
 
2605
3036
}
2606
3037
else{compress(lt_lt);
2607
3038
}
2608
 
else if(*loc==076){compress(not_eq);
2609
 
 
2610
 
}
2611
 
break;
2612
 
 
2613
 
case 045:
2614
 
if(*loc==075){COMPOUND(mod_eq,1);
2615
 
}
2616
 
break;
2617
 
 
2618
 
case 046:
2619
 
if(*loc==046){compress(and_and);
2620
 
}
2621
 
else if(*loc==075)
 
3039
else if(*loc=='>'){compress(not_eq);
 
3040
 
 
3041
}
 
3042
break;
 
3043
 
 
3044
case '%':
 
3045
if(*loc=='='){COMPOUND(mod_eq,1);
 
3046
}
 
3047
break;
 
3048
 
 
3049
case '&':
 
3050
if(*loc=='&'){compress(and_and);
 
3051
}
 
3052
else if(*loc=='=')
2622
3053
{
2623
3054
COMPOUND(and_eq,1);
2624
3055
}
2625
3056
break;
2626
3057
 
2627
 
case 0174:
2628
 
if(*loc==0174)
 
3058
case '|':
 
3059
if(*loc=='|')
2629
3060
{
2630
 
if(*(loc+1)==0174)
 
3061
if(*(loc+1)=='|')
2631
3062
{
2632
3063
COMPOUND(or_or_or,2);
2633
3064
}
2634
3065
else compress(or_or);
2635
3066
}
2636
 
else if(*loc==075&&!FORTRAN_LIKE(language))
 
3067
else if(*loc=='='&&!FORTRAN_LIKE(language))
2637
3068
{
2638
3069
COMPOUND(or_eq,1);
2639
3070
}
2640
3071
break;
2641
3072
 
2642
 
case 041:
2643
 
if(!in_format&&(point_comments||*loc==041))
 
3073
case '!':
 
3074
if(!in_format&&(point_comments||*loc=='!'))
2644
3075
{
2645
 
if(*loc!=041)loc--;
 
3076
if(*loc!='!')loc--;
2646
3077
long_comment= NO;
2647
3078
compress(begin_comment);
2648
3079
}
2649
 
else if(*loc==075){compress(not_eq);
 
3080
else if(*loc=='='){compress(not_eq);
2650
3081
}
2651
3082
break;
2652
3083
 
2653
 
case 052:
2654
 
if(FORTRAN_LIKE(language)&&(*loc==052))
 
3084
case '*':
 
3085
if(FORTRAN_LIKE(language)&&(*loc=='*'))
2655
3086
{compress(star_star);
2656
3087
}
2657
 
else if(*loc==075){COMPOUND(star_eq,1);
 
3088
else if(*loc=='='){COMPOUND(star_eq,1);
2658
3089
}
2659
3090
break;
2660
3091
 
2661
 
case 0136:
2662
 
if(*loc==0136){compress(star_star);}
 
3092
case '^':
 
3093
if(*loc=='^'){compress(star_star);}
2663
3094
else if(FORTRAN_LIKE(language)&&(loc<limit))
2664
3095
return star_star;
2665
 
else if(*loc==075){COMPOUND(xor_eq,1);
 
3096
else if(*loc=='='){COMPOUND(xor_eq,1);
2666
3097
}
2667
3098
break;
2668
3099
 
2669
 
case 072:
2670
 
if(*loc==072)compress(colon_colon);
 
3100
case ':':
 
3101
if(*loc==':')compress(colon_colon);
2671
3102
break;
2672
3103
 
2673
 
case 043:
 
3104
case '#':
 
3105
/* 87: */
 
3106
#line 1771 "./fweave.web"
2674
3107
 
2675
3108
 
2676
3109
switch(*loc)
2677
3110
{
2678
 
case 043:
 
3111
case '#':
2679
3112
compress(paste);
2680
3113
break;
2681
3114
 
2682
 
case 041:
 
3115
case '!':
2683
3116
compress(dont_expand);
2684
3117
break;
2685
3118
 
2686
 
case 072:
 
3119
case ':':
2687
3120
compress(auto_label);
2688
3121
break;
2689
3122
 
2690
 
case 056:
 
3123
case '.':
2691
3124
compress(all_variable_args);
2692
3125
break;
2693
3126
 
2694
 
case 074:
 
3127
case '<':
2695
3128
loc++;
2696
3129
mac_mod_name= YES;
 
3130
/* 107: */
 
3131
#line 2437 "./fweave.web"
2697
3132
 
2698
3133
{
2699
3134
ASCII HUGE*k;
2700
 
static ASCII ell[]= "\56\56\56";
2701
 
static ASCII bad_mod_name[]= "\41\41\41\40\173\134\151\164\40\111\156\143\157\155\160\141\164\151\142\154\145\175\40\41\41\41";
2702
 
 
2703
 
 
 
3135
static ASCII ell[]= "...";
 
3136
static ASCII bad_mod_name[]= "!!! {\\it Incompatible} !!!";
 
3137
 
 
3138
 
 
3139
/* 109: */
 
3140
#line 2486 "./fweave.web"
2704
3141
 
2705
3142
{
2706
3143
mod_level= 1;
2718
3155
}
2719
3156
 
2720
3157
c= *loc;
2721
 
 
2722
 
 
2723
 
if(c==0100)
 
3158
/* 110: */
 
3159
#line 2537 "./fweave.web"
 
3160
 
 
3161
 
 
3162
if(c=='@')
2724
3163
{
2725
3164
c= *(loc+1);
2726
3165
 
2727
 
if(c==076)
 
3166
if(c=='>')
2728
3167
{
2729
3168
if(--mod_level==0)
2730
3169
{
2731
3170
loc+= 2;break;
2732
3171
}
2733
3172
}
2734
 
else if(c==074)mod_level++;
 
3173
else if(c=='<')mod_level++;
2735
3174
 
2736
3175
if(ccode[c]==new_module)
2737
3176
{
2740
3179
 
2741
3180
}
2742
3181
 
2743
 
*(++k)= 0100;loc++;
 
3182
*(++k)= '@';loc++;
2744
3183
}
2745
3184
 
2746
3185
 
 
3186
/* :110 */
 
3187
#line 2502 "./fweave.web"
2747
3188
;
2748
3189
loc++;
2749
3190
 
2751
3192
 
2752
3193
switch(c)
2753
3194
{
2754
 
case 040:
 
3195
case ' ':
2755
3196
case tab_mark:
2756
 
c= 040;if(*(k-1)==040)k--;
 
3197
c= ' ';if(*(k-1)==' ')k--;
2757
3198
break;
2758
3199
 
2759
 
case 073:
 
3200
case ';':
2760
3201
c= interior_semi;
2761
3202
break;
2762
3203
}
2774
3215
mark_harmless;
2775
3216
}
2776
3217
 
2777
 
if(*k==040&&k>mod_text)
 
3218
if(*k==' '&&k>mod_text)
2778
3219
k--;
2779
3220
}
2780
3221
 
 
3222
/* :109 */
 
3223
#line 2444 "./fweave.web"
2781
3224
 
2782
3225
 
2783
3226
if(k-mod_text>3&&STRNCMP(k-2,ell,3)==0)
2789
3232
 
2790
3233
if(cur_module)
2791
3234
{
 
3235
/* :107 */
 
3236
/* 107: */
 
3237
#line 2458 "./fweave.web"
2792
3238
params= cur_module->mod_info->params;
2793
3239
frz_params();
2794
3240
}
2800
3246
 
2801
3247
}
2802
3248
 
 
3249
/* :107 */
 
3250
#line 1794 "./fweave.web"
2803
3251
;
2804
3252
return macro_module_name;
2805
3253
 
2806
 
case 047:
2807
 
case 042:
 
3254
case '\'':
 
3255
case '"':
2808
3256
if(phase==1)loc++;
2809
3257
break;
2810
3258
}
2811
3259
 
 
3260
/* :87 */
 
3261
#line 1734 "./fweave.web"
2812
3262
 
2813
3263
break;
2814
3264
}
2815
3265
 
2816
3266
 
 
3267
/* :85 */
 
3268
#line 1399 "./fweave.web"
2817
3269
 
2818
3270
return(eight_bits)c;
2819
3271
}
2820
3272
 
 
3273
/* :77 */
 
3274
/* 96: */
 
3275
#line 2071 "./fweave.web"
2821
3276
 
2822
3277
 
2823
3278
eight_bits
2834
3289
id_loc= mod_text;
2835
3290
 
2836
3291
 
2837
 
if(delim==047&&*(loc-2)==0100){*++id_loc= 0100;*++id_loc= 0100;}
 
3292
if(delim=='\''&&*(loc-2)=='@'){*++id_loc= '@';*++id_loc= '@';}
2838
3293
*++id_loc= delim;
2839
3294
 
 
3295
/* 97: */
 
3296
#line 2140 "./fweave.web"
2840
3297
 
2841
3298
{
2842
3299
switch(delim)
2843
3300
{
2844
 
case 074:
2845
 
right_delim= 076;
 
3301
case '<':
 
3302
right_delim= '>';
2846
3303
break;
2847
3304
 
2848
 
case 050:
2849
 
right_delim= 051;
 
3305
case '(':
 
3306
right_delim= ')';
2850
3307
sharp_include_line= NO;
2851
3308
break;
2852
3309
 
2853
 
case 0133:
2854
 
right_delim= 0135;
 
3310
case '[':
 
3311
right_delim= ']';
2855
3312
break;
2856
3313
}
2857
3314
 
2860
3317
equal_delims= BOOLEAN(right_delim==delim);
2861
3318
}
2862
3319
 
 
3320
/* :97 */
 
3321
#line 2090 "./fweave.web"
2863
3322
 
2864
3323
 
2865
3324
kount= 0;
2866
3325
 
2867
3326
WHILE()
2868
3327
{
2869
 
if(loc>=limit)
 
3328
if(loc>=limit)/* 98: */
 
3329
#line 2164 "./fweave.web"
 
3330
 
2870
3331
{
2871
3332
if((equal_delims||chk_ifelse)&&*(limit-1)!=cont_char)
2872
3333
{
2873
3334
 
2874
 
err0_print(ERR_W,OC("String %s with %s'%s%c'%s didn't end"),5,BTRANS,SSET_COLOR(character),delim==047?"\\":"",XCHR(delim),SSET_COLOR(error));
 
3335
err0_print(ERR_W,OC("String %s with %s'%s%c'%s didn't end"),5,BTRANS,SSET_COLOR(character),delim=='\''?"\\":"",XCHR(delim),SSET_COLOR(error));
2875
3336
loc= limit;break;
2876
3337
 
2877
3338
}
2892
3353
if(bslash_continued_strings)
2893
3354
{
2894
3355
for(;loc<limit;loc++)
2895
 
if(*loc!=040&&*loc!=tab_mark)break;
 
3356
if(*loc!=' '&&*loc!=tab_mark)break;
2896
3357
 
2897
3358
if(*loc==cont_char)loc++;
2898
3359
else
2902
3363
}
2903
3364
}
2904
3365
 
2905
 
 
2906
 
 
2907
 
if((c= *loc++)==delim)
 
3366
/* :98 */
 
3367
#line 2096 "./fweave.web"
 
3368
 
 
3369
 
 
3370
if((c= *loc++)==delim)/* 99: */
 
3371
#line 2203 "./fweave.web"
 
3372
 
2908
3373
{
2909
3374
level++;
2910
3375
 
2917
3382
else break;
2918
3383
}
2919
3384
 
 
3385
/* :99 */
 
3386
#line 2098 "./fweave.web"
2920
3387
 
2921
3388
 
2922
3389
if(c==right_delim)
2938
3405
 
2939
3406
if(++id_loc<=mod_end)*id_loc= c;
2940
3407
 
 
3408
/* 100: */
 
3409
#line 2221 "./fweave.web"
2941
3410
 
2942
3411
 
2943
3412
if(insert_breaks)
2944
 
if(c==054)kount= 0;
2945
 
else if(++kount>=NBREAK&&c!=0100&&++id_loc<=mod_end)
 
3413
if(c==',')kount= 0;
 
3414
else if(++kount>=NBREAK&&c!='@'&&++id_loc<=mod_end)
2946
3415
{
2947
3416
kount= 0;
2948
3417
*id_loc= discretionary_break;
2949
3418
}
2950
3419
 
 
3420
/* :100 */
 
3421
#line 2119 "./fweave.web"
2951
3422
 
2952
3423
}
2953
3424
 
2963
3434
 
2964
3435
id_loc++;
2965
3436
 
 
3437
/* 101: */
 
3438
#line 2236 "./fweave.web"
2966
3439
 
2967
3440
{
2968
3441
if(FORTRAN_LIKE(language))
2969
3442
if(boz)
 
3443
/* 102: */
 
3444
#line 2246 "./fweave.web"
2970
3445
 
2971
3446
{
2972
3447
switch(boz)
2973
3448
{
2974
 
case 0102:
 
3449
case 'B':
2975
3450
*id_first= BINARY_CODE;
2976
3451
break;
2977
3452
 
2978
 
case 0117:
 
3453
case 'O':
2979
3454
*id_first= OCTAL_CODE;
2980
3455
break;
2981
3456
 
2982
 
case 0132:
 
3457
case 'Z':
2983
3458
*id_first= HEX_CODE;
2984
3459
break;
2985
3460
}
2988
3463
return constant;
2989
3464
}
2990
3465
 
 
3466
/* :102 */
 
3467
#line 2240 "./fweave.web"
2991
3468
 
2992
3469
else
 
3470
/* 103: */
 
3471
#line 2269 "./fweave.web"
2993
3472
 
2994
3473
{
2995
 
if(*loc==0130||*loc==0170)
 
3474
if(*loc=='X'||*loc=='x')
2996
3475
{
2997
3476
*id_first= HEX_CODE;
 
3477
/* 104: */
 
3478
#line 2284 "./fweave.web"
2998
3479
 
2999
3480
 
3000
3481
loc++;
3001
3482
id_loc--;
3002
3483
return constant;
3003
3484
 
 
3485
/* :104 */
 
3486
#line 2274 "./fweave.web"
3004
3487
 
3005
3488
}
3006
 
else if(*loc==0117||*loc==0157)
 
3489
else if(*loc=='O'||*loc=='o')
3007
3490
{
3008
3491
*id_first= OCTAL_CODE;
 
3492
/* 104: */
 
3493
#line 2284 "./fweave.web"
3009
3494
 
3010
3495
 
3011
3496
loc++;
3012
3497
id_loc--;
3013
3498
return constant;
3014
3499
 
3015
 
 
3016
 
}
3017
 
}
3018
 
 
3019
 
 
3020
 
}
3021
 
 
 
3500
/* :104 */
 
3501
#line 2279 "./fweave.web"
 
3502
 
 
3503
}
 
3504
}
 
3505
 
 
3506
/* :103 */
 
3507
#line 2242 "./fweave.web"
 
3508
 
 
3509
}
 
3510
 
 
3511
/* :101 */
 
3512
#line 2134 "./fweave.web"
3022
3513
 
3023
3514
 
3024
3515
return stringg;
3025
3516
}
3026
3517
 
 
3518
/* :96 */
 
3519
/* 106: */
 
3520
#line 2301 "./fweave.web"
3027
3521
 
3028
3522
 
3029
3523
GOTO_CODE
3036
3530
SET_CASE(c);
3037
3531
 
3038
3532
 
3039
 
if((c==057&&(*loc==052||*loc==057))||
 
3533
if((c=='/'&&(*loc=='*'||*loc=='/'))||
3040
3534
c==(ASCII)begin_comment0||c==(ASCII)begin_comment1)
3041
3535
return GOTO_MISTAKE;
3042
3536
 
3043
 
if(c==076&&mod_level==0)
 
3537
if(c=='>'&&mod_level==0)
3044
3538
{
3045
3539
 
3046
3540
err0_print(ERR_W,OC("Unmatched `@>' ignored"),0);
3081
3575
return MORE_PARSE;
3082
3576
 
3083
3577
#ifdef DEBUG
3084
 
case trace:tracing= c-060;
 
3578
case trace:tracing= c-'0';
3085
3579
return MORE_PARSE;
3086
3580
#endif 
3087
3581
 
3089
3583
 
3090
3584
 
3091
3585
 
 
3586
/* 9: */
 
3587
#line 80 "./typedefs.hweb"
3092
3588
 
3093
3589
 
3094
3590
case begin_C:
3098
3594
 
3099
3595
 
3100
3596
 
 
3597
/* :9 */
 
3598
#line 2365 "./fweave.web"
3101
3599
:
3102
3600
loc--;
3103
3601
 
3104
3602
case L_switch:
3105
3603
{
 
3604
/* 63: */
 
3605
#line 821 "./fweave.web"
3106
3606
 
3107
3607
{
 
3608
/* 20: */
 
3609
#line 139 "./typedefs.hweb"
3108
3610
 
3109
3611
{
3110
3612
ASCII l= *loc++;
3111
3613
 
3112
3614
switch(l)
3113
3615
{
3114
 
 
3115
 
case 0143
3116
 
 
3117
 
:
3118
 
Cpp= BOOLEAN(*loc==053);
3119
 
break;
3120
 
 
3121
 
 
3122
 
case 0162
3123
 
 
3124
 
:
3125
 
 
3126
 
case 0156
3127
 
 
3128
 
:
3129
 
Fortran88= BOOLEAN(*loc==071);
3130
 
break;
3131
 
 
3132
 
 
3133
 
case 0166
3134
 
 
3135
 
 
3136
 
 
3137
 
:
3138
 
 
3139
 
case 0170
3140
 
 
 
3616
/* 10: */
 
3617
#line 95 "./typedefs.hweb"
 
3618
 
 
3619
case 'c'
 
3620
 
 
3621
/* :10 */
 
3622
#line 145 "./typedefs.hweb"
 
3623
:
 
3624
Cpp= BOOLEAN(*loc=='+');
 
3625
break;
 
3626
 
 
3627
/* 11: */
 
3628
#line 98 "./typedefs.hweb"
 
3629
 
 
3630
case 'r'
 
3631
 
 
3632
/* :11 */
 
3633
#line 149 "./typedefs.hweb"
 
3634
:
 
3635
/* 12: */
 
3636
#line 101 "./typedefs.hweb"
 
3637
 
 
3638
case 'n'
 
3639
 
 
3640
/* :12 */
 
3641
#line 150 "./typedefs.hweb"
 
3642
:
 
3643
Fortran88= BOOLEAN(*loc=='9');
 
3644
break;
 
3645
 
 
3646
/* 14: */
 
3647
#line 107 "./typedefs.hweb"
 
3648
 
 
3649
case 'v'
 
3650
 
 
3651
 
 
3652
 
 
3653
/* :14 */
 
3654
#line 154 "./typedefs.hweb"
 
3655
:
 
3656
/* 13: */
 
3657
#line 104 "./typedefs.hweb"
 
3658
 
 
3659
case 'x'
 
3660
 
 
3661
/* :13 */
 
3662
#line 155 "./typedefs.hweb"
3141
3663
:
3142
3664
break;
3143
3665
 
3152
3674
}
3153
3675
 
3154
3676
 
 
3677
/* :20 */
 
3678
#line 823 "./fweave.web"
3155
3679
 
3156
3680
 
3157
3681
if(module_count==0)
3158
3682
global_params= params;
3159
3683
 
3160
3684
ini0_language();
 
3685
/* 308: */
 
3686
#line 8966 "./fweave.web"
3161
3687
 
3162
3688
 
3163
3689
if(Fortran88&&(auto_semi&&!free_Fortran))
3167
3693
}
3168
3694
 
3169
3695
 
 
3696
/* :308 */
 
3697
#line 829 "./fweave.web"
3170
3698
 
3171
3699
}
3172
3700
 
 
3701
/* :63 */
 
3702
#line 2370 "./fweave.web"
3173
3703
 
3174
3704
return begin_language;
3175
3705
}
3181
3711
 
3182
3712
case xref_roman:case xref_wildcard:case xref_typewriter:
3183
3713
case TeX_string:case keyword_name:
 
3714
/* 111: */
 
3715
#line 2565 "./fweave.web"
3184
3716
 
3185
3717
{
3186
3718
cc= ccode[*(loc-1)];
3187
 
id_first= loc;*(limit+1)= 0100;
 
3719
id_first= loc;*(limit+1)= '@';
3188
3720
 
3189
 
while(*loc!=0100)
 
3721
while(*loc!='@')
3190
3722
loc++;
3191
3723
 
3192
3724
id_loc= loc;
3200
3732
 
3201
3733
}
3202
3734
 
3203
 
if(*loc++!=076)
 
3735
if(*loc++!='>')
3204
3736
 
3205
3737
err0_print(ERR_W,OC("Control codes are forbidden in control text"),0);
3206
3738
 
3208
3740
return cc;
3209
3741
}
3210
3742
 
 
3743
/* :111 */
 
3744
#line 2380 "./fweave.web"
3211
3745
 
3212
3746
 
3213
3747
 
3214
3748
 
3215
3749
case module_name:
3216
3750
mac_mod_name= NO;
 
3751
/* 107: */
 
3752
#line 2437 "./fweave.web"
3217
3753
 
3218
3754
{
3219
3755
ASCII HUGE*k;
3220
 
static ASCII ell[]= "\56\56\56";
3221
 
static ASCII bad_mod_name[]= "\41\41\41\40\173\134\151\164\40\111\156\143\157\155\160\141\164\151\142\154\145\175\40\41\41\41";
3222
 
 
3223
 
 
 
3756
static ASCII ell[]= "...";
 
3757
static ASCII bad_mod_name[]= "!!! {\\it Incompatible} !!!";
 
3758
 
 
3759
 
 
3760
/* 109: */
 
3761
#line 2486 "./fweave.web"
3224
3762
 
3225
3763
{
3226
3764
mod_level= 1;
3238
3776
}
3239
3777
 
3240
3778
c= *loc;
3241
 
 
3242
 
 
3243
 
if(c==0100)
 
3779
/* 110: */
 
3780
#line 2537 "./fweave.web"
 
3781
 
 
3782
 
 
3783
if(c=='@')
3244
3784
{
3245
3785
c= *(loc+1);
3246
3786
 
3247
 
if(c==076)
 
3787
if(c=='>')
3248
3788
{
3249
3789
if(--mod_level==0)
3250
3790
{
3251
3791
loc+= 2;break;
3252
3792
}
3253
3793
}
3254
 
else if(c==074)mod_level++;
 
3794
else if(c=='<')mod_level++;
3255
3795
 
3256
3796
if(ccode[c]==new_module)
3257
3797
{
3260
3800
 
3261
3801
}
3262
3802
 
3263
 
*(++k)= 0100;loc++;
 
3803
*(++k)= '@';loc++;
3264
3804
}
3265
3805
 
3266
3806
 
 
3807
/* :110 */
 
3808
#line 2502 "./fweave.web"
3267
3809
;
3268
3810
loc++;
3269
3811
 
3271
3813
 
3272
3814
switch(c)
3273
3815
{
3274
 
case 040:
 
3816
case ' ':
3275
3817
case tab_mark:
3276
 
c= 040;if(*(k-1)==040)k--;
 
3818
c= ' ';if(*(k-1)==' ')k--;
3277
3819
break;
3278
3820
 
3279
 
case 073:
 
3821
case ';':
3280
3822
c= interior_semi;
3281
3823
break;
3282
3824
}
3294
3836
mark_harmless;
3295
3837
}
3296
3838
 
3297
 
if(*k==040&&k>mod_text)
 
3839
if(*k==' '&&k>mod_text)
3298
3840
k--;
3299
3841
}
3300
3842
 
 
3843
/* :109 */
 
3844
#line 2444 "./fweave.web"
3301
3845
 
3302
3846
 
3303
3847
if(k-mod_text>3&&STRNCMP(k-2,ell,3)==0)
3309
3853
 
3310
3854
if(cur_module)
3311
3855
{
 
3856
/* :107 */
 
3857
/* 107: */
 
3858
#line 2458 "./fweave.web"
3312
3859
params= cur_module->mod_info->params;
3313
3860
frz_params();
3314
3861
}
3320
3867
 
3321
3868
}
3322
3869
 
 
3870
/* :107 */
 
3871
#line 2386 "./fweave.web"
3323
3872
 
3324
3873
return module_name;
3325
3874
 
3326
3875
case new_output_file:
 
3876
/* 31: */
 
3877
#line 371 "./typedefs.hweb"
3327
3878
 
3328
3879
{
3329
3880
while(*loc==' '||*loc==tab_mark)
3346
3897
}
3347
3898
 
3348
3899
 
 
3900
/* :31 */
 
3901
#line 2390 "./fweave.web"
3349
3902
 
3350
3903
return cc;
3351
3904
 
3352
3905
case invisible_cmnt:
3353
 
if(*loc==045)
 
3906
if(*loc=='%')
3354
3907
eat_blank_lines= YES;
3355
3908
loc= limit+1;
3356
3909
return MORE_PARSE;
3360
3913
doing_cdir= YES;
3361
3914
return begin_comment;
3362
3915
 
3363
 
case verbatim:
 
3916
case verbatim:/* 112: */
 
3917
#line 2595 "./fweave.web"
 
3918
 
3364
3919
{
3365
3920
id_first= loc++;
3366
3921
 
3367
 
*(limit+1)= 0100;*(limit+2)= 076;
 
3922
*(limit+1)= '@';*(limit+2)= '>';
3368
3923
 
3369
 
while(*loc!=0100||*(loc+1)!=076)loc++;
 
3924
while(*loc!='@'||*(loc+1)!='>')loc++;
3370
3925
 
3371
3926
if(loc>=limit)
3372
3927
err0_print(ERR_W,OC("Verbatim string didn't end"),0);
3377
3932
return(verbatim);
3378
3933
}
3379
3934
 
 
3935
/* :112 */
 
3936
#line 2404 "./fweave.web"
3380
3937
 
3381
3938
 
3382
3939
case ascii_constant:return get_string(c,'\0');
3385
3942
if(loc>=limit)
3386
3943
return cc;
3387
3944
 
 
3945
/* 32: */
 
3946
#line 399 "./typedefs.hweb"
3388
3947
 
3389
3948
{
3390
3949
boolean mcode;
3397
3956
 
3398
3957
if((mcode= is_mcmd(mcmds,id_first,loc))!=0)
3399
3958
{
3400
 
while(loc<limit&&(*loc==040||*loc==tab_mark))
 
3959
while(loc<limit&&(*loc==' '||*loc==tab_mark))
3401
3960
loc++;
3402
3961
 
3403
3962
#ifdef _FWEAVE_h
3411
3970
}
3412
3971
 
3413
3972
 
 
3973
/* :32 */
 
3974
#line 2412 "./fweave.web"
3414
3975
;
3415
3976
return cc;
3416
3977
 
3417
3978
case begin_bp:
3418
 
return 0173;
 
3979
return '{';
3419
3980
 
3420
3981
case USED_BY_NEITHER:
3421
3982
if(phase==1)
3425
3986
return ignore;
3426
3987
 
3427
3988
case USED_BY_OTHER:
3428
 
if(c==0161)
 
3989
if(c=='q')
3429
3990
loc++;
3430
3991
 
3431
3992
return cc;
3434
3995
}
3435
3996
}
3436
3997
 
 
3998
/* :106 */
 
3999
/* 114: */
 
4000
#line 2628 "./fweave.web"
3437
4001
 
3438
4002
 
3439
4003
SRTN
3459
4023
global_params= params;
3460
4024
 
3461
4025
while(!input_has_ended)
 
4026
/* 115: */
 
4027
#line 2663 "./fweave.web"
3462
4028
 
3463
4029
{
3464
4030
the_part= TEX_;
3474
4040
params= global_params;
3475
4041
frz_params();
3476
4042
 
 
4043
/* 135: */
 
4044
#line 3476 "./fweave.web"
3477
4045
 
3478
4046
{
3479
4047
the_part= TEX_;
3484
4052
{
3485
4053
switch(next_control= skip_TeX())
3486
4054
{
 
4055
/* 9: */
 
4056
#line 80 "./typedefs.hweb"
3487
4057
 
3488
4058
 
3489
4059
case begin_C:
3493
4063
 
3494
4064
 
3495
4065
 
 
4066
/* :9 */
 
4067
#line 3486 "./fweave.web"
3496
4068
:
3497
4069
loc--;
3498
4070
 
3499
4071
case L_switch:
3500
4072
{
 
4073
/* 63: */
 
4074
#line 821 "./fweave.web"
3501
4075
 
3502
4076
{
 
4077
/* 20: */
 
4078
#line 139 "./typedefs.hweb"
3503
4079
 
3504
4080
{
3505
4081
ASCII l= *loc++;
3506
4082
 
3507
4083
switch(l)
3508
4084
{
3509
 
 
3510
 
case 0143
3511
 
 
3512
 
:
3513
 
Cpp= BOOLEAN(*loc==053);
3514
 
break;
3515
 
 
3516
 
 
3517
 
case 0162
3518
 
 
3519
 
:
3520
 
 
3521
 
case 0156
3522
 
 
3523
 
:
3524
 
Fortran88= BOOLEAN(*loc==071);
3525
 
break;
3526
 
 
3527
 
 
3528
 
case 0166
3529
 
 
3530
 
 
3531
 
 
3532
 
:
3533
 
 
3534
 
case 0170
3535
 
 
 
4085
/* 10: */
 
4086
#line 95 "./typedefs.hweb"
 
4087
 
 
4088
case 'c'
 
4089
 
 
4090
/* :10 */
 
4091
#line 145 "./typedefs.hweb"
 
4092
:
 
4093
Cpp= BOOLEAN(*loc=='+');
 
4094
break;
 
4095
 
 
4096
/* 11: */
 
4097
#line 98 "./typedefs.hweb"
 
4098
 
 
4099
case 'r'
 
4100
 
 
4101
/* :11 */
 
4102
#line 149 "./typedefs.hweb"
 
4103
:
 
4104
/* 12: */
 
4105
#line 101 "./typedefs.hweb"
 
4106
 
 
4107
case 'n'
 
4108
 
 
4109
/* :12 */
 
4110
#line 150 "./typedefs.hweb"
 
4111
:
 
4112
Fortran88= BOOLEAN(*loc=='9');
 
4113
break;
 
4114
 
 
4115
/* 14: */
 
4116
#line 107 "./typedefs.hweb"
 
4117
 
 
4118
case 'v'
 
4119
 
 
4120
 
 
4121
 
 
4122
/* :14 */
 
4123
#line 154 "./typedefs.hweb"
 
4124
:
 
4125
/* 13: */
 
4126
#line 104 "./typedefs.hweb"
 
4127
 
 
4128
case 'x'
 
4129
 
 
4130
/* :13 */
 
4131
#line 155 "./typedefs.hweb"
3536
4132
:
3537
4133
break;
3538
4134
 
3547
4143
}
3548
4144
 
3549
4145
 
 
4146
/* :20 */
 
4147
#line 823 "./fweave.web"
3550
4148
 
3551
4149
 
3552
4150
if(module_count==0)
3553
4151
global_params= params;
3554
4152
 
3555
4153
ini0_language();
 
4154
/* 308: */
 
4155
#line 8966 "./fweave.web"
3556
4156
 
3557
4157
 
3558
4158
if(Fortran88&&(auto_semi&&!free_Fortran))
3562
4162
}
3563
4163
 
3564
4164
 
 
4165
/* :308 */
 
4166
#line 829 "./fweave.web"
3565
4167
 
3566
4168
}
3567
4169
 
 
4170
/* :63 */
 
4171
#line 3491 "./fweave.web"
3568
4172
;
3569
4173
continue;
3570
4174
}
3574
4178
continue;
3575
4179
 
3576
4180
case toggle_output:
 
4181
/* 176: */
 
4182
#line 4971 "./fweave.web"
3577
4183
 
3578
4184
{
3579
4185
static int outer_include_depth;
3593
4199
}
3594
4200
}
3595
4201
 
 
4202
/* :176 */
 
4203
#line 3500 "./fweave.web"
3596
4204
 
3597
4205
continue;
3598
4206
 
3601
4209
continue;
3602
4210
 
3603
4211
#ifdef DEBUG
3604
 
case trace:tracing= next_control-060;continue;
 
4212
case trace:tracing= next_control-'0';continue;
3605
4213
#endif 
3606
4214
 
3607
 
case 0174:
 
4215
case '|':
3608
4216
while(next_control<=module_name)
3609
4217
{
3610
4218
C_xref(TEX_,INNER);
3611
4219
 
3612
 
if(next_control==0174||next_control==new_module)
 
4220
if(next_control=='|'||next_control==new_module)
3613
4221
break;
3614
4222
 
3615
4223
next_control= get_next();
3616
4224
 
3617
 
if(next_control==0174)
 
4225
if(next_control=='|')
3618
4226
break;
3619
4227
}
3620
4228
 
3641
4249
}
3642
4250
}
3643
4251
 
 
4252
/* :135 */
 
4253
#line 2678 "./fweave.web"
3644
4254
;
 
4255
/* 137: */
 
4256
#line 3568 "./fweave.web"
3645
4257
 
3646
4258
{
3647
4259
boolean no_xref0= no_xref;
3698
4310
break;
3699
4311
 
3700
4312
case limbo_text:
 
4313
/* 144: */
 
4314
#line 3850 "./fweave.web"
3701
4315
 
3702
4316
{
3703
4317
LANGUAGE language0= language;
3716
4330
{
3717
4331
for(id_first++,id_loc--;id_first<id_loc;)
3718
4332
{
3719
 
if(*id_first==0100)
 
4333
if(*id_first=='@')
3720
4334
{
3721
 
if(*(id_first+1)==0100)
 
4335
if(*(id_first+1)=='@')
3722
4336
id_first++;
3723
4337
else
3724
4338
 
3726
4340
}
3727
4341
 
3728
4342
 
3729
 
if(*id_first==0134)
 
4343
if(*id_first=='\\')
3730
4344
{
3731
4345
id_first++;
3732
4346
 
3747
4361
language= language0;
3748
4362
}
3749
4363
 
 
4364
/* :144 */
 
4365
#line 3624 "./fweave.web"
3750
4366
 
3751
4367
break;
3752
4368
 
3753
4369
case op_def:
 
4370
/* 145: */
 
4371
#line 3900 "./fweave.web"
3754
4372
 
3755
4373
{
3756
4374
OPERATOR HUGE*p,HUGE*p1;
3789
4407
*(id_loc-1)= '\0';
3790
4408
 
3791
4409
for(s= q->defn,id_first++;*id_first;s++)
3792
 
if(*id_first==0134)
 
4410
if(*id_first=='\\')
3793
4411
{
3794
4412
id_first++;
3795
4413
*s= XCHR(esc_achar((CONST ASCII HUGE
3825
4443
}
3826
4444
}
3827
4445
 
 
4446
/* :145 */
 
4447
#line 3628 "./fweave.web"
3828
4448
 
3829
4449
break;
3830
4450
 
3831
4451
case macro_def:
 
4452
/* 146: */
 
4453
#line 3977 "./fweave.web"
3832
4454
 
3833
4455
{
3834
4456
if((next_control= get_next())!=identifier)
3854
4476
 
3855
4477
switch(next_control= get_next())
3856
4478
{
3857
 
case 0134:
 
4479
case '\\':
3858
4480
if((next_control= get_next())!=identifier)
3859
4481
{
3860
4482
 
3888
4510
p->wv_macro= w= GET_MEM("wv_macro",1,WV_MACRO);
3889
4511
w->text= GET_MEM("w->text",n+1,outer_char);
3890
4512
 
3891
 
if(offset)*w->text= 0134;
 
4513
if(offset)*w->text= '\\';
3892
4514
 
3893
4515
for(s= w->text+offset;*id_first;s++)
3894
 
if(*id_first==0134)
 
4516
if(*id_first=='\\')
3895
4517
{
3896
4518
id_first++;
3897
4519
*s= esc_achar((CONST ASCII HUGE
3914
4536
}
3915
4537
}
3916
4538
 
 
4539
/* :146 */
 
4540
#line 3632 "./fweave.web"
3917
4541
 
3918
4542
break;
3919
4543
 
3930
4554
}
3931
4555
}
3932
4556
 
 
4557
/* :137 */
 
4558
#line 2679 "./fweave.web"
3933
4559
;
 
4560
/* 148: */
 
4561
#line 4067 "./fweave.web"
3934
4562
 
3935
4563
{
3936
4564
the_part= CODE;
3974
4602
if(mod_xref_switch)
3975
4603
next_control= get_next();
3976
4604
else
3977
 
next_control= 075;
 
4605
next_control= '=';
3978
4606
 
3979
 
if(next_control==075)
 
4607
if(next_control=='=')
3980
4608
if(!nuweb_mode&&((FORTRAN_LIKE(language)&&!free_form_input)
3981
4609
||(language==TEX)))
 
4610
/* 309: */
 
4611
#line 8977 "./fweave.web"
3982
4612
 
3983
4613
{
3984
4614
loc= limit+1;
3986
4616
column_mode= YES;
3987
4617
}
3988
4618
 
 
4619
/* :309 */
 
4620
#line 4115 "./fweave.web"
3989
4621
 
3990
4622
 
3991
4623
beginning_module= NO;
4002
4634
}
4003
4635
}
4004
4636
 
 
4637
/* :148 */
 
4638
#line 2680 "./fweave.web"
4005
4639
;
4006
4640
 
4007
4641
if(chngd_module[module_count])
4010
4644
typd_switch= defd_switch= NO;
4011
4645
}
4012
4646
 
 
4647
/* :115 */
 
4648
#line 2653 "./fweave.web"
4013
4649
;
4014
4650
 
4015
4651
chngd_module[module_count]= change_exists;
4016
4652
 
4017
4653
 
 
4654
/* 152: */
 
4655
#line 4259 "./fweave.web"
4018
4656
 
4019
4657
{
4020
4658
if(mod_check(root)&&msg_level<SHORT_INFO)
4023
4661
fflush(stdout);
4024
4662
}
4025
4663
 
 
4664
/* :152 */
 
4665
#line 2659 "./fweave.web"
4026
4666
 
4027
4667
}
4028
4668
 
 
4669
/* :114 */
 
4670
/* 117: */
 
4671
#line 2700 "./fweave.web"
4029
4672
 
4030
4673
 
4031
4674
SRTN
4046
4689
}
4047
4690
 
4048
4691
if(language==LITERAL)
4049
 
if(next_control==0174)
 
4692
if(next_control=='|')
4050
4693
{
 
4694
/* 118: */
 
4695
#line 2813 "./fweave.web"
4051
4696
 
4052
4697
{
4053
4698
WHILE()
4054
4699
{
4055
4700
if(loc<limit)
4056
4701
{
4057
 
if(*loc==0174)
 
4702
if(*loc=='|')
4058
4703
{
4059
4704
next_control= *loc++;
4060
4705
break;
4067
4712
 
4068
4713
err0_print(ERR_W,OC("Missing '|'.  File ended while skipping a \
4069
4714
verbatim scrap"),0);
4070
 
next_control= 0174;
 
4715
next_control= '|';
4071
4716
break;
4072
4717
}
4073
4718
}
4074
4719
}
4075
4720
 
 
4721
/* :118 */
 
4722
#line 2722 "./fweave.web"
4076
4723
 
4077
4724
goto end_xref;
4078
4725
}
4086
4733
switch(next_control)
4087
4734
{
4088
4735
case begin_language:
 
4736
/* 132: */
 
4737
#line 3400 "./fweave.web"
4089
4738
 
4090
4739
 
4091
4740
switch(language)
4099
4748
case RATFOR:
4100
4749
case RATFOR_90:
4101
4750
if(mode0==OUTER&&!free_form_input)
 
4751
/* 309: */
 
4752
#line 8977 "./fweave.web"
4102
4753
 
4103
4754
{
4104
4755
loc= limit+1;
4106
4757
column_mode= YES;
4107
4758
}
4108
4759
 
 
4760
/* :309 */
 
4761
#line 3413 "./fweave.web"
4109
4762
 
4110
4763
break;
4111
4764
 
4112
4765
case TEX:
4113
 
if(mode0==OUTER)
 
4766
if(mode0==OUTER)/* 309: */
 
4767
#line 8977 "./fweave.web"
 
4768
 
4114
4769
{
4115
4770
loc= limit+1;
4116
4771
chk_end= NO;
4117
4772
column_mode= YES;
4118
4773
}
4119
4774
 
 
4775
/* :309 */
 
4776
#line 3417 "./fweave.web"
4120
4777
 
4121
4778
break;
4122
4779
 
4133
4790
}
4134
4791
 
4135
4792
 
 
4793
/* :132 */
 
4794
#line 2735 "./fweave.web"
4136
4795
 
4137
4796
break;
4138
4797
 
4139
4798
case toggle_output:
 
4799
/* 176: */
 
4800
#line 4971 "./fweave.web"
4140
4801
 
4141
4802
{
4142
4803
static int outer_include_depth;
4156
4817
}
4157
4818
}
4158
4819
 
 
4820
/* :176 */
 
4821
#line 2739 "./fweave.web"
4159
4822
 
4160
4823
break;
4161
4824
 
4162
4825
case begin_meta:
4163
4826
if(language==LITERAL)
 
4827
/* 128: */
 
4828
#line 3230 "./fweave.web"
4164
4829
 
4165
4830
{
4166
4831
WHILE()
4171
4836
break;
4172
4837
}
4173
4838
 
4174
 
if(loc[0]==0100)
 
4839
if(loc[0]=='@')
4175
4840
switch(loc[1])
4176
4841
{
4177
 
case 056:
4178
 
case 0136:
4179
 
case 071:
4180
 
case 052:
4181
 
case 040:
4182
 
case 074:
 
4842
case '.':
 
4843
case '^':
 
4844
case '9':
 
4845
case '*':
 
4846
case ' ':
 
4847
case '<':
4183
4848
goto done_meta;
4184
4849
 
4185
 
case 0100:
 
4850
case '@':
4186
4851
loc+= 2;
 
4852
default:
 
4853
loc++;
4187
4854
}
4188
4855
else
4189
4856
loc++;
4192
4859
done_meta:;
4193
4860
}
4194
4861
 
 
4862
/* :128 */
 
4863
#line 2744 "./fweave.web"
4195
4864
 
4196
4865
else
 
4866
/* 127: */
 
4867
#line 3210 "./fweave.web"
4197
4868
 
4198
4869
{
4199
4870
WHILE()
4205
4876
break;
4206
4877
}
4207
4878
 
4208
 
if(loc[0]==0100&&loc[1]==051)
 
4879
if(loc[0]=='@'&&loc[1]==')')
4209
4880
{
4210
4881
get_line();
4211
4882
break;
4213
4884
}
4214
4885
}
4215
4886
 
 
4887
/* :127 */
 
4888
#line 2746 "./fweave.web"
4216
4889
 
4217
4890
break;
4218
4891
 
4247
4920
if(C_LIKE(language)&&parsing_mode==OUTER)
4248
4921
{
4249
4922
if(p->ilk==typedef_like)
 
4923
/* 129: */
 
4924
#line 3267 "./fweave.web"
4250
4925
 
4251
4926
{
4252
4927
int brace_level= 0;
4265
4940
{
4266
4941
switch(next_control)
4267
4942
{
4268
 
case 0173:
4269
 
case 074:
 
4943
case '{':
 
4944
case '<':
4270
4945
brace_level++;
4271
4946
break;
4272
4947
 
4273
 
case 0175:
4274
 
case 076:
 
4948
case '}':
 
4949
case '>':
4275
4950
if(brace_level--==0)
4276
4951
{
4277
4952
 
4319
4994
case module_name:
4320
4995
if(cur_module)new_mod_xref(cur_module);
4321
4996
next_control= get_next();
4322
 
if(next_control==075)
 
4997
if(next_control=='=')
4323
4998
{
4324
4999
 
4325
5000
err0_print(ERR_W,OC("'=' not allowed after @<...@> \
4326
5001
inside typedef; check typedef syntax.  Inserted ';'"),0);
4327
 
next_control= 073;
 
5002
next_control= ';';
4328
5003
}
4329
5004
continue;
4330
5005
 
4331
 
case 073:
 
5006
case ';':
4332
5007
if(brace_level==0)goto done;
4333
5008
break;
4334
5009
 
4335
5010
case begin_comment:
 
5011
/* 134: */
 
5012
#line 3451 "./fweave.web"
4336
5013
 
4337
5014
{
4338
5015
int bal;
4339
5016
 
4340
 
bal= copy_comment(1);next_control= 0174;
 
5017
bal= copy_comment(1);next_control= '|';
4341
5018
 
4342
5019
doing_cdir= NO;
4343
5020
 
4346
5023
in_comment= YES;
4347
5024
C_xref(part0,INNER);
4348
5025
 
4349
 
if(next_control==0174)
 
5026
if(next_control=='|')
4350
5027
bal= copy_comment(bal);
4351
5028
else
4352
5029
bal= 0;
4353
5030
}
4354
5031
}
4355
5032
 
 
5033
/* :134 */
 
5034
#line 3352 "./fweave.web"
4356
5035
 
4357
5036
break;
4358
5037
}
4371
5050
}
4372
5051
}
4373
5052
 
 
5053
/* :129 */
 
5054
#line 2780 "./fweave.web"
4374
5055
 
4375
5056
else if(p->ilk==class_like)
 
5057
/* 131: */
 
5058
#line 3382 "./fweave.web"
4376
5059
 
4377
5060
{
4378
5061
if((next_control= get_next())==identifier)
4389
5072
}
4390
5073
}
4391
5074
 
 
5075
/* :131 */
 
5076
#line 2782 "./fweave.web"
4392
5077
 
4393
5078
}
4394
5079
break;
4403
5088
 
4404
5089
next_control= get_next();
4405
5090
 
4406
 
if(next_control==0174||next_control==begin_comment)
 
5091
if(next_control=='|'||next_control==begin_comment)
4407
5092
break;
4408
5093
}
4409
5094
 
4417
5102
}
4418
5103
}
4419
5104
 
 
5105
/* :117 */
 
5106
/* 120: */
 
5107
#line 2863 "./fweave.web"
4420
5108
 
4421
5109
 
4422
5110
SRTN
4459
5147
fprintf(ftemp_in,"#include %s\n",file_name);
4460
5148
fclose(ftemp_in);
4461
5149
 
 
5150
/* 121: */
 
5151
#line 2947 "./fweave.web"
4462
5152
 
4463
5153
{
4464
5154
outer_char*temp,*temp_I;
4465
5155
BUF_SIZE temp_len,ntemp;
4466
5156
IN_COMMON outer_char*extra_args;
4467
5157
 
 
5158
/* 122: */
 
5159
#line 2984 "./fweave.web"
4468
5160
 
4469
5161
{
4470
5162
IN_COMMON INCL_PATHS hdr_incl;
4491
5183
STRCAT(temp_I," -I.");
4492
5184
}
4493
5185
 
 
5186
/* :122 */
 
5187
#line 2953 "./fweave.web"
4494
5188
 
4495
5189
 
4496
5190
temp= GET_MEM("temp",ntemp= temp_len+STRLEN(RUN_CPP)+4+3*3+temp_len
4515
5209
FREE_MEM(temp,"temp",ntemp,outer_char);
4516
5210
}
4517
5211
 
4518
 
 
4519
 
 
 
5212
/* :121 */
 
5213
#line 2905 "./fweave.web"
 
5214
 
 
5215
 
 
5216
/* 123: */
 
5217
#line 3013 "./fweave.web"
4520
5218
 
4521
5219
{
4522
5220
if(++incl_depth>=(int)max_include_depth)
4566
5264
}
4567
5265
}
4568
5266
 
 
5267
/* :123 */
 
5268
#line 2907 "./fweave.web"
4569
5269
 
4570
5270
 
4571
5271
if(new_depth!=incl_depth||!get_line())
4589
5289
(eight_bits)(next_control-identifier));
4590
5290
 
4591
5291
if(p->ilk==typedef_like)
 
5292
/* 129: */
 
5293
#line 3267 "./fweave.web"
4592
5294
 
4593
5295
{
4594
5296
int brace_level= 0;
4607
5309
{
4608
5310
switch(next_control)
4609
5311
{
4610
 
case 0173:
4611
 
case 074:
 
5312
case '{':
 
5313
case '<':
4612
5314
brace_level++;
4613
5315
break;
4614
5316
 
4615
 
case 0175:
4616
 
case 076:
 
5317
case '}':
 
5318
case '>':
4617
5319
if(brace_level--==0)
4618
5320
{
4619
5321
 
4661
5363
case module_name:
4662
5364
if(cur_module)new_mod_xref(cur_module);
4663
5365
next_control= get_next();
4664
 
if(next_control==075)
 
5366
if(next_control=='=')
4665
5367
{
4666
5368
 
4667
5369
err0_print(ERR_W,OC("'=' not allowed after @<...@> \
4668
5370
inside typedef; check typedef syntax.  Inserted ';'"),0);
4669
 
next_control= 073;
 
5371
next_control= ';';
4670
5372
}
4671
5373
continue;
4672
5374
 
4673
 
case 073:
 
5375
case ';':
4674
5376
if(brace_level==0)goto done;
4675
5377
break;
4676
5378
 
4677
5379
case begin_comment:
 
5380
/* 134: */
 
5381
#line 3451 "./fweave.web"
4678
5382
 
4679
5383
{
4680
5384
int bal;
4681
5385
 
4682
 
bal= copy_comment(1);next_control= 0174;
 
5386
bal= copy_comment(1);next_control= '|';
4683
5387
 
4684
5388
doing_cdir= NO;
4685
5389
 
4688
5392
in_comment= YES;
4689
5393
C_xref(part0,INNER);
4690
5394
 
4691
 
if(next_control==0174)
 
5395
if(next_control=='|')
4692
5396
bal= copy_comment(bal);
4693
5397
else
4694
5398
bal= 0;
4695
5399
}
4696
5400
}
4697
5401
 
 
5402
/* :134 */
 
5403
#line 3352 "./fweave.web"
4698
5404
 
4699
5405
break;
4700
5406
}
4713
5419
}
4714
5420
}
4715
5421
 
 
5422
/* :129 */
 
5423
#line 2930 "./fweave.web"
4716
5424
 
4717
5425
else if(p->ilk==class_like)
 
5426
/* 131: */
 
5427
#line 3382 "./fweave.web"
4718
5428
 
4719
5429
{
4720
5430
if((next_control= get_next())==identifier)
4731
5441
}
4732
5442
}
4733
5443
 
 
5444
/* :131 */
 
5445
#line 2932 "./fweave.web"
4734
5446
 
4735
5447
 
4736
5448
break;
4744
5456
preprocessing= sharp_include_line= YES;
4745
5457
}
4746
5458
 
 
5459
/* :120 */
 
5460
/* 124: */
 
5461
#line 3063 "./fweave.web"
4747
5462
 
4748
5463
 
4749
5464
SRTN
4756
5471
}
4757
5472
}
4758
5473
 
 
5474
/* :124 */
 
5475
/* 125: */
 
5476
#line 3079 "./fweave.web"
4759
5477
 
4760
5478
 
4761
5479
outer_char*
4789
5507
}
4790
5508
 
4791
5509
 
 
5510
/* :125 */
 
5511
/* 130: */
 
5512
#line 3373 "./fweave.web"
4792
5513
 
4793
5514
SRTN
4794
5515
cant_do FCN((the_part))
4798
5519
err0_print(ERR_W,OC("You can't do that inside %s text"),1,the_part);
4799
5520
}
4800
5521
 
 
5522
/* :130 */
 
5523
/* 133: */
 
5524
#line 3437 "./fweave.web"
4801
5525
 
4802
5526
 
4803
5527
SRTN
4808
5532
if(next_control!=begin_comment)
4809
5533
C_xref(part0,OUTER);
4810
5534
else
 
5535
/* 134: */
 
5536
#line 3451 "./fweave.web"
4811
5537
 
4812
5538
{
4813
5539
int bal;
4814
5540
 
4815
 
bal= copy_comment(1);next_control= 0174;
 
5541
bal= copy_comment(1);next_control= '|';
4816
5542
 
4817
5543
doing_cdir= NO;
4818
5544
 
4821
5547
in_comment= YES;
4822
5548
C_xref(part0,INNER);
4823
5549
 
4824
 
if(next_control==0174)
 
5550
if(next_control=='|')
4825
5551
bal= copy_comment(bal);
4826
5552
else
4827
5553
bal= 0;
4828
5554
}
4829
5555
}
4830
5556
 
 
5557
/* :134 */
 
5558
#line 3447 "./fweave.web"
4831
5559
 
4832
5560
}
4833
5561
 
 
5562
/* :133 */
 
5563
/* 138: */
 
5564
#line 3658 "./fweave.web"
4834
5565
 
4835
5566
 
4836
5567
SRTN
4855
5586
 
4856
5587
 
4857
5588
if(next_control==identifier||next_control==module_name)
 
5589
/* 139: */
 
5590
#line 3693 "./fweave.web"
4858
5591
 
4859
5592
{
4860
5593
if(next_control==identifier)
4877
5610
if(lhs!=NULL)
4878
5611
{
4879
5612
if(last_control==identifier)
 
5613
/* 140: */
 
5614
#line 3738 "./fweave.web"
4880
5615
 
4881
5616
{
4882
5617
lhs->ilk= rhs->ilk;
4894
5629
#undef RST_BIT
4895
5630
}
4896
5631
 
 
5632
/* :140 */
 
5633
#line 3715 "./fweave.web"
4897
5634
 
4898
5635
else
4899
5636
lhs->mod_ilk= rhs->ilk;
4916
5653
}
4917
5654
}
4918
5655
 
 
5656
/* :139 */
 
5657
#line 3682 "./fweave.web"
4919
5658
 
4920
 
else if(next_control==0140)
 
5659
else if(next_control=='`')
 
5660
/* 141: */
 
5661
#line 3758 "./fweave.web"
4921
5662
 
4922
5663
{
4923
5664
if((next_control= get_TeX())!=constant)
4950
5691
}
4951
5692
}
4952
5693
 
 
5694
/* :141 */
 
5695
#line 3684 "./fweave.web"
4953
5696
 
4954
5697
 
4955
5698
if(saved_language==TEX)
4956
5699
language= saved_language;
4957
5700
}
4958
5701
 
 
5702
/* :138 */
 
5703
/* 142: */
 
5704
#line 3792 "./fweave.web"
4959
5705
 
4960
5706
 
4961
5707
eight_bits
4970
5716
 
4971
5717
id_first= id_loc= mod_text+1;
4972
5718
 
4973
 
if(*loc==0134)*id_loc++= *loc++;
4974
 
else if(*loc==0136&&*(loc+1)==0136)
 
5719
if(*loc=='\\')*id_loc++= *loc++;
 
5720
else if(*loc=='^'&&*(loc+1)=='^')
4975
5721
{
4976
5722
*id_loc++= *loc++;*id_loc++= *loc++;
4977
5723
}
4978
5724
 
4979
 
if(*loc==0100)
4980
 
if(*(loc+1)==0100)loc++;
 
5725
if(*loc=='@')
 
5726
if(*(loc+1)=='@')loc++;
4981
5727
else
4982
5728
err0_print(ERR_W,OC("You should say `@@"),0);
4983
5729
 
4990
5736
return constant;
4991
5737
}
4992
5738
 
 
5739
/* :142 */
 
5740
/* 143: */
 
5741
#line 3826 "./fweave.web"
4993
5742
 
4994
5743
 
4995
5744
int
4997
5746
{
4998
5747
int c;
4999
5748
 
5000
 
while(*id_first==0134)id_first++;
 
5749
while(*id_first=='\\')id_first++;
5001
5750
 
5002
 
if(*id_first==0136&&*(id_first+1)==0136)
 
5751
if(*id_first=='^'&&*(id_first+1)=='^')
5003
5752
{
5004
5753
c= *(id_first+2);
5005
5754
if(c>=64)c-= 64;
5010
5759
return c;
5011
5760
}
5012
5761
 
 
5762
/* :143 */
 
5763
/* 150: */
 
5764
#line 4149 "./fweave.web"
5013
5765
 
5014
5766
 
5015
5767
int
5099
5851
return status;
5100
5852
}
5101
5853
 
 
5854
/* :150 */
 
5855
/* 151: */
 
5856
#line 4239 "./fweave.web"
5102
5857
 
5103
5858
int
5104
5859
mod_warn FCN((p,msg))
5117
5872
return YES;
5118
5873
}
5119
5874
 
 
5875
/* :151 */
 
5876
/* 155: */
 
5877
#line 4310 "./fweave.web"
5120
5878
 
5121
5879
 
5122
5880
SRTN
5135
5893
 
5136
5894
 
5137
5895
if(!per_cent)
5138
 
while(j>out_buf&&*j==040)
 
5896
while(j>out_buf&&*j==' ')
5139
5897
j--;
5140
5898
 
5141
5899
ASCII_LINE_WRITE(j-out_buf);
5143
5901
if(per_cent)
5144
5902
TEX_PUTXCHAR('%');
5145
5903
 
5146
 
if(*b!=012)
 
5904
if(*b!='\n')
5147
5905
TEX_NEW_LINE;
5148
5906
 
5149
5907
out_line++;
5150
5908
 
5151
5909
if(b<out_ptr)
5152
5910
{
5153
 
if(*out_start==045)
 
5911
if(*out_start=='%')
5154
5912
out_start++;
5155
5913
 
5156
5914
STRNCPY(out_start,b+1,PTR_DIFF(size_t,out_ptr,b));
5162
5920
out_ptr= out_buf;
5163
5921
}
5164
5922
 
 
5923
/* :155 */
 
5924
/* 156: */
 
5925
#line 4363 "./fweave.web"
5165
5926
 
5166
5927
 
5167
5928
SRTN
5175
5936
{
5176
5937
 
5177
5938
for(k= cur_buffer;k<=limit;k++)
5178
 
if(*k!=040&&*k!=tab_mark)
 
5939
if(*k!=' '&&*k!=tab_mark)
5179
5940
return;
5180
5941
 
5181
5942
flush_buffer(out_buf,NO);
5182
5943
}
5183
5944
}
5184
5945
 
 
5946
/* :156 */
 
5947
/* 159: */
 
5948
#line 4434 "./fweave.web"
5185
5949
 
5186
5950
 
5187
5951
SRTN
5219
5983
out(XORD(*s++));
5220
5984
}
5221
5985
 
 
5986
/* :159 */
 
5987
/* 160: */
 
5988
#line 4473 "./fweave.web"
5222
5989
 
5223
5990
 
5224
5991
SRTN
5233
6000
 
5234
6001
switch(a)
5235
6002
{
5236
 
 
5237
 
 
5238
 
 
5239
 
 
5240
 
case 0134:case 0173:case 0175
5241
 
 
5242
 
:
5243
 
 
5244
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
5245
 
case 0176:case 046:case 0137
5246
 
 
5247
 
 
5248
 
 
5249
 
:
5250
 
out(0134);
 
6003
/* 223: */
 
6004
#line 6548 "./fweave.web"
 
6005
 
 
6006
 
 
6007
/* 224: */
 
6008
#line 6554 "./fweave.web"
 
6009
 
 
6010
 
 
6011
case '\\':case '{':case '}'
 
6012
 
 
6013
/* :224 */
 
6014
#line 6550 "./fweave.web"
 
6015
:
 
6016
/* 225: */
 
6017
#line 6559 "./fweave.web"
 
6018
 
 
6019
case ' ':case '#':case '%':case '$':case '^':case '`':
 
6020
case '~':case '&':case '_'
 
6021
 
 
6022
/* :225 */
 
6023
#line 6551 "./fweave.web"
 
6024
 
 
6025
 
 
6026
/* :223 */
 
6027
#line 4487 "./fweave.web"
 
6028
:
 
6029
out('\\');
5251
6030
break;
5252
6031
}
5253
6032
out(a);
5254
6033
}
5255
6034
}
5256
6035
 
 
6036
/* :160 */
 
6037
/* 161: */
 
6038
#line 4496 "./fweave.web"
5257
6039
 
5258
6040
 
5259
6041
SRTN
5264
6046
{
5265
6047
switch(*s)
5266
6048
{
5267
 
 
5268
 
 
5269
 
 
5270
 
 
5271
 
case 0134:case 0173:case 0175
5272
 
 
5273
 
:
5274
 
 
5275
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
5276
 
case 0176:case 046:case 0137
5277
 
 
5278
 
 
5279
 
 
5280
 
:
5281
 
out(0134);
 
6049
/* 223: */
 
6050
#line 6548 "./fweave.web"
 
6051
 
 
6052
 
 
6053
/* 224: */
 
6054
#line 6554 "./fweave.web"
 
6055
 
 
6056
 
 
6057
case '\\':case '{':case '}'
 
6058
 
 
6059
/* :224 */
 
6060
#line 6550 "./fweave.web"
 
6061
:
 
6062
/* 225: */
 
6063
#line 6559 "./fweave.web"
 
6064
 
 
6065
case ' ':case '#':case '%':case '$':case '^':case '`':
 
6066
case '~':case '&':case '_'
 
6067
 
 
6068
/* :225 */
 
6069
#line 6551 "./fweave.web"
 
6070
 
 
6071
 
 
6072
/* :223 */
 
6073
#line 4506 "./fweave.web"
 
6074
:
 
6075
out('\\');
5282
6076
break;
5283
6077
}
5284
6078
out(*s++);
5285
6079
}
5286
6080
}
5287
6081
 
 
6082
/* :161 */
 
6083
/* 163: */
 
6084
#line 4526 "./fweave.web"
5288
6085
 
5289
6086
 
5290
6087
SRTN
5291
6088
break_out(VOID)
5292
6089
{
5293
6090
ASCII HUGE*k= out_ptr;
5294
 
boolean is_tex_comment= BOOLEAN(*(out_buf+1)==045);
 
6091
boolean is_tex_comment= BOOLEAN(*(out_buf+1)=='%');
5295
6092
 
5296
6093
if(nuweb_mode)
5297
6094
WHILE()
5298
6095
{
5299
6096
if(k==out_buf)
 
6097
/* 164: */
 
6098
#line 4587 "./fweave.web"
5300
6099
 
5301
6100
{
5302
6101
SET_COLOR(warning);
5309
6108
return;
5310
6109
}
5311
6110
 
 
6111
/* :164 */
 
6112
#line 4538 "./fweave.web"
5312
6113
;
5313
6114
 
5314
6115
if(STRNCMP(k,"\\WEM ",4)==0)
5317
6118
break;
5318
6119
}
5319
6120
 
5320
 
if(*(k--)==012)
 
6121
if(*(k--)=='\n')
5321
6122
{
5322
6123
flush_buffer(++k,NO);
5323
6124
break;
5327
6128
WHILE()
5328
6129
{
5329
6130
if(k==out_buf)
 
6131
/* 164: */
 
6132
#line 4587 "./fweave.web"
5330
6133
 
5331
6134
{
5332
6135
SET_COLOR(warning);
5339
6142
return;
5340
6143
}
5341
6144
 
 
6145
/* :164 */
 
6146
#line 4556 "./fweave.web"
5342
6147
;
5343
6148
 
5344
 
if(*k==040)
5345
 
{
5346
 
flush_buffer(k,NO);
5347
 
break;
5348
 
}
5349
 
 
5350
 
if(*k==012&&k[-1]!=012)
5351
 
{
5352
 
*k= 045;
5353
 
flush_buffer(k,NO);
5354
 
break;
5355
 
}
5356
 
 
5357
 
if(*(k--)==0134&&*k!=0134&&*k!=012)
 
6149
if(*k==' ')
 
6150
{
 
6151
flush_buffer(k,NO);
 
6152
break;
 
6153
}
 
6154
 
 
6155
if(*k=='\n'&&k[-1]!='\n')
 
6156
{
 
6157
*k= '%';
 
6158
flush_buffer(k,NO);
 
6159
break;
 
6160
}
 
6161
 
 
6162
if(*(k--)=='\\'&&*k!='\\'&&*k!='\n')
5358
6163
{
5359
6164
flush_buffer(k,YES);
5360
6165
break;
5362
6167
}
5363
6168
 
5364
6169
if(is_tex_comment)
5365
 
*(++out_ptr)= 045;
 
6170
*(++out_ptr)= '%';
5366
6171
}
5367
6172
 
 
6173
/* :163 */
 
6174
/* 165: */
 
6175
#line 4604 "./fweave.web"
5368
6176
 
5369
6177
 
5370
6178
SRTN
5400
6208
}
5401
6209
}
5402
6210
 
 
6211
/* :165 */
 
6212
/* 166: */
 
6213
#line 4647 "./fweave.web"
5403
6214
 
5404
6215
 
5405
6216
SRTN
5419
6230
multi_char= BOOLEAN(k_end-p->byte_start>1);
5420
6231
 
5421
6232
if(multi_char&&surround)
5422
 
out(0173);
 
6233
out('{');
5423
6234
 
5424
 
non_TeX_macro= BOOLEAN(is_id&&*p->byte_start==0134&&language!=TEX);
 
6235
non_TeX_macro= BOOLEAN(is_id&&*p->byte_start=='\\'&&language!=TEX);
5425
6236
 
5426
6237
if(non_TeX_macro)
5427
 
out(044);
 
6238
out('$');
5428
6239
 
5429
6240
 
5430
6241
for(k= p->byte_start;k<k_end;k++)
5432
6243
if(is_id)
5433
6244
switch(*k)
5434
6245
{
5435
 
case 0134:
5436
 
case 0173:case 0175:
 
6246
case '\\':
 
6247
case '{':case '}':
5437
6248
 
5438
6249
 
5439
6250
 
5441
6252
if(non_TeX_macro)
5442
6253
break;
5443
6254
 
5444
 
 
5445
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
5446
 
case 0176:case 046:case 0137
5447
 
 
 
6255
/* 225: */
 
6256
#line 6559 "./fweave.web"
 
6257
 
 
6258
case ' ':case '#':case '%':case '$':case '^':case '`':
 
6259
case '~':case '&':case '_'
 
6260
 
 
6261
/* :225 */
 
6262
#line 4688 "./fweave.web"
5448
6263
:
5449
 
out(0134);
 
6264
out('\\');
5450
6265
}
5451
6266
 
5452
6267
out(*k);
5453
6268
}
5454
6269
 
5455
6270
if(non_TeX_macro)
5456
 
out(044);
 
6271
out('$');
5457
6272
 
5458
6273
if(multi_char&&surround)
5459
 
out(0175);
 
6274
out('}');
5460
6275
 
5461
6276
if(m_temp&&makeindex)
5462
6277
{
5467
6282
}
5468
6283
 
5469
6284
if(p->wv_macro)
 
6285
/* 167: */
 
6286
#line 4727 "./fweave.web"
5470
6287
 
5471
6288
{
5472
6289
WV_MACRO HUGE*w= p->wv_macro;
5477
6294
while(*s)
5478
6295
out(*s++);
5479
6296
 
5480
 
out(0175);
 
6297
out('}');
5481
6298
}
5482
6299
 
 
6300
/* :167 */
 
6301
#line 4710 "./fweave.web"
5483
6302
 
5484
6303
 
5485
6304
 
5496
6315
}
5497
6316
}
5498
6317
 
 
6318
/* :166 */
 
6319
#line 43 "./fweave.web"
5499
6320
 
5500
6321
#endif 
5501
6322
 
5502
6323
#if(part == 0 || part == 2)
 
6324
/* 169: */
 
6325
#line 4763 "./fweave.web"
5503
6326
 
5504
6327
 
5505
6328
SRTN
5507
6330
{
5508
6331
ASCII c;
5509
6332
 
 
6333
/* 170: */
 
6334
#line 4831 "./fweave.web"
5510
6335
 
5511
6336
{
5512
6337
int k;
5535
6360
OP_INFO HUGE*q= p->info+k;
5536
6361
 
5537
6362
if(q->overloaded)
 
6363
/* 171: */
 
6364
#line 4870 "./fweave.web"
5538
6365
 
5539
6366
{
5540
6367
#define TEMP_LEN 1000
5565
6392
#undef TEMP_LEN
5566
6393
}
5567
6394
 
 
6395
/* :171 */
 
6396
#line 4859 "./fweave.web"
5568
6397
 
5569
6398
}
5570
6399
 
5572
6401
}
5573
6402
}
5574
6403
 
 
6404
/* :170 */
 
6405
#line 4770 "./fweave.web"
5575
6406
 
 
6407
/* 172: */
 
6408
#line 4901 "./fweave.web"
5576
6409
 
5577
6410
{
5578
6411
text_pointer t= tok_start+1;
5603
6436
flush_buffer(out_ptr,NO);
5604
6437
}
5605
6438
 
 
6439
/* 53: */
 
6440
#line 405 "./fweave.web"
5606
6441
 
5607
6442
{
5608
6443
tok_ptr= tok_mem+1;
5610
6445
text_ptr= tok_start+1;
5611
6446
}
5612
6447
 
 
6448
/* :53 */
 
6449
#line 4931 "./fweave.web"
5613
6450
 
5614
6451
}
5615
6452
 
 
6453
/* :172 */
 
6454
#line 4771 "./fweave.web"
5616
6455
 
5617
6456
 
5618
6457
OUT_STR("\n% --- Beginning of user's limbo section ---");
5623
6462
if(loc>limit&&(fin_line(),!get_line()))
5624
6463
break;
5625
6464
 
5626
 
*(limit+1)= 0100;
 
6465
*(limit+1)= '@';
5627
6466
 
5628
 
while(*loc!=0100)
 
6467
while(*loc!='@')
5629
6468
out(*(loc++));
5630
6469
 
5631
6470
if(loc++<=limit)
5635
6474
if(ccode[c]==new_module)
5636
6475
break;
5637
6476
 
5638
 
if(c!=0172&&c!=0132)
 
6477
if(c!='z'&&c!='Z')
5639
6478
switch(ccode[c])
5640
6479
{
5641
 
 
5642
 
 
 
6480
/* 62: */
 
6481
#line 803 "./fweave.web"
 
6482
 
 
6483
 
 
6484
/* 9: */
 
6485
#line 80 "./typedefs.hweb"
5643
6486
 
5644
6487
 
5645
6488
case begin_C:
5649
6492
 
5650
6493
 
5651
6494
 
 
6495
/* :9 */
 
6496
#line 805 "./fweave.web"
5652
6497
:
5653
6498
loc--;
5654
6499
 
5655
6500
 
5656
6501
case L_switch:
 
6502
/* 63: */
 
6503
#line 821 "./fweave.web"
5657
6504
 
5658
6505
{
 
6506
/* 20: */
 
6507
#line 139 "./typedefs.hweb"
5659
6508
 
5660
6509
{
5661
6510
ASCII l= *loc++;
5662
6511
 
5663
6512
switch(l)
5664
6513
{
5665
 
 
5666
 
case 0143
5667
 
 
5668
 
:
5669
 
Cpp= BOOLEAN(*loc==053);
5670
 
break;
5671
 
 
5672
 
 
5673
 
case 0162
5674
 
 
5675
 
:
5676
 
 
5677
 
case 0156
5678
 
 
5679
 
:
5680
 
Fortran88= BOOLEAN(*loc==071);
5681
 
break;
5682
 
 
5683
 
 
5684
 
case 0166
5685
 
 
5686
 
 
5687
 
 
5688
 
:
5689
 
 
5690
 
case 0170
5691
 
 
 
6514
/* 10: */
 
6515
#line 95 "./typedefs.hweb"
 
6516
 
 
6517
case 'c'
 
6518
 
 
6519
/* :10 */
 
6520
#line 145 "./typedefs.hweb"
 
6521
:
 
6522
Cpp= BOOLEAN(*loc=='+');
 
6523
break;
 
6524
 
 
6525
/* 11: */
 
6526
#line 98 "./typedefs.hweb"
 
6527
 
 
6528
case 'r'
 
6529
 
 
6530
/* :11 */
 
6531
#line 149 "./typedefs.hweb"
 
6532
:
 
6533
/* 12: */
 
6534
#line 101 "./typedefs.hweb"
 
6535
 
 
6536
case 'n'
 
6537
 
 
6538
/* :12 */
 
6539
#line 150 "./typedefs.hweb"
 
6540
:
 
6541
Fortran88= BOOLEAN(*loc=='9');
 
6542
break;
 
6543
 
 
6544
/* 14: */
 
6545
#line 107 "./typedefs.hweb"
 
6546
 
 
6547
case 'v'
 
6548
 
 
6549
 
 
6550
 
 
6551
/* :14 */
 
6552
#line 154 "./typedefs.hweb"
 
6553
:
 
6554
/* 13: */
 
6555
#line 104 "./typedefs.hweb"
 
6556
 
 
6557
case 'x'
 
6558
 
 
6559
/* :13 */
 
6560
#line 155 "./typedefs.hweb"
5692
6561
:
5693
6562
break;
5694
6563
 
5703
6572
}
5704
6573
 
5705
6574
 
 
6575
/* :20 */
 
6576
#line 823 "./fweave.web"
5706
6577
 
5707
6578
 
5708
6579
if(module_count==0)
5709
6580
global_params= params;
5710
6581
 
5711
6582
ini0_language();
 
6583
/* 308: */
 
6584
#line 8966 "./fweave.web"
5712
6585
 
5713
6586
 
5714
6587
if(Fortran88&&(auto_semi&&!free_Fortran))
5718
6591
}
5719
6592
 
5720
6593
 
 
6594
/* :308 */
 
6595
#line 829 "./fweave.web"
5721
6596
 
5722
6597
}
5723
6598
 
 
6599
/* :63 */
 
6600
#line 810 "./fweave.web"
5724
6601
 
5725
6602
break;
5726
6603
 
5731
6608
global_params= params;
5732
6609
break;
5733
6610
 
 
6611
/* :62 */
 
6612
#line 4796 "./fweave.web"
5734
6613
 
5735
6614
 
5736
6615
case toggle_output:
5741
6620
loc= limit+1;
5742
6621
break;
5743
6622
 
5744
 
case 0100:
5745
 
out(0100);
 
6623
case '@':
 
6624
out('@');
5746
6625
break;
5747
6626
 
5748
6627
case keyword_name:
5749
6628
loc-= 2;get_next();
 
6629
/* 229: */
 
6630
#line 6647 "./fweave.web"
5750
6631
 
5751
6632
{
5752
6633
ASCII*id_start,*id_end;
5753
6634
 
 
6635
/* 230: */
 
6636
#line 6662 "./fweave.web"
5754
6637
 
5755
6638
{
5756
6639
while(IS_WHITE(*id_first))
5760
6643
id_loc--;
5761
6644
}
5762
6645
 
 
6646
/* :230 */
 
6647
#line 6651 "./fweave.web"
5763
6648
 
5764
6649
 
5765
6650
id_start= id_end= mod_text+1;
5770
6655
out_del_str(id_start,id_end);
5771
6656
}
5772
6657
 
 
6658
/* :229 */
 
6659
#line 4812 "./fweave.web"
5773
6660
 
5774
6661
break;
5775
6662
 
5782
6669
}
5783
6670
}
5784
6671
 
 
6672
/* 173: */
 
6673
#line 4935 "./fweave.web"
5785
6674
 
5786
6675
{
5787
6676
if(*w_style.misc.limbo_end)
5794
6683
}
5795
6684
}
5796
6685
 
 
6686
/* :173 */
 
6687
#line 4823 "./fweave.web"
5797
6688
 
5798
6689
}
5799
6690
 
 
6691
/* :169 */
 
6692
/* 181: */
 
6693
#line 5027 "./fweave.web"
5800
6694
 
5801
6695
eight_bits
5802
6696
copy_TeX(VOID)
5807
6701
{
5808
6702
if(loc>limit)
5809
6703
{
 
6704
/* 182: */
 
6705
#line 5095 "./fweave.web"
5810
6706
 
5811
6707
{
5812
6708
ASCII HUGE*b;
5813
6709
 
5814
6710
for(b= out_buf+1;b<=out_ptr;b++)
5815
 
if(*b!=040)
 
6711
if(*b!=' ')
5816
6712
break;
5817
6713
 
5818
6714
if(b>out_ptr)
5819
6715
out_ptr= out_buf;
5820
6716
}
5821
6717
 
 
6718
/* :182 */
 
6719
#line 5038 "./fweave.web"
5822
6720
 
5823
6721
fin_line();
5824
6722
 
5826
6724
return new_module;
5827
6725
}
5828
6726
 
5829
 
*(limit+1)= 0100;
 
6727
*(limit+1)= '@';
5830
6728
 
5831
6729
scan:
5832
 
while((c= *(loc++))!=0174&&c!=0100)
 
6730
while((c= *(loc++))!='|'&&c!='@')
5833
6731
{
5834
6732
if(c==interior_semi)
5835
 
c= 073;
 
6733
c= ';';
5836
6734
out(c);
5837
6735
 
5838
6736
#if(0)
5839
 
if(out_ptr==out_buf+1&&(c==040
 
6737
if(out_ptr==out_buf+1&&(c==' '
5840
6738
||c==tab_mark
5841
6739
))out_ptr--;
5842
6740
#endif
5843
6741
}
5844
6742
 
5845
 
if(c==0174)
5846
 
return 0174;
 
6743
if(c=='|')
 
6744
return '|';
5847
6745
 
5848
6746
if(loc<=limit)
5849
6747
{
5850
6748
eight_bits cc;
5851
6749
 
5852
 
if(*loc==0100)
 
6750
if(*loc=='@')
5853
6751
{
5854
 
out(0100);
 
6752
out('@');
5855
6753
loc++;
5856
6754
goto scan;
5857
6755
}
5858
6756
 
 
6757
/* 182: */
 
6758
#line 5095 "./fweave.web"
5859
6759
 
5860
6760
{
5861
6761
ASCII HUGE*b;
5862
6762
 
5863
6763
for(b= out_buf+1;b<=out_ptr;b++)
5864
 
if(*b!=040)
 
6764
if(*b!=' ')
5865
6765
break;
5866
6766
 
5867
6767
if(b>out_ptr)
5868
6768
out_ptr= out_buf;
5869
6769
}
5870
6770
 
 
6771
/* :182 */
 
6772
#line 5075 "./fweave.web"
5871
6773
 
5872
6774
 
5873
6775
SET_CASE(*loc);
5878
6780
if(loc>=limit)
5879
6781
return cc;
5880
6782
 
 
6783
/* 32: */
 
6784
#line 399 "./typedefs.hweb"
5881
6785
 
5882
6786
{
5883
6787
boolean mcode;
5890
6794
 
5891
6795
if((mcode= is_mcmd(mcmds,id_first,loc))!=0)
5892
6796
{
5893
 
while(loc<limit&&(*loc==040||*loc==tab_mark))
 
6797
while(loc<limit&&(*loc==' '||*loc==tab_mark))
5894
6798
loc++;
5895
6799
 
5896
6800
#ifdef _FWEAVE_h
5904
6808
}
5905
6809
 
5906
6810
 
 
6811
/* :32 */
 
6812
#line 5085 "./fweave.web"
5907
6813
;
5908
6814
return cc;
5909
6815
}
5912
6818
DUMMY_RETURN(ignore);
5913
6819
}
5914
6820
 
 
6821
/* :181 */
 
6822
/* 184: */
 
6823
#line 5126 "./fweave.web"
5915
6824
 
5916
6825
 
5917
6826
int
5926
6835
 
5927
6836
terminator[0]= *limit;terminator[1]= *(limit+1);
5928
6837
 
5929
 
*limit= 040;
 
6838
*limit= ' ';
5930
6839
 
5931
6840
 
5932
6841
 
5941
6850
WHILE()
5942
6851
{
5943
6852
if(loc>limit)
 
6853
/* 185: */
 
6854
#line 5194 "./fweave.web"
5944
6855
 
5945
6856
{
5946
6857
if(!(long_comment||language==TEX))
5947
6858
{
5948
 
if((auto_semi&&!free_Fortran)&&*(tok_ptr-2)==073
5949
 
&&*(tok_ptr-1)==040)
5950
 
tok_ptr-= 2;
5951
 
 
5952
 
 
5953
 
while(*(tok_ptr-1)==040)
5954
 
tok_ptr--;
5955
 
 
5956
 
 
5957
 
if(*(tok_ptr-1)==0134&&*(tok_ptr-2)!=0134)
5958
 
tok_ptr--;
5959
 
 
5960
 
 
5961
 
if(*(tok_ptr-2)==052&&*(tok_ptr-1)==057)
5962
 
tok_ptr-= 2;
5963
 
 
 
6859
if((auto_semi&&!free_Fortran)&&*(tok_ptr-2)==';'
 
6860
&&*(tok_ptr-1)==' ')
 
6861
tok_ptr-= 2;
 
6862
 
 
6863
 
 
6864
while(*(tok_ptr-1)==' ')
 
6865
tok_ptr--;
 
6866
 
 
6867
 
 
6868
if(*(tok_ptr-1)=='\\'&&*(tok_ptr-2)!='\\')
 
6869
tok_ptr--;
 
6870
 
 
6871
 
 
6872
if(*(tok_ptr-2)=='*'&&*(tok_ptr-1)=='/')
 
6873
tok_ptr-= 2;
 
6874
 
 
6875
/* 187: */
 
6876
#line 5286 "./fweave.web"
5964
6877
 
5965
6878
 
5966
6879
if(bal==1)
5967
6880
{
5968
6881
if(phase==2)
5969
6882
{
5970
 
if(language==TEX)
 
6883
if(language==TEX)/* 188: */
 
6884
#line 5306 "./fweave.web"
 
6885
 
5971
6886
{
5972
6887
token_pointer t;
5973
6888
 
5974
6889
for(t= tok_ptr-1;t>tok_ptr0;t--)
5975
 
if(*t!=040)break;
 
6890
if(*t!=' ')break;
5976
6891
 
5977
 
if(t==tok_ptr0&&*(t-4)==0134&&*(t-3)==0127&&*(t-2)==0103&&
5978
 
*(t-1)==0173)
5979
 
*(tok_ptr0-2)= 0170;
 
6892
if(t==tok_ptr0&&*(t-4)=='\\'&&*(t-3)=='W'&&*(t-2)=='C'&&
 
6893
*(t-1)=='{')
 
6894
*(tok_ptr0-2)= 'x';
5980
6895
}
5981
6896
 
5982
6897
 
 
6898
/* :188 */
 
6899
#line 5292 "./fweave.web"
5983
6900
 
5984
 
app_tok(0175);
 
6901
app_tok('}');
5985
6902
}
5986
6903
bal= 0;
5987
6904
break;
5991
6908
 
5992
6909
err0_print(ERR_W,OC("Braces don't balance in comment"),0);
5993
6910
 
5994
 
 
5995
 
 
5996
 
app_tok(040);
5997
 
 
5998
 
while(bal-->0)app_tok(0175);
 
6911
/* 190: */
 
6912
#line 5346 "./fweave.web"
 
6913
 
 
6914
 
 
6915
app_tok(' ');
 
6916
 
 
6917
while(bal-->0)app_tok('}');
5999
6918
 
6000
6919
bal= 0;
6001
6920
break;
6002
6921
 
 
6922
#line 8 "./scraps.hweb"
6003
6923
 
 
6924
/* :190 */
 
6925
#line 5302 "./fweave.web"
6004
6926
;
6005
6927
}
6006
6928
 
 
6929
/* :187 */
 
6930
#line 5214 "./fweave.web"
6007
6931
 
6008
6932
}
6009
6933
 
6013
6937
 
6014
6938
err0_print(ERR_W,OC("Input ended in mid-comment"),0);
6015
6939
 
6016
 
loc= cur_buffer+1;
6017
 
 
6018
 
app_tok(040);
6019
 
 
6020
 
while(bal-->0)app_tok(0175);
 
6940
loc= cur_buffer+1;/* 190: */
 
6941
#line 5346 "./fweave.web"
 
6942
 
 
6943
 
 
6944
app_tok(' ');
 
6945
 
 
6946
while(bal-->0)app_tok('}');
6021
6947
 
6022
6948
bal= 0;
6023
6949
break;
6024
6950
 
 
6951
#line 8 "./scraps.hweb"
6025
6952
 
 
6953
/* :190 */
 
6954
#line 5222 "./fweave.web"
6026
6955
;
6027
6956
}
6028
6957
 
6030
6959
 
6031
6960
if(language==TEX)
6032
6961
{
6033
 
if(loc==limit)
 
6962
if(loc==limit)/* 187: */
 
6963
#line 5286 "./fweave.web"
 
6964
 
6034
6965
 
6035
6966
if(bal==1)
6036
6967
{
6037
6968
if(phase==2)
6038
6969
{
6039
 
if(language==TEX)
 
6970
if(language==TEX)/* 188: */
 
6971
#line 5306 "./fweave.web"
 
6972
 
6040
6973
{
6041
6974
token_pointer t;
6042
6975
 
6043
6976
for(t= tok_ptr-1;t>tok_ptr0;t--)
6044
 
if(*t!=040)break;
 
6977
if(*t!=' ')break;
6045
6978
 
6046
 
if(t==tok_ptr0&&*(t-4)==0134&&*(t-3)==0127&&*(t-2)==0103&&
6047
 
*(t-1)==0173)
6048
 
*(tok_ptr0-2)= 0170;
 
6979
if(t==tok_ptr0&&*(t-4)=='\\'&&*(t-3)=='W'&&*(t-2)=='C'&&
 
6980
*(t-1)=='{')
 
6981
*(tok_ptr0-2)= 'x';
6049
6982
}
6050
6983
 
6051
6984
 
 
6985
/* :188 */
 
6986
#line 5292 "./fweave.web"
6052
6987
 
6053
 
app_tok(0175);
 
6988
app_tok('}');
6054
6989
}
6055
6990
bal= 0;
6056
6991
break;
6060
6995
 
6061
6996
err0_print(ERR_W,OC("Braces don't balance in comment"),0);
6062
6997
 
6063
 
 
6064
 
 
6065
 
app_tok(040);
6066
 
 
6067
 
while(bal-->0)app_tok(0175);
 
6998
/* 190: */
 
6999
#line 5346 "./fweave.web"
 
7000
 
 
7001
 
 
7002
app_tok(' ');
 
7003
 
 
7004
while(bal-->0)app_tok('}');
6068
7005
 
6069
7006
bal= 0;
6070
7007
break;
6071
7008
 
 
7009
#line 8 "./scraps.hweb"
6072
7010
 
 
7011
/* :190 */
 
7012
#line 5302 "./fweave.web"
6073
7013
;
6074
7014
}
6075
7015
 
 
7016
/* :187 */
 
7017
#line 5229 "./fweave.web"
6076
7018
 
6077
7019
 
6078
7020
for(;loc<=limit;loc++)
6079
 
if(*loc!=040&&*loc!=tab_mark)break;
 
7021
if(*loc!=' '&&*loc!=tab_mark)break;
6080
7022
 
6081
7023
if(loc>limit)continue;
6082
7024
 
6084
7026
else
6085
7027
{
6086
7028
loc= cur_buffer;
 
7029
/* 187: */
 
7030
#line 5286 "./fweave.web"
6087
7031
 
6088
7032
 
6089
7033
if(bal==1)
6090
7034
{
6091
7035
if(phase==2)
6092
7036
{
6093
 
if(language==TEX)
 
7037
if(language==TEX)/* 188: */
 
7038
#line 5306 "./fweave.web"
 
7039
 
6094
7040
{
6095
7041
token_pointer t;
6096
7042
 
6097
7043
for(t= tok_ptr-1;t>tok_ptr0;t--)
6098
 
if(*t!=040)break;
 
7044
if(*t!=' ')break;
6099
7045
 
6100
 
if(t==tok_ptr0&&*(t-4)==0134&&*(t-3)==0127&&*(t-2)==0103&&
6101
 
*(t-1)==0173)
6102
 
*(tok_ptr0-2)= 0170;
 
7046
if(t==tok_ptr0&&*(t-4)=='\\'&&*(t-3)=='W'&&*(t-2)=='C'&&
 
7047
*(t-1)=='{')
 
7048
*(tok_ptr0-2)= 'x';
6103
7049
}
6104
7050
 
6105
7051
 
 
7052
/* :188 */
 
7053
#line 5292 "./fweave.web"
6106
7054
 
6107
 
app_tok(0175);
 
7055
app_tok('}');
6108
7056
}
6109
7057
bal= 0;
6110
7058
break;
6114
7062
 
6115
7063
err0_print(ERR_W,OC("Braces don't balance in comment"),0);
6116
7064
 
6117
 
 
6118
 
 
6119
 
app_tok(040);
6120
 
 
6121
 
while(bal-->0)app_tok(0175);
 
7065
/* 190: */
 
7066
#line 5346 "./fweave.web"
 
7067
 
 
7068
 
 
7069
app_tok(' ');
 
7070
 
 
7071
while(bal-->0)app_tok('}');
6122
7072
 
6123
7073
bal= 0;
6124
7074
break;
6125
7075
 
 
7076
#line 8 "./scraps.hweb"
6126
7077
 
 
7078
/* :190 */
 
7079
#line 5302 "./fweave.web"
6127
7080
;
6128
7081
}
6129
7082
 
6130
 
 
6131
 
}
6132
 
}
6133
 
}
6134
 
 
 
7083
/* :187 */
 
7084
#line 5240 "./fweave.web"
 
7085
 
 
7086
}
 
7087
}
 
7088
}
 
7089
 
 
7090
/* :185 */
 
7091
#line 5155 "./fweave.web"
6135
7092
 
6136
7093
 
6137
7094
 
6141
7098
c= *(loc++);
6142
7099
while(c==tab_mark);
6143
7100
 
6144
 
if(c==0174)break;
 
7101
if(c=='|')break;
6145
7102
 
6146
 
if(c==052&&*loc==057&&long_comment)
 
7103
if(c=='*'&&*loc=='/'&&long_comment)
6147
7104
{
6148
7105
loc++;
6149
7106
 
 
7107
/* 187: */
 
7108
#line 5286 "./fweave.web"
6150
7109
 
6151
7110
 
6152
7111
if(bal==1)
6153
7112
{
6154
7113
if(phase==2)
6155
7114
{
6156
 
if(language==TEX)
 
7115
if(language==TEX)/* 188: */
 
7116
#line 5306 "./fweave.web"
 
7117
 
6157
7118
{
6158
7119
token_pointer t;
6159
7120
 
6160
7121
for(t= tok_ptr-1;t>tok_ptr0;t--)
6161
 
if(*t!=040)break;
 
7122
if(*t!=' ')break;
6162
7123
 
6163
 
if(t==tok_ptr0&&*(t-4)==0134&&*(t-3)==0127&&*(t-2)==0103&&
6164
 
*(t-1)==0173)
6165
 
*(tok_ptr0-2)= 0170;
 
7124
if(t==tok_ptr0&&*(t-4)=='\\'&&*(t-3)=='W'&&*(t-2)=='C'&&
 
7125
*(t-1)=='{')
 
7126
*(tok_ptr0-2)= 'x';
6166
7127
}
6167
7128
 
6168
7129
 
 
7130
/* :188 */
 
7131
#line 5292 "./fweave.web"
6169
7132
 
6170
 
app_tok(0175);
 
7133
app_tok('}');
6171
7134
}
6172
7135
bal= 0;
6173
7136
break;
6177
7140
 
6178
7141
err0_print(ERR_W,OC("Braces don't balance in comment"),0);
6179
7142
 
6180
 
 
6181
 
 
6182
 
app_tok(040);
6183
 
 
6184
 
while(bal-->0)app_tok(0175);
 
7143
/* 190: */
 
7144
#line 5346 "./fweave.web"
 
7145
 
 
7146
 
 
7147
app_tok(' ');
 
7148
 
 
7149
while(bal-->0)app_tok('}');
6185
7150
 
6186
7151
bal= 0;
6187
7152
break;
6188
7153
 
 
7154
#line 8 "./scraps.hweb"
6189
7155
 
 
7156
/* :190 */
 
7157
#line 5302 "./fweave.web"
6190
7158
;
6191
7159
}
6192
7160
 
 
7161
/* :187 */
 
7162
#line 5170 "./fweave.web"
6193
7163
;
6194
7164
}
6195
7165
 
6196
7166
 
6197
7167
 
6198
7168
if(phase==2)
 
7169
/* 186: */
 
7170
#line 5248 "./fweave.web"
6199
7171
 
6200
7172
switch(c)
6201
7173
{
6203
7175
if(language==TEX)
6204
7176
APP_STR("\\quad ");
6205
7177
else
6206
 
app_tok(040);
 
7178
app_tok(' ');
6207
7179
 
6208
7180
break;
6209
7181
 
6210
7182
case interior_semi:
6211
 
app_tok(073);
 
7183
app_tok(';');
6212
7184
break;
6213
7185
 
6214
 
case 045:
 
7186
case '%':
6215
7187
if(language==TEX)
6216
 
app_tok(0134);
 
7188
app_tok('\\');
6217
7189
 
6218
7190
app_tok(c);
6219
7191
break;
6224
7196
if(doing_cdir)
6225
7197
switch(c)
6226
7198
{
6227
 
 
6228
 
 
6229
 
 
6230
 
 
6231
 
case 0134:case 0173:case 0175
6232
 
 
6233
 
:
6234
 
 
6235
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
6236
 
case 0176:case 046:case 0137
6237
 
 
6238
 
 
6239
 
 
6240
 
:
6241
 
app_tok(0134);
 
7199
/* 223: */
 
7200
#line 6548 "./fweave.web"
 
7201
 
 
7202
 
 
7203
/* 224: */
 
7204
#line 6554 "./fweave.web"
 
7205
 
 
7206
 
 
7207
case '\\':case '{':case '}'
 
7208
 
 
7209
/* :224 */
 
7210
#line 6550 "./fweave.web"
 
7211
:
 
7212
/* 225: */
 
7213
#line 6559 "./fweave.web"
 
7214
 
 
7215
case ' ':case '#':case '%':case '$':case '^':case '`':
 
7216
case '~':case '&':case '_'
 
7217
 
 
7218
/* :225 */
 
7219
#line 6551 "./fweave.web"
 
7220
 
 
7221
 
 
7222
/* :223 */
 
7223
#line 5276 "./fweave.web"
 
7224
:
 
7225
app_tok('\\');
6242
7226
}
6243
7227
 
6244
7228
app_tok(c);
6245
7229
break;
6246
7230
}
6247
7231
 
6248
 
 
6249
 
 
6250
 
 
6251
 
 
6252
 
if(c==0100)
 
7232
/* :186 */
 
7233
#line 5176 "./fweave.web"
 
7234
 
 
7235
 
 
7236
/* 189: */
 
7237
#line 5320 "./fweave.web"
 
7238
 
 
7239
 
 
7240
if(c=='@')
6253
7241
{
6254
 
if(*(loc++)!=0100)
 
7242
if(*(loc++)!='@')
6255
7243
{
6256
7244
 
6257
7245
err0_print(ERR_W,OC("Illegal use of @ in comment"),0);
6261
7249
if(phase==2)
6262
7250
tok_ptr--;
6263
7251
 
6264
 
 
6265
 
 
6266
 
app_tok(040);
6267
 
 
6268
 
while(bal-->0)app_tok(0175);
 
7252
/* 190: */
 
7253
#line 5346 "./fweave.web"
 
7254
 
 
7255
 
 
7256
app_tok(' ');
 
7257
 
 
7258
while(bal-->0)app_tok('}');
6269
7259
 
6270
7260
bal= 0;
6271
7261
break;
6272
7262
 
 
7263
#line 8 "./scraps.hweb"
6273
7264
 
 
7265
/* :190 */
 
7266
#line 5333 "./fweave.web"
6274
7267
;
6275
7268
}
6276
7269
}
6277
 
else if(c==0134&&*loc!=0100&&phase==2)
 
7270
else if(c=='\\'&&*loc!='@'&&phase==2)
6278
7271
app_tok(*(loc++))
6279
 
else if(c==0173)
 
7272
else if(c=='{')
6280
7273
bal++;
6281
 
else if(c==0175)
 
7274
else if(c=='}')
6282
7275
bal--;
6283
7276
 
 
7277
/* :189 */
 
7278
#line 5178 "./fweave.web"
6284
7279
;
6285
7280
}
6286
7281
 
6289
7284
 
6290
7285
*limit= terminator[0];*(limit+1)= terminator[1];
6291
7286
 
6292
 
if(!long_comment&&*limit==0100&&loc>limit)
 
7287
if(!long_comment&&*limit=='@'&&loc>limit)
6293
7288
loc= limit;
6294
7289
 
6295
7290
in_comment= NO;
6296
7291
return bal;
6297
7292
}
6298
7293
 
 
7294
/* :184 */
 
7295
/* 199: */
 
7296
#line 5388 "./fweave.web"
6299
7297
 
6300
7298
 
6301
7299
SRTN
6320
7318
while(next_control<formatt)
6321
7319
{
6322
7320
if(nuweb_mode&&parsing_mode==INNER)
 
7321
/* 200: */
 
7322
#line 5443 "./fweave.web"
6323
7323
 
6324
7324
{
6325
7325
WHILE()
6329
7329
 
6330
7330
if(loc<limit)
6331
7331
{
6332
 
if(*loc==0174)
 
7332
if(*loc=='|')
6333
7333
{
6334
7334
next_control= *loc++;
6335
7335
break;
6342
7342
 
6343
7343
err0_print(ERR_W,OC("Missing '|'.  File ended while appending a \
6344
7344
verbatim scrap"),0);
6345
 
next_control= 0174;
 
7345
next_control= '|';
6346
7346
break;
6347
7347
}
6348
7348
else
6349
 
app(040);
 
7349
app(' ');
6350
7350
}
6351
7351
 
6352
7352
if(scrp_ptr==scrp_end)
6355
7355
app_scrap(ignore_scrap,no_math);
6356
7356
}
6357
7357
 
 
7358
/* :200 */
 
7359
#line 5412 "./fweave.web"
6358
7360
 
6359
7361
else
6360
7362
{
 
7363
/* 208: */
 
7364
#line 5747 "./fweave.web"
6361
7365
 
6362
7366
{
6363
7367
room_for(6,4,4);
6368
7372
switch(next_control)
6369
7373
 
6370
7374
{
6371
 
case macro_module_name:
 
7375
case macro_module_name:/* 311: */
 
7376
#line 9014 "./fweave.web"
 
7377
 
6372
7378
{
6373
7379
if(cur_module)
6374
7380
{
6378
7384
app_scrap(cur_module!=NULL?cur_module->mod_ilk:expr,maybe_math);
6379
7385
}
6380
7386
 
 
7387
/* :311 */
 
7388
#line 5757 "./fweave.web"
6381
7389
break;
6382
7390
 
6383
7391
case stmt_label:
6384
 
case stringg:case constant:case verbatim:
 
7392
case stringg:case constant:case verbatim:/* 220: */
 
7393
#line 6461 "./fweave.web"
 
7394
 
6385
7395
 
6386
7396
if(next_control==stmt_label&&!isDigit(*id_first))
6387
7397
{
6395
7405
APP_STR("\\WO{");
6396
7406
 
6397
7407
else if(next_control==stringg)
 
7408
/* 221: */
 
7409
#line 6489 "./fweave.web"
6398
7410
 
6399
7411
{
6400
7412
APP_STR(pfrmt->typewritr);
6401
 
app_tok(0173);
 
7413
app_tok('{');
6402
7414
}
6403
7415
 
 
7416
/* :221 */
 
7417
#line 6475 "./fweave.web"
6404
7418
 
6405
7419
 
6406
7420
else APP_STR("\\={");
6407
7421
 
6408
7422
 
 
7423
/* 222: */
 
7424
#line 6504 "./fweave.web"
6409
7425
 
6410
7426
{
6411
7427
app_tok(verbatim);
6415
7431
{
6416
7432
switch(*id_first)
6417
7433
{
6418
 
case 054:*id_first= 061;app(0134);break;
 
7434
case ',':*id_first= '1';app('\\');break;
6419
7435
 
6420
7436
case ordinary_space:
6421
 
*id_first= 062;app(0134);break;
 
7437
*id_first= '2';app('\\');break;
6422
7438
 
6423
7439
case tab_mark:
6424
 
*id_first= 063;app(0134);break;
6425
 
 
6426
 
case discretionary_break:*id_first= 060;
6427
 
 
6428
 
 
6429
 
 
6430
 
 
6431
 
 
6432
 
case 0134:case 0173:case 0175
6433
 
 
6434
 
:
6435
 
 
6436
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
6437
 
case 0176:case 046:case 0137
6438
 
 
6439
 
 
6440
 
 
6441
 
:
6442
 
app(0134);break;
6443
 
 
6444
 
case 0100:if(*(id_first+1)==0100)id_first++;
 
7440
*id_first= '3';app('\\');break;
 
7441
 
 
7442
case discretionary_break:*id_first= '0';
 
7443
 
 
7444
/* 223: */
 
7445
#line 6548 "./fweave.web"
 
7446
 
 
7447
 
 
7448
/* 224: */
 
7449
#line 6554 "./fweave.web"
 
7450
 
 
7451
 
 
7452
case '\\':case '{':case '}'
 
7453
 
 
7454
/* :224 */
 
7455
#line 6550 "./fweave.web"
 
7456
:
 
7457
/* 225: */
 
7458
#line 6559 "./fweave.web"
 
7459
 
 
7460
case ' ':case '#':case '%':case '$':case '^':case '`':
 
7461
case '~':case '&':case '_'
 
7462
 
 
7463
/* :225 */
 
7464
#line 6551 "./fweave.web"
 
7465
 
 
7466
 
 
7467
/* :223 */
 
7468
#line 6523 "./fweave.web"
 
7469
:
 
7470
app('\\');break;
 
7471
 
 
7472
case '@':if(*(id_first+1)=='@')id_first++;
6445
7473
else
6446
7474
err0_print(ERR_W,OC("Double %s@%s should be used in strings"),2,SSET_COLOR(character),SSET_COLOR(error));
6447
7475
 
6453
7481
 
6454
7482
app_tok(verbatim);
6455
7483
 
6456
 
app(0175);
 
7484
app('}');
6457
7485
}
6458
7486
 
 
7487
/* :222 */
 
7488
#line 6480 "./fweave.web"
6459
7489
 
6460
7490
 
6461
7491
if(next_control==stmt_label)
6464
7494
{app_scrap(expr,yes_math);}
6465
7495
}
6466
7496
 
 
7497
/* :220 */
 
7498
#line 5760 "./fweave.web"
6467
7499
;
6468
7500
break;
6469
7501
 
6470
7502
case begin_format_stmt:in_format= YES;
6471
 
case identifier:
 
7503
case identifier:/* 228: */
 
7504
#line 6579 "./fweave.web"
 
7505
 
6472
7506
{
6473
7507
p= id_lookup(id_first,id_loc,normal);
6474
7508
 
 
7509
/* :228 */
 
7510
/* 228: */
 
7511
#line 6595 "./fweave.web"
6475
7512
 
6476
7513
if(p->wv_macro)
6477
7514
{
6481
7518
if(w->cat)
6482
7519
{
6483
7520
APP_STR(pfrmt->id);
6484
 
app(0173);
 
7521
app('{');
6485
7522
}
6486
7523
 
6487
7524
while(*s)
6488
7525
app_tok(*s++);
6489
7526
 
6490
7527
if(w->cat)
6491
 
app(0175);
 
7528
app('}');
6492
7529
 
6493
7530
app_scrap(p->ilk?p->ilk:expr,w->cat?maybe_math:yes_math);
6494
7531
}
6523
7560
the_type= NO_TYPE;
6524
7561
}
6525
7562
 
 
7563
/* :228 */
 
7564
#line 5764 "./fweave.web"
6526
7565
;break;
6527
 
case TeX_string:
 
7566
case TeX_string:/* 226: */
 
7567
#line 6566 "./fweave.web"
 
7568
 
6528
7569
 
6529
7570
APP_STR("\\hbox{");while(id_first<id_loc)app_tok(*id_first++);
6530
 
app(0175);app_scrap(expr,maybe_math);
 
7571
app('}');app_scrap(expr,maybe_math);
6531
7572
 
 
7573
/* :226 */
 
7574
#line 5765 "./fweave.web"
6532
7575
;break;
6533
 
case begin_language:
 
7576
case begin_language:/* 216: */
 
7577
#line 6271 "./fweave.web"
 
7578
 
6534
7579
 
6535
7580
switch(language)
6536
7581
{
6547
7592
case FORTRAN_90:
6548
7593
case RATFOR:
6549
7594
case RATFOR_90:
6550
 
if(mode0==OUTER&&!free_form_input)
 
7595
if(mode0==OUTER&&!free_form_input)/* 309: */
 
7596
#line 8977 "./fweave.web"
 
7597
 
6551
7598
{
6552
7599
loc= limit+1;
6553
7600
chk_end= NO;
6554
7601
column_mode= YES;
6555
7602
}
6556
7603
 
 
7604
/* :309 */
 
7605
#line 6288 "./fweave.web"
6557
7606
 
6558
7607
break;
6559
7608
 
6560
7609
case TEX:
6561
 
if(mode0==OUTER)
 
7610
if(mode0==OUTER)/* 309: */
 
7611
#line 8977 "./fweave.web"
 
7612
 
6562
7613
{
6563
7614
loc= limit+1;
6564
7615
chk_end= NO;
6565
7616
column_mode= YES;
6566
7617
}
6567
7618
 
 
7619
/* :309 */
 
7620
#line 6292 "./fweave.web"
6568
7621
 
6569
7622
break;
6570
7623
 
6577
7630
set_language(language);
6578
7631
break
6579
7632
 
 
7633
/* :216 */
 
7634
#line 5766 "./fweave.web"
6580
7635
;break;
6581
7636
 
6582
 
case new_output_file:
 
7637
case new_output_file:/* 231: */
 
7638
#line 6672 "./fweave.web"
 
7639
 
6583
7640
{
6584
7641
APP_STR(upper_case_code?"\\WOut{":"\\Wout{");
6585
7642
 
6599
7656
while(*id_first)
6600
7657
app_tok(*id_first++);
6601
7658
 
6602
 
app(0175);
 
7659
app('}');
6603
7660
 
 
7661
#line 6695 "./fweave.web"
6604
7662
app(force);
6605
7663
 
6606
7664
app_scrap(ignore_scrap,no_math);
6612
7670
}
6613
7671
}
6614
7672
 
 
7673
/* :231 */
 
7674
#line 5768 "./fweave.web"
6615
7675
break;
6616
7676
 
6617
7677
case toggle_output:
 
7678
/* 176: */
 
7679
#line 4971 "./fweave.web"
6618
7680
 
6619
7681
{
6620
7682
static int outer_include_depth;
6634
7696
}
6635
7697
}
6636
7698
 
 
7699
/* :176 */
 
7700
#line 5771 "./fweave.web"
6637
7701
 
 
7702
/* 180: */
 
7703
#line 5007 "./fweave.web"
6638
7704
 
6639
7705
{
6640
7706
if(output_on)app(Turn_output_on);
6647
7713
app_scrap(ignore_scrap,no_math);
6648
7714
}
6649
7715
 
 
7716
/* :180 */
 
7717
#line 5772 "./fweave.web"
6650
7718
 
6651
7719
break;
6652
7720
 
6653
7721
#if 0
6654
 
case macro_space:app(040);app_scrap(space,maybe_math);break;
 
7722
case macro_space:app(' ');app_scrap(space,maybe_math);break;
6655
7723
#endif
6656
7724
case macro_space:app_scrap(ignore_scrap,maybe_math);break;
6657
7725
 
6658
 
 
6659
 
 
6660
 
case 0134:
 
7726
/* 215: */
 
7727
#line 6131 "./fweave.web"
 
7728
 
 
7729
 
 
7730
case '\\':
6661
7731
APP_STR("\\WttBS");
6662
7732
app_scrap(ignore_scrap,no_math);
6663
7733
break;
6668
7738
app_scrap(ignore_scrap,no_math);
6669
7739
break;
6670
7740
 
6671
 
case 012:
6672
 
app(040);
 
7741
case '\n':
 
7742
app(' ');
6673
7743
app_scrap(newline,maybe_math);
6674
7744
break;
6675
7745
 
6676
 
case 057:
 
7746
case '/':
6677
7747
if(in_format)
6678
7748
{
6679
7749
app(next_control);
6681
7751
}
6682
7752
else if(in_data)
6683
7753
{
6684
 
app(0173);app(next_control);app(0175);
 
7754
app('{');app(next_control);app('}');
6685
7755
app_scrap(slash_like,maybe_math);
6686
7756
}
6687
7757
else
6690
7760
}
6691
7761
break;
6692
7762
 
6693
 
case 056:
 
7763
case '.':
6694
7764
app(next_control);app_scrap(binop,yes_math);break;
6695
7765
 
6696
 
case 053:
6697
 
case 074:
6698
 
case 076:
6699
 
case 075:
6700
 
case 045:
6701
 
case 041:
6702
 
case 0176:
6703
 
case 055:
6704
 
case 052:
6705
 
case 0174:
6706
 
case 077:
6707
 
case 0136:
 
7766
case '+':
 
7767
case '<':
 
7768
case '>':
 
7769
case '=':
 
7770
case '%':
 
7771
case '!':
 
7772
case '~':
 
7773
case '-':
 
7774
case '*':
 
7775
case '|':
 
7776
case '?':
 
7777
case '^':
6708
7778
app_overload();break;
6709
7779
 
6710
 
case 046:
 
7780
case '&':
6711
7781
lst_ampersand= YES;
6712
7782
app_overload();break;
6713
7783
 
6714
 
case 043:
 
7784
case '#':
6715
7785
switch(*loc)
6716
7786
{
6717
 
case 047:
 
7787
case '\'':
6718
7788
APP_STR("\\WNq");
6719
7789
loc++;
6720
7790
break;
6721
7791
 
6722
 
case 042:
 
7792
case '"':
6723
7793
APP_STR("\\WNQ");
6724
7794
loc++;
6725
7795
break;
6735
7805
case ignore:case xref_roman:case xref_wildcard:
6736
7806
case xref_typewriter:break;
6737
7807
 
6738
 
case 050:app(next_control);app_scrap(lpar,yes_math);break;
6739
 
case 051:app(next_control);
 
7808
case '(':app(next_control);app_scrap(lpar,yes_math);break;
 
7809
case ')':app(next_control);
6740
7810
app_scrap(rpar,yes_math);
6741
7811
if(preprocessing&&!did_arg)
6742
7812
{
6743
 
app(040);
 
7813
app(' ');
6744
7814
app_scrap(ignore_scrap,no_math);
6745
7815
did_arg= YES;
6746
7816
}
6747
7817
break;
6748
7818
 
6749
 
case 0133:app(next_control);app_scrap(lbracket,yes_math);break;
6750
 
case 0135:app(next_control);app_scrap(rbracket,yes_math);break;
6751
 
 
6752
 
case 0173:APP_STR("\\{");app_scrap(lbrace,yes_math);break;
6753
 
case 0175:APP_STR("\\}");app_scrap(rbrace,yes_math);break;
6754
 
 
6755
 
case 054:app(054);app_scrap(comma,yes_math);break;
 
7819
case '[':app(next_control);app_scrap(lbracket,yes_math);break;
 
7820
case ']':app(next_control);app_scrap(rbracket,yes_math);break;
 
7821
 
 
7822
case '{':APP_STR("\\{");app_scrap(lbrace,yes_math);break;
 
7823
case '}':APP_STR("\\}");app_scrap(rbrace,yes_math);break;
 
7824
 
 
7825
case ',':app(',');app_scrap(comma,yes_math);break;
6756
7826
 
6757
7827
case interior_semi:
6758
7828
in_data= NO;
6759
 
app(073);
 
7829
app(';');
6760
7830
app_scrap(semi,maybe_math);
6761
7831
break;
6762
7832
 
6764
7834
in_format= NO;
6765
7835
 
6766
7836
 
6767
 
case 073:
 
7837
case ';':
6768
7838
in_data= NO;
6769
7839
 
6770
7840
if(!is_FORTRAN_(language)||prn_semis)
6771
 
app(073);
 
7841
app(';');
6772
7842
 
6773
7843
app_scrap(semi,maybe_math);
6774
7844
break;
6775
7845
 
6776
 
case 072:
6777
 
app(072);
 
7846
case ':':
 
7847
app(':');
6778
7848
app_scrap(colon,maybe_math);
6779
7849
break;
6780
7850
 
6781
 
case 0140:
 
7851
case '`':
 
7852
/* :215 */
 
7853
/* 215: */
 
7854
#line 6267 "./fweave.web"
6782
7855
APP_STR("\\WLQx");app_scrap(expr,maybe_math);
6783
7856
break;
6784
7857
 
 
7858
/* :215 */
 
7859
#line 5780 "./fweave.web"
6785
7860
 
 
7861
/* 210: */
 
7862
#line 5821 "./fweave.web"
6786
7863
 
6787
7864
 
6788
7865
 
6874
7951
app_scrap(rpar,yes_math);
6875
7952
break;
6876
7953
 
 
7954
/* :210 */
 
7955
#line 5781 "./fweave.web"
6877
7956
 
 
7957
/* 212: */
 
7958
#line 5918 "./fweave.web"
6878
7959
 
6879
7960
 
6880
7961
case force_line:APP_STR("\\]");app_scrap(ignore_scrap,yes_math);break;
6918
7999
APP_STR("\\WTLD");app_scrap(expr,maybe_math);break;
6919
8000
 
6920
8001
case begin_meta:
 
8002
/* 213: */
 
8003
#line 6023 "./fweave.web"
6921
8004
 
6922
8005
{
6923
8006
if(!nuweb_mode)
6933
8016
{
6934
8017
if(loc>=limit)
6935
8018
{
6936
 
app(012);
 
8019
app('\n');
6937
8020
if(!get_line())
6938
8021
break;
6939
8022
}
6940
8023
 
6941
8024
while(loc<limit)
6942
8025
{
6943
 
if(*loc==0100)
 
8026
if(*loc=='@')
 
8027
/* 214: */
 
8028
#line 6064 "./fweave.web"
6944
8029
 
6945
8030
{
6946
8031
switch(ccode[*(loc+1)])
6947
8032
{
6948
 
case 0100:
 
8033
case '@':
6949
8034
loc++;
6950
8035
break;
6951
8036
 
6952
8037
case end_meta:
6953
8038
if(!nuweb_mode&&((FORTRAN_LIKE(language)&&!free_form_input)
6954
8039
||(language==TEX)))
 
8040
/* 309: */
 
8041
#line 8977 "./fweave.web"
6955
8042
 
6956
8043
{
6957
8044
loc= limit+1;
6959
8046
column_mode= YES;
6960
8047
}
6961
8048
 
 
8049
/* :309 */
 
8050
#line 6075 "./fweave.web"
6962
8051
 
6963
8052
 
6964
8053
get_line();
6965
8054
goto done_meta;
6966
8055
 
6967
8056
case invisible_cmnt:
6968
 
if(*(loc+2)==045)
 
8057
if(*(loc+2)=='%')
6969
8058
eat_blank_lines= YES;
6970
8059
 
6971
 
app(012);
 
8060
app('\n');
6972
8061
get_line();
6973
8062
 
6974
8063
if(eat_blank_lines)
6986
8075
goto done_meta;
6987
8076
 
6988
8077
case line_break:
6989
 
if(loc[2]==052||loc[2]==057)
 
8078
if(loc[2]=='*'||loc[2]=='/')
6990
8079
{
6991
8080
loc++;
6992
8081
break;
7014
8103
}
7015
8104
}
7016
8105
 
 
8106
/* :214 */
 
8107
#line 6047 "./fweave.web"
7017
8108
 
7018
8109
app(*loc++);
7019
8110
}
7030
8121
scanning_meta= NO;
7031
8122
}
7032
8123
 
 
8124
/* :213 */
 
8125
#line 5961 "./fweave.web"
7033
8126
 
7034
8127
break;
7035
8128
 
7036
8129
case end_meta:
7037
8130
if(!nuweb_mode&&((FORTRAN_LIKE(language)&&!free_form_input)
7038
8131
||(language==TEX)))
 
8132
/* 309: */
 
8133
#line 8977 "./fweave.web"
7039
8134
 
7040
8135
{
7041
8136
loc= limit+1;
7043
8138
column_mode= YES;
7044
8139
}
7045
8140
 
 
8141
/* :309 */
 
8142
#line 5967 "./fweave.web"
7046
8143
 
7047
8144
 
7048
8145
get_line();
7078
8175
 
7079
8176
case keyword_name:
7080
8177
APP_STR("\\WRCS");
7081
 
app(060+upper_case_code);
7082
 
app(0173);
 
8178
app('0'+upper_case_code);
 
8179
app('{');
7083
8180
 
 
8181
/* 230: */
 
8182
#line 6662 "./fweave.web"
7084
8183
 
7085
8184
{
7086
8185
while(IS_WHITE(*id_first))
7090
8189
id_loc--;
7091
8190
}
7092
8191
 
 
8192
/* :230 */
 
8193
#line 6005 "./fweave.web"
7093
8194
 
7094
8195
*id_loc= '\0';
7095
8196
app_ASCII_str(id_first);
7096
8197
 
7097
 
app(0175);
 
8198
app('}');
7098
8199
 
7099
8200
app_scrap(expr,yes_math);
7100
8201
break;
7107
8208
the_type= RESERVED_WD;
7108
8209
break;
7109
8210
 
 
8211
/* :212 */
 
8212
#line 5782 "./fweave.web"
7110
8213
 
7111
8214
 
7112
8215
default:app(next_control);app_scrap(ignore_scrap,maybe_math);break;
7113
8216
}
7114
8217
}
7115
8218
 
 
8219
/* :208 */
 
8220
#line 5415 "./fweave.web"
7116
8221
;
7117
8222
next_control= get_next();
7118
8223
}
7119
8224
 
7120
 
if(next_control==0174||next_control==begin_comment)
 
8225
if(next_control=='|'||next_control==begin_comment)
7121
8226
break;
7122
8227
 
7123
8228
 
7138
8243
parse_params= parse_params0;
7139
8244
}
7140
8245
 
 
8246
/* :199 */
 
8247
/* 201: */
 
8248
#line 5490 "./fweave.web"
7141
8249
 
7142
8250
 
7143
8251
SRTN
7162
8270
app_scrap(language_scrap,no_math);
7163
8271
}
7164
8272
 
 
8273
/* :201 */
 
8274
/* 232: */
 
8275
#line 6711 "./fweave.web"
7165
8276
 
7166
8277
 
7167
8278
text_pointer
7194
8305
{
7195
8306
C_parse(INNER);
7196
8307
 
7197
 
if(next_control==0174)
 
8308
if(next_control=='|')
7198
8309
break;
7199
8310
 
 
8311
/* 310: */
 
8312
#line 8985 "./fweave.web"
7200
8313
 
7201
8314
 
7202
8315
if(next_control<module_name)
7221
8334
}
7222
8335
else if(next_control==module_name)
7223
8336
{
 
8337
/* 311: */
 
8338
#line 9014 "./fweave.web"
7224
8339
 
7225
8340
{
7226
8341
if(cur_module)
7231
8346
app_scrap(cur_module!=NULL?cur_module->mod_ilk:expr,maybe_math);
7232
8347
}
7233
8348
 
 
8349
/* :311 */
 
8350
#line 9009 "./fweave.web"
7234
8351
 
7235
8352
next_control= (nuweb_mode?begin_meta:get_next());
7236
8353
}
7237
8354
 
 
8355
/* :310 */
 
8356
#line 6746 "./fweave.web"
7238
8357
;
7239
8358
 
7240
 
if(next_control==0174)
 
8359
if(next_control=='|')
7241
8360
break;
7242
8361
}
7243
8362
 
7245
8364
 
7246
8365
 
7247
8366
if(nuweb_mode)
7248
 
app(0175);
 
8367
app('}');
7249
8368
#if 0
7250
8369
else
7251
8370
app_scrap(semi,maybe_math);
7258
8377
app_scrap(ignore_scrap,no_math);
7259
8378
}
7260
8379
 
7261
 
app(0175);app_scrap(ignore_scrap,no_math);
 
8380
app('}');app_scrap(ignore_scrap,no_math);
7262
8381
 
7263
 
if(next_control!=0174)
 
8382
if(next_control!='|')
7264
8383
 
7265
8384
err0_print(ERR_W,OC("Missing '|' after code text.  \
7266
8385
(@ commands that begin definition part, code part, or new module are not \
7283
8402
return p;
7284
8403
}
7285
8404
 
 
8405
/* :232 */
 
8406
/* 233: */
 
8407
#line 6797 "./fweave.web"
7286
8408
 
7287
8409
 
7288
8410
SRTN
7296
8418
if(next_control!=begin_comment)
7297
8419
C_parse(OUTER);
7298
8420
else
 
8421
/* 234: */
 
8422
#line 6815 "./fweave.web"
7299
8423
 
7300
8424
{
7301
8425
if(doing_cdir)
 
8426
/* 235: */
 
8427
#line 6856 "./fweave.web"
7302
8428
 
7303
8429
{
7304
8430
outer_char HUGE*s= t_style.cdir_start[language_num];
7320
8446
FREE_MEM(start,"start_cdir",n,ASCII);
7321
8447
}
7322
8448
 
 
8449
/* :235 */
 
8450
#line 6818 "./fweave.web"
7323
8451
 
7324
8452
else
 
8453
/* 236: */
 
8454
#line 6878 "./fweave.web"
7325
8455
 
7326
8456
{
7327
8457
room_for(8,3,1);
7334
8464
}
7335
8465
else if(!at_beginning&&(auto_semi&&!free_Fortran))
7336
8466
{
7337
 
app(073);
 
8467
app(';');
7338
8468
}
7339
8469
last_was_cmnt= YES;
7340
8470
}
7344
8474
 
7345
8475
}
7346
8476
 
 
8477
/* :236 */
 
8478
#line 6820 "./fweave.web"
7347
8479
 
7348
8480
 
7349
8481
bal= copy_comment(1);
7365
8497
 
7366
8498
app(tok_flag+PTR_DIFF(sixteen_bits,p,tok_start));app(inner_tok_flag+PTR_DIFF(sixteen_bits,q,tok_start));
7367
8499
 
7368
 
if(next_control==0174)
 
8500
if(next_control=='|')
7369
8501
{
7370
8502
bal= copy_comment(bal);
7371
8503
next_control= ignore;
7378
8510
 
7379
8511
}
7380
8512
 
7381
 
 
7382
 
}
7383
 
}
7384
 
 
 
8513
/* :234 */
 
8514
#line 6810 "./fweave.web"
 
8515
 
 
8516
}
 
8517
}
 
8518
 
 
8519
/* :233 */
 
8520
/* 243: */
 
8521
#line 6990 "./fweave.web"
7385
8522
 
7386
8523
 
7387
8524
SRTN
7403
8540
cur_tok= *p;cur_end= *(p+1);
7404
8541
}
7405
8542
 
 
8543
/* :243 */
 
8544
/* 244: */
 
8545
#line 7015 "./fweave.web"
7406
8546
 
7407
8547
 
7408
8548
SRTN
7412
8552
cur_tok= stck_ptr->tok_field;cur_mode= stck_ptr->mode_field;
7413
8553
}
7414
8554
 
 
8555
/* :244 */
 
8556
/* 246: */
 
8557
#line 7039 "./fweave.web"
7415
8558
 
7416
8559
eight_bits
7417
8560
get_output(VOID)
7444
8587
return(eight_bits)a;
7445
8588
}
7446
8589
 
 
8590
/* :246 */
 
8591
/* 247: */
 
8592
#line 7086 "./fweave.web"
7447
8593
 
7448
8594
 
7449
8595
SRTN
7471
8617
 
7472
8618
}
7473
8619
 
 
8620
/* :247 */
 
8621
/* 269: */
 
8622
#line 7659 "./fweave.web"
7474
8623
 
7475
8624
 
7476
8625
SRTN
7491
8640
 
7492
8641
fin_line();
7493
8642
 
 
8643
/* 270: */
 
8644
#line 7705 "./fweave.web"
7494
8645
 
7495
8646
{
7496
8647
IN_COMMON outer_char style_file_name[];
7537
8688
fin_line();
7538
8689
}
7539
8690
 
 
8691
/* :270 */
 
8692
#line 7679 "./fweave.web"
7540
8693
 
7541
8694
 
7542
8695
module_count= 0;
7548
8701
math_flag= NO;
7549
8702
 
7550
8703
while(!input_has_ended)
 
8704
/* 273: */
 
8705
#line 7845 "./fweave.web"
7551
8706
 
7552
8707
{
7553
8708
the_part= TEX_;
7559
8714
 
7560
8715
module_count++;
7561
8716
 
 
8717
/* 274: */
 
8718
#line 7876 "./fweave.web"
7562
8719
 
7563
8720
{
 
8721
/* 276: */
 
8722
#line 7899 "./fweave.web"
7564
8723
 
7565
8724
 
7566
8725
if(STRCMP(last_include_file,this_include_file)!=0)
7571
8730
fin_line();
7572
8731
}
7573
8732
 
 
8733
/* :276 */
 
8734
#line 7878 "./fweave.web"
7574
8735
;
7575
8736
 
7576
8737
if(!in_module&&output_on)
7577
8738
{
7578
 
OUT_STR(*(loc-1)==052?"\\WN":"\\WM");
 
8739
OUT_STR(*(loc-1)=='*'?"\\WN":"\\WM");
7579
8740
 
7580
8741
 
7581
8742
in_module= YES;
7586
8747
progress();
7587
8748
}
7588
8749
 
 
8750
/* :274 */
 
8751
#line 7856 "./fweave.web"
7589
8752
;
7590
8753
save_position;
7591
8754
 
7597
8760
 
7598
8761
the_type= NO_TYPE;
7599
8762
 
 
8763
/* 314: */
 
8764
#line 9112 "./fweave.web"
7600
8765
 
7601
8766
 
7602
8767
if(this_module>name_dir&&output_on)
7603
8768
{
 
8769
/* 316: */
 
8770
#line 9134 "./fweave.web"
7604
8771
 
7605
8772
 
7606
8773
first_xref= (xref_pointer)this_module->xref;
7634
8801
 
7635
8802
cur_xref= first_xref->xlink;
7636
8803
 
 
8804
/* :316 */
 
8805
#line 9116 "./fweave.web"
7637
8806
;
7638
8807
footnote(def_flag);footnote(0);
7639
8808
}
7640
8809
 
 
8810
/* :314 */
 
8811
#line 7867 "./fweave.web"
7641
8812
;
 
8813
/* 319: */
 
8814
#line 9223 "./fweave.web"
7642
8815
 
7643
8816
{
7644
8817
if(in_module&&output_on)
7658
8831
}
7659
8832
}
7660
8833
 
 
8834
/* :319 */
 
8835
#line 7868 "./fweave.web"
7661
8836
;
7662
8837
}
7663
8838
 
 
8839
/* :273 */
 
8840
#line 7690 "./fweave.web"
7664
8841
 
7665
8842
}
7666
8843
 
 
8844
/* :269 */
 
8845
/* 271: */
 
8846
#line 7768 "./fweave.web"
7667
8847
 
7668
8848
 
7669
8849
SRTN
7716
8896
#undef TEMP_LEN
7717
8897
}
7718
8898
 
 
8899
/* :271 */
 
8900
/* 277: */
 
8901
#line 7912 "./fweave.web"
7719
8902
 
7720
8903
 
7721
8904
SRTN
7730
8913
 
7731
8914
switch(next_control)
7732
8915
{
7733
 
 
7734
 
 
 
8916
/* 62: */
 
8917
#line 803 "./fweave.web"
 
8918
 
 
8919
 
 
8920
/* 9: */
 
8921
#line 80 "./typedefs.hweb"
7735
8922
 
7736
8923
 
7737
8924
case begin_C:
7741
8928
 
7742
8929
 
7743
8930
 
 
8931
/* :9 */
 
8932
#line 805 "./fweave.web"
7744
8933
:
7745
8934
loc--;
7746
8935
 
7747
8936
 
7748
8937
case L_switch:
 
8938
/* 63: */
 
8939
#line 821 "./fweave.web"
7749
8940
 
7750
8941
{
 
8942
/* 20: */
 
8943
#line 139 "./typedefs.hweb"
7751
8944
 
7752
8945
{
7753
8946
ASCII l= *loc++;
7754
8947
 
7755
8948
switch(l)
7756
8949
{
7757
 
 
7758
 
case 0143
7759
 
 
7760
 
:
7761
 
Cpp= BOOLEAN(*loc==053);
7762
 
break;
7763
 
 
7764
 
 
7765
 
case 0162
7766
 
 
7767
 
:
7768
 
 
7769
 
case 0156
7770
 
 
7771
 
:
7772
 
Fortran88= BOOLEAN(*loc==071);
7773
 
break;
7774
 
 
7775
 
 
7776
 
case 0166
7777
 
 
7778
 
 
7779
 
 
7780
 
:
7781
 
 
7782
 
case 0170
7783
 
 
 
8950
/* 10: */
 
8951
#line 95 "./typedefs.hweb"
 
8952
 
 
8953
case 'c'
 
8954
 
 
8955
/* :10 */
 
8956
#line 145 "./typedefs.hweb"
 
8957
:
 
8958
Cpp= BOOLEAN(*loc=='+');
 
8959
break;
 
8960
 
 
8961
/* 11: */
 
8962
#line 98 "./typedefs.hweb"
 
8963
 
 
8964
case 'r'
 
8965
 
 
8966
/* :11 */
 
8967
#line 149 "./typedefs.hweb"
 
8968
:
 
8969
/* 12: */
 
8970
#line 101 "./typedefs.hweb"
 
8971
 
 
8972
case 'n'
 
8973
 
 
8974
/* :12 */
 
8975
#line 150 "./typedefs.hweb"
 
8976
:
 
8977
Fortran88= BOOLEAN(*loc=='9');
 
8978
break;
 
8979
 
 
8980
/* 14: */
 
8981
#line 107 "./typedefs.hweb"
 
8982
 
 
8983
case 'v'
 
8984
 
 
8985
 
 
8986
 
 
8987
/* :14 */
 
8988
#line 154 "./typedefs.hweb"
 
8989
:
 
8990
/* 13: */
 
8991
#line 104 "./typedefs.hweb"
 
8992
 
 
8993
case 'x'
 
8994
 
 
8995
/* :13 */
 
8996
#line 155 "./typedefs.hweb"
7784
8997
:
7785
8998
break;
7786
8999
 
7795
9008
}
7796
9009
 
7797
9010
 
 
9011
/* :20 */
 
9012
#line 823 "./fweave.web"
7798
9013
 
7799
9014
 
7800
9015
if(module_count==0)
7801
9016
global_params= params;
7802
9017
 
7803
9018
ini0_language();
 
9019
/* 308: */
 
9020
#line 8966 "./fweave.web"
7804
9021
 
7805
9022
 
7806
9023
if(Fortran88&&(auto_semi&&!free_Fortran))
7810
9027
}
7811
9028
 
7812
9029
 
 
9030
/* :308 */
 
9031
#line 829 "./fweave.web"
7813
9032
 
7814
9033
}
7815
9034
 
 
9035
/* :63 */
 
9036
#line 810 "./fweave.web"
7816
9037
 
7817
9038
break;
7818
9039
 
7823
9044
global_params= params;
7824
9045
break;
7825
9046
 
 
9047
/* :62 */
 
9048
#line 7926 "./fweave.web"
7826
9049
 
7827
9050
 
7828
9051
case toggle_output:
7829
9052
out_skip();
7830
9053
break;
7831
9054
 
7832
 
case 0174:ini_stack;output_C();break;
 
9055
case '|':ini_stack;output_C();break;
7833
9056
 
7834
9057
case math_break:
7835
 
out(0174);
 
9058
out('|');
7836
9059
break;
7837
9060
 
7838
 
case 0100:
7839
 
out(0100);
 
9061
case '@':
 
9062
out('@');
7840
9063
break;
7841
9064
 
7842
9065
case invisible_cmnt:loc= limit+1;break;
7863
9086
 
7864
9087
case keyword_name:
7865
9088
loc-= 2;next_control= get_next();
 
9089
/* 229: */
 
9090
#line 6647 "./fweave.web"
7866
9091
 
7867
9092
{
7868
9093
ASCII*id_start,*id_end;
7869
9094
 
 
9095
/* 230: */
 
9096
#line 6662 "./fweave.web"
7870
9097
 
7871
9098
{
7872
9099
while(IS_WHITE(*id_first))
7876
9103
id_loc--;
7877
9104
}
7878
9105
 
 
9106
/* :230 */
 
9107
#line 6651 "./fweave.web"
7879
9108
 
7880
9109
 
7881
9110
id_start= id_end= mod_text+1;
7886
9115
out_del_str(id_start,id_end);
7887
9116
}
7888
9117
 
 
9118
/* :229 */
 
9119
#line 7965 "./fweave.web"
7889
9120
 
7890
9121
break;
7891
9122
 
7901
9132
break;
7902
9133
 
7903
9134
case protect_code:
7904
 
if(*loc!=0174)
 
9135
if(*loc!='|')
7905
9136
 
7906
9137
err0_print(ERR_W,OC("@p should be immediately followed by '|'"),0);
7907
9138
 
7919
9150
output_protect= NO;
7920
9151
}
7921
9152
 
 
9153
/* :277 */
 
9154
/* 279: */
 
9155
#line 8010 "./fweave.web"
7922
9156
 
7923
9157
 
7924
9158
SRTN
7932
9166
if(next_control<begin_code)
7933
9167
{
7934
9168
emit_space_if_needed;save_position;
 
9169
/* 178: */
 
9170
#line 4992 "./fweave.web"
7935
9171
 
7936
9172
{
7937
9173
if(output_on)app(Turn_output_on);
7945
9181
app_scrap(ignore_scrap,no_math);
7946
9182
}
7947
9183
 
 
9184
/* :178 */
 
9185
#line 8023 "./fweave.web"
7948
9186
 
 
9187
#line 8025 "./fweave.web"
7949
9188
}
7950
9189
 
7951
9190
while(next_control<begin_code)
 
9191
/* 280: */
 
9192
#line 8034 "./fweave.web"
7952
9193
 
7953
9194
{
7954
9195
eight_bits last_control= next_control;
7963
9204
break;
7964
9205
 
7965
9206
default:
 
9207
/* 178: */
 
9208
#line 4992 "./fweave.web"
7966
9209
 
7967
9210
{
7968
9211
if(output_on)app(Turn_output_on);
7976
9219
app_scrap(ignore_scrap,no_math);
7977
9220
}
7978
9221
 
 
9222
/* :178 */
 
9223
#line 8048 "./fweave.web"
7979
9224
 
7980
9225
break;
7981
9226
}
7986
9231
switch(next_control)
7987
9232
{
7988
9233
case formatt:
 
9234
/* 291: */
 
9235
#line 8483 "./fweave.web"
7989
9236
 
7990
9237
{
7991
9238
LANGUAGE saved_language= language;
8013
9260
next_control= get_next();
8014
9261
 
8015
9262
if(next_control==identifier||next_control==module_name)
 
9263
/* 292: */
 
9264
#line 8525 "./fweave.web"
8016
9265
 
8017
9266
{
8018
9267
if(next_control==identifier)
8027
9276
if(next_control==identifier)
8028
9277
{
8029
9278
APP_ID;
 
9279
/* 293: */
 
9280
#line 8544 "./fweave.web"
8030
9281
 
8031
9282
{
8032
9283
app_scrap(expr,maybe_math);
8037
9288
next_control= get_next();
8038
9289
}
8039
9290
 
8040
 
 
8041
 
}
8042
 
}
8043
 
 
8044
 
 
8045
 
else if(next_control==0140)
 
9291
/* :293 */
 
9292
#line 8539 "./fweave.web"
 
9293
 
 
9294
}
 
9295
}
 
9296
 
 
9297
/* :292 */
 
9298
#line 8510 "./fweave.web"
 
9299
 
 
9300
else if(next_control=='`')
 
9301
/* 294: */
 
9302
#line 8557 "./fweave.web"
8046
9303
 
8047
9304
{
 
9305
/* 221: */
 
9306
#line 6489 "./fweave.web"
8048
9307
 
8049
9308
{
8050
9309
APP_STR(pfrmt->typewritr);
8051
 
app_tok(0173);
 
9310
app_tok('{');
8052
9311
}
8053
9312
 
 
9313
/* :221 */
 
9314
#line 8559 "./fweave.web"
8054
9315
 
8055
 
app(0140);
 
9316
app('`');
8056
9317
if((next_control= get_TeX())==constant)
8057
9318
APP_STR((outer_char*)id_first);
8058
 
app(0175);
 
9319
app('}');
8059
9320
 
8060
9321
APP_STR("\\ ");
8061
9322
 
8068
9329
while(id_first<id_loc)
8069
9330
app_tok(*id_first++);
8070
9331
 
8071
 
app(0175);
 
9332
app('}');
8072
9333
 
 
9334
/* 293: */
 
9335
#line 8544 "./fweave.web"
8073
9336
 
8074
9337
{
8075
9338
app_scrap(expr,maybe_math);
8080
9343
next_control= get_next();
8081
9344
}
8082
9345
 
8083
 
 
8084
 
}
8085
 
}
8086
 
 
 
9346
/* :293 */
 
9347
#line 8578 "./fweave.web"
 
9348
 
 
9349
}
 
9350
}
 
9351
 
 
9352
/* :294 */
 
9353
#line 8512 "./fweave.web"
8087
9354
 
8088
9355
 
8089
9356
if(scrp_ptr!=scrp_ptr0+3)
8097
9364
language= saved_language;
8098
9365
}
8099
9366
 
 
9367
/* :291 */
 
9368
#line 8058 "./fweave.web"
8100
9369
 
8101
9370
break;
8102
9371
 
8103
9372
case limbo_text:
 
9373
/* 295: */
 
9374
#line 8584 "./fweave.web"
8104
9375
 
8105
9376
{
8106
9377
SUPPRESS(limbo);
8114
9385
err0_print(ERR_W,OC("A string must follow @l"),0);
8115
9386
}
8116
9387
 
 
9388
/* :295 */
 
9389
#line 8062 "./fweave.web"
8117
9390
 
8118
9391
break;
8119
9392
 
8120
9393
case op_def:
 
9394
/* 296: */
 
9395
#line 8599 "./fweave.web"
8121
9396
 
8122
9397
{
8123
9398
SUPPRESS(v);
8130
9405
 
8131
9406
if(valid_op(next_control= get_next()))
8132
9407
{
 
9408
/* 297: */
 
9409
#line 8638 "./fweave.web"
8133
9410
 
8134
9411
{
8135
9412
switch(next_control)
8143
9420
break;
8144
9421
 
8145
9422
case dot_const:
 
9423
/* 221: */
 
9424
#line 6489 "./fweave.web"
8146
9425
 
8147
9426
{
8148
9427
APP_STR(pfrmt->typewritr);
8149
 
app_tok(0173);
 
9428
app_tok('{');
8150
9429
}
8151
9430
 
 
9431
/* :221 */
 
9432
#line 8650 "./fweave.web"
8152
9433
 
8153
9434
app(wt_style.dot_delimiter.begin);
8154
9435
app_ASCII_str(dot_op.name+1);
8155
9436
app(wt_style.dot_delimiter.end);
8156
 
app(0175);
 
9437
app('}');
8157
9438
break;
8158
9439
 
8159
9440
default:
8160
 
app(0173);
 
9441
app('{');
8161
9442
app_overload();
8162
 
app(0175);
 
9443
app('}');
8163
9444
break;
8164
9445
}
8165
9446
 
8166
9447
app_scrap(expr,yes_math);
8167
9448
}
8168
9449
 
8169
 
 
8170
 
 
8171
 
app(040);app_scrap(expr,no_math);
 
9450
/* :297 */
 
9451
#line 8611 "./fweave.web"
 
9452
 
 
9453
 
 
9454
app(' ');app_scrap(expr,no_math);
8172
9455
 
8173
9456
 
8174
9457
if((next_control= get_next())==stringg)
8175
9458
{
 
9459
/* 221: */
 
9460
#line 6489 "./fweave.web"
8176
9461
 
8177
9462
{
8178
9463
APP_STR(pfrmt->typewritr);
8179
 
app_tok(0173);
 
9464
app_tok('{');
8180
9465
}
8181
9466
 
 
9467
/* :221 */
 
9468
#line 8618 "./fweave.web"
8182
9469
 
 
9470
/* 222: */
 
9471
#line 6504 "./fweave.web"
8183
9472
 
8184
9473
{
8185
9474
app_tok(verbatim);
8189
9478
{
8190
9479
switch(*id_first)
8191
9480
{
8192
 
case 054:*id_first= 061;app(0134);break;
 
9481
case ',':*id_first= '1';app('\\');break;
8193
9482
 
8194
9483
case ordinary_space:
8195
 
*id_first= 062;app(0134);break;
 
9484
*id_first= '2';app('\\');break;
8196
9485
 
8197
9486
case tab_mark:
8198
 
*id_first= 063;app(0134);break;
8199
 
 
8200
 
case discretionary_break:*id_first= 060;
8201
 
 
8202
 
 
8203
 
 
8204
 
 
8205
 
 
8206
 
case 0134:case 0173:case 0175
8207
 
 
8208
 
:
8209
 
 
8210
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
8211
 
case 0176:case 046:case 0137
8212
 
 
8213
 
 
8214
 
 
8215
 
:
8216
 
app(0134);break;
8217
 
 
8218
 
case 0100:if(*(id_first+1)==0100)id_first++;
 
9487
*id_first= '3';app('\\');break;
 
9488
 
 
9489
case discretionary_break:*id_first= '0';
 
9490
 
 
9491
/* 223: */
 
9492
#line 6548 "./fweave.web"
 
9493
 
 
9494
 
 
9495
/* 224: */
 
9496
#line 6554 "./fweave.web"
 
9497
 
 
9498
 
 
9499
case '\\':case '{':case '}'
 
9500
 
 
9501
/* :224 */
 
9502
#line 6550 "./fweave.web"
 
9503
:
 
9504
/* 225: */
 
9505
#line 6559 "./fweave.web"
 
9506
 
 
9507
case ' ':case '#':case '%':case '$':case '^':case '`':
 
9508
case '~':case '&':case '_'
 
9509
 
 
9510
/* :225 */
 
9511
#line 6551 "./fweave.web"
 
9512
 
 
9513
 
 
9514
/* :223 */
 
9515
#line 6523 "./fweave.web"
 
9516
:
 
9517
app('\\');break;
 
9518
 
 
9519
case '@':if(*(id_first+1)=='@')id_first++;
8219
9520
else
8220
9521
err0_print(ERR_W,OC("Double %s@%s should be used in strings"),2,SSET_COLOR(character),SSET_COLOR(error));
8221
9522
 
8227
9528
 
8228
9529
app_tok(verbatim);
8229
9530
 
8230
 
app(0175);
 
9531
app('}');
8231
9532
}
8232
9533
 
 
9534
/* :222 */
 
9535
#line 8619 "./fweave.web"
8233
9536
 
8234
9537
app_scrap(expr,yes_math);
8235
9538
 
8236
9539
 
8237
9540
if(valid_op(next_control= get_next()))
8238
9541
{
8239
 
app(040);app_scrap(expr,no_math);
 
9542
app(' ');app_scrap(expr,no_math);
8240
9543
 
 
9544
/* 297: */
 
9545
#line 8638 "./fweave.web"
8241
9546
 
8242
9547
{
8243
9548
switch(next_control)
8251
9556
break;
8252
9557
 
8253
9558
case dot_const:
 
9559
/* 221: */
 
9560
#line 6489 "./fweave.web"
8254
9561
 
8255
9562
{
8256
9563
APP_STR(pfrmt->typewritr);
8257
 
app_tok(0173);
 
9564
app_tok('{');
8258
9565
}
8259
9566
 
 
9567
/* :221 */
 
9568
#line 8650 "./fweave.web"
8260
9569
 
8261
9570
app(wt_style.dot_delimiter.begin);
8262
9571
app_ASCII_str(dot_op.name+1);
8263
9572
app(wt_style.dot_delimiter.end);
8264
 
app(0175);
 
9573
app('}');
8265
9574
break;
8266
9575
 
8267
9576
default:
8268
 
app(0173);
 
9577
app('{');
8269
9578
app_overload();
8270
 
app(0175);
 
9579
app('}');
8271
9580
break;
8272
9581
}
8273
9582
 
8274
9583
app_scrap(expr,yes_math);
8275
9584
}
8276
9585
 
 
9586
/* :297 */
 
9587
#line 8627 "./fweave.web"
8277
9588
 
8278
9589
 
8279
9590
next_control= get_next();
8282
9593
}
8283
9594
}
8284
9595
 
 
9596
/* :296 */
 
9597
#line 8066 "./fweave.web"
8285
9598
 
8286
9599
break;
8287
9600
 
8288
9601
case macro_def:
 
9602
/* 298: */
 
9603
#line 8668 "./fweave.web"
8289
9604
 
8290
9605
{
8291
9606
SUPPRESS(w);
8304
9619
 
8305
9620
APP_ID;
8306
9621
 
8307
 
app(040);app_scrap(expr,no_math);
 
9622
app(' ');app_scrap(expr,no_math);
8308
9623
 
8309
9624
 
8310
9625
switch(next_control= get_next())
8311
9626
{
8312
 
case 0134:
 
9627
case '\\':
8313
9628
if((next_control= get_next())!=identifier)break;
8314
9629
goto quick_code1;
8315
9630
 
8318
9633
id_loc= id_loc0;
8319
9634
 
8320
9635
quick_code1:
 
9636
/* 221: */
 
9637
#line 6489 "./fweave.web"
8321
9638
 
8322
9639
{
8323
9640
APP_STR(pfrmt->typewritr);
8324
 
app_tok(0173);
 
9641
app_tok('{');
8325
9642
}
8326
9643
 
 
9644
/* :221 */
 
9645
#line 8700 "./fweave.web"
8327
9646
 
8328
9647
APP_STR("\\\\");
8329
9648
*id_loc= '\0';
8330
9649
app_ASCII_str(id_first);
8331
 
app(0175);
 
9650
app('}');
8332
9651
app_scrap(expr,yes_math);
8333
9652
next_control= get_next();
8334
9653
break;
8335
9654
 
8336
9655
case stringg:
 
9656
/* 221: */
 
9657
#line 6489 "./fweave.web"
8337
9658
 
8338
9659
{
8339
9660
APP_STR(pfrmt->typewritr);
8340
 
app_tok(0173);
 
9661
app_tok('{');
8341
9662
}
8342
9663
 
 
9664
/* :221 */
 
9665
#line 8710 "./fweave.web"
8343
9666
 
 
9667
/* 222: */
 
9668
#line 6504 "./fweave.web"
8344
9669
 
8345
9670
{
8346
9671
app_tok(verbatim);
8350
9675
{
8351
9676
switch(*id_first)
8352
9677
{
8353
 
case 054:*id_first= 061;app(0134);break;
 
9678
case ',':*id_first= '1';app('\\');break;
8354
9679
 
8355
9680
case ordinary_space:
8356
 
*id_first= 062;app(0134);break;
 
9681
*id_first= '2';app('\\');break;
8357
9682
 
8358
9683
case tab_mark:
8359
 
*id_first= 063;app(0134);break;
8360
 
 
8361
 
case discretionary_break:*id_first= 060;
8362
 
 
8363
 
 
8364
 
 
8365
 
 
8366
 
 
8367
 
case 0134:case 0173:case 0175
8368
 
 
8369
 
:
8370
 
 
8371
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
8372
 
case 0176:case 046:case 0137
8373
 
 
8374
 
 
8375
 
 
8376
 
:
8377
 
app(0134);break;
8378
 
 
8379
 
case 0100:if(*(id_first+1)==0100)id_first++;
 
9684
*id_first= '3';app('\\');break;
 
9685
 
 
9686
case discretionary_break:*id_first= '0';
 
9687
 
 
9688
/* 223: */
 
9689
#line 6548 "./fweave.web"
 
9690
 
 
9691
 
 
9692
/* 224: */
 
9693
#line 6554 "./fweave.web"
 
9694
 
 
9695
 
 
9696
case '\\':case '{':case '}'
 
9697
 
 
9698
/* :224 */
 
9699
#line 6550 "./fweave.web"
 
9700
:
 
9701
/* 225: */
 
9702
#line 6559 "./fweave.web"
 
9703
 
 
9704
case ' ':case '#':case '%':case '$':case '^':case '`':
 
9705
case '~':case '&':case '_'
 
9706
 
 
9707
/* :225 */
 
9708
#line 6551 "./fweave.web"
 
9709
 
 
9710
 
 
9711
/* :223 */
 
9712
#line 6523 "./fweave.web"
 
9713
:
 
9714
app('\\');break;
 
9715
 
 
9716
case '@':if(*(id_first+1)=='@')id_first++;
8380
9717
else
8381
9718
err0_print(ERR_W,OC("Double %s@%s should be used in strings"),2,SSET_COLOR(character),SSET_COLOR(error));
8382
9719
 
8388
9725
 
8389
9726
app_tok(verbatim);
8390
9727
 
8391
 
app(0175);
 
9728
app('}');
8392
9729
}
8393
9730
 
 
9731
/* :222 */
 
9732
#line 8711 "./fweave.web"
8394
9733
 
8395
9734
app_scrap(expr,yes_math);
8396
9735
next_control= get_next();
8399
9738
}
8400
9739
}
8401
9740
 
 
9741
/* :298 */
 
9742
#line 8070 "./fweave.web"
8402
9743
 
8403
9744
break;
8404
9745
 
8415
9756
continue;
8416
9757
 
8417
9758
default:
 
9759
/* 288: */
 
9760
#line 8334 "./fweave.web"
8418
9761
 
8419
9762
{
8420
9763
LANGUAGE saved_language= language;
8456
9799
{
8457
9800
APP_STR("{}");
8458
9801
 
8459
 
if(next_control==0133)
 
9802
if(next_control=='[')
 
9803
/* 289: */
 
9804
#line 8407 "./fweave.web"
8460
9805
 
8461
9806
{
8462
9807
APP_STR("\\Wauto");
8463
 
get_string(0133,'\0');
 
9808
get_string('[','\0');
8464
9809
*id_loc= '\0';
8465
9810
app_ASCII_str(id_first);
8466
9811
next_control= get_next();
8467
9812
}
8468
9813
 
 
9814
/* :289 */
 
9815
#line 8376 "./fweave.web"
8469
9816
 
8470
9817
}
8471
9818
 
8476
9823
APP_ID;
8477
9824
 
8478
9825
 
8479
 
if(*loc==050)
 
9826
if(*loc=='(')
 
9827
/* 290: */
 
9828
#line 8419 "./fweave.web"
8480
9829
 
8481
9830
{
8482
 
app(044);
 
9831
app('$');
8483
9832
 
8484
9833
#ifdef DBGM 
8485
 
app(065);
 
9834
app('5');
8486
9835
#endif
8487
9836
 
8488
9837
reswitch:
8491
9840
the_switch:
8492
9841
switch(next_control)
8493
9842
{
8494
 
case 050:
 
9843
case '(':
8495
9844
app(next_control);
8496
9845
next_control= get_next();
8497
9846
 
8498
 
if(next_control==051)
 
9847
if(next_control==')')
8499
9848
{
8500
9849
APP_STR("\\;");
8501
9850
goto done_arg;
8503
9852
else
8504
9853
goto the_switch;
8505
9854
 
8506
 
case 054:
 
9855
case ',':
8507
9856
app(next_control);goto reswitch;
8508
9857
 
8509
9858
case identifier:
8513
9862
case ellipsis:
8514
9863
APP_STR("\\dots");
8515
9864
 
8516
 
if((next_control= get_next())!=051)
 
9865
if((next_control= get_next())!=')')
8517
9866
{
8518
9867
 
8519
9868
err0_print(ERR_M,OC("Improper macro \
8521
9870
break;
8522
9871
}
8523
9872
 
8524
 
case 051:
 
9873
case ')':
8525
9874
done_arg:
8526
9875
app(next_control);
8527
9876
next_control= get_next();break;
8534
9883
}
8535
9884
 
8536
9885
#ifdef DBGM
8537
 
app(066);
 
9886
app('6');
8538
9887
#endif
8539
9888
 
8540
 
app(044);
 
9889
app('$');
8541
9890
}
8542
9891
 
 
9892
/* :290 */
 
9893
#line 8387 "./fweave.web"
8543
9894
 
8544
9895
else
8545
9896
{
8559
9910
language= saved_language;
8560
9911
}
8561
9912
 
 
9913
/* :288 */
 
9914
#line 8086 "./fweave.web"
8562
9915
 
8563
9916
break;
8564
9917
}
8576
9929
ok_to_define= YES;
8577
9930
}
8578
9931
 
 
9932
/* :280 */
 
9933
#line 8028 "./fweave.web"
8579
9934
 
8580
9935
}
8581
9936
 
 
9937
/* :279 */
 
9938
/* 282: */
 
9939
#line 8121 "./fweave.web"
8582
9940
 
8583
9941
 
8584
9942
SRTN
8589
9947
 
8590
9948
if(!suppress_defn)
8591
9949
{
 
9950
#line 8132 "./fweave.web"
8592
9951
column_mode= NO;
8593
9952
 
8594
9953
app_tok(force);
8603
9962
make_output();
8604
9963
 
8605
9964
if(out_ptr>out_buf+1)
8606
 
 
8607
 
{
8608
 
if(*(out_ptr-1)==0134)
8609
 
{
8610
 
 
8611
 
 
8612
 
 
8613
 
if(*out_ptr==066)
 
9965
/* 283: */
 
9966
#line 8179 "./fweave.web"
 
9967
 
 
9968
{
 
9969
if(*(out_ptr-1)=='\\')
 
9970
{
 
9971
 
 
9972
 
 
9973
 
 
9974
if(*out_ptr=='6')
8614
9975
out_ptr-= 2;
8615
 
else if(*out_ptr==067)
 
9976
else if(*out_ptr=='7')
8616
9977
{
8617
9978
out_ptr-= 2;
8618
9979
OUT_STR("\\WY");
8621
9982
}
8622
9983
}
8623
9984
 
 
9985
/* :283 */
 
9986
#line 8146 "./fweave.web"
8624
9987
 
8625
9988
 
8626
9989
OUT_STR(the_part==CODE?"\\Wendc":"\\Wendd");
8653
10016
output_on= current_output_state;
8654
10017
}
8655
10018
 
 
10019
/* :282 */
 
10020
/* 284: */
 
10021
#line 8202 "./fweave.web"
8656
10022
 
8657
10023
 
8658
10024
SRTN
8666
10032
APP_STR(temp);
8667
10033
}
8668
10034
 
 
10035
/* :284 */
 
10036
/* 285: */
 
10037
#line 8218 "./fweave.web"
8669
10038
 
8670
10039
 
8671
10040
SRTN
8674
10043
{
8675
10044
if(the_part==DEFINITION)
8676
10045
{
 
10046
/* 281: */
 
10047
#line 8105 "./fweave.web"
8677
10048
 
8678
10049
{
8679
10050
APP_STR("\\WP");
8680
10051
 
8681
10052
}
8682
10053
 
 
10054
/* :281 */
 
10055
#line 8226 "./fweave.web"
8683
10056
 
8684
10057
 
8685
10058
if(yskipped)
8686
10059
{
 
10060
/* 301: */
 
10061
#line 8791 "./fweave.web"
8687
10062
 
8688
10063
{
8689
10064
app_hdr("defs");
8690
10065
}
8691
10066
 
 
10067
/* :301 */
 
10068
#line 8230 "./fweave.web"
8692
10069
 
8693
10070
yskipped= NO;
8694
10071
}
8758
10135
 
8759
10136
}
8760
10137
 
 
10138
/* :285 */
 
10139
/* 286: */
 
10140
#line 8303 "./fweave.web"
8761
10141
 
8762
10142
SRTN
8763
10143
improper FCN((m_type,msg))
8768
10148
err0_print(ERR_W,OC("Improper %s definition:  expected %s"),2,m_type,msg);
8769
10149
}
8770
10150
 
 
10151
/* :286 */
 
10152
/* 287: */
 
10153
#line 8316 "./fweave.web"
8771
10154
 
8772
10155
 
8773
10156
SRTN
8777
10160
APP_TEMP(suffix,(CONST outer_char*)(LANGUAGE_SYMBOL(language)));
8778
10161
}
8779
10162
 
 
10163
/* :287 */
 
10164
/* 300: */
 
10165
#line 8731 "./fweave.web"
8780
10166
 
8781
10167
 
8782
10168
SRTN
8788
10174
 
8789
10175
if(next_control<=module_name)
8790
10176
{
 
10177
#line 8743 "./fweave.web"
8791
10178
OUT_STR("\\WY");
8792
10179
ini_stack;
 
10180
/* 178: */
 
10181
#line 4992 "./fweave.web"
8793
10182
 
8794
10183
{
8795
10184
if(output_on)app(Turn_output_on);
8803
10192
app_scrap(ignore_scrap,no_math);
8804
10193
}
8805
10194
 
 
10195
/* :178 */
 
10196
#line 8745 "./fweave.web"
8806
10197
 
 
10198
/* 281: */
 
10199
#line 8105 "./fweave.web"
8807
10200
 
8808
10201
{
8809
10202
APP_STR("\\WP");
8810
10203
 
8811
10204
}
8812
10205
 
 
10206
/* :281 */
 
10207
#line 8746 "./fweave.web"
8813
10208
 
8814
10209
 
8815
10210
if(next_control==begin_code)
8821
10216
nuweb_mode= nuweb_mode0;
8822
10217
frz_params();
8823
10218
the_module= NULL;
 
10219
/* 307: */
 
10220
#line 8950 "./fweave.web"
8824
10221
 
8825
10222
{
8826
10223
if(!nuweb_mode&&((FORTRAN_LIKE(language)&&!free_form_input)
8827
10224
||(language==TEX)))
8828
10225
{
 
10226
/* 309: */
 
10227
#line 8977 "./fweave.web"
8829
10228
 
8830
10229
{
8831
10230
loc= limit+1;
8833
10232
column_mode= YES;
8834
10233
}
8835
10234
 
 
10235
/* :309 */
 
10236
#line 8955 "./fweave.web"
8836
10237
 
8837
10238
next_control= ignore;
8838
10239
}
8839
10240
else
8840
10241
{
 
10242
/* 308: */
 
10243
#line 8966 "./fweave.web"
8841
10244
 
8842
10245
 
8843
10246
if(Fortran88&&(auto_semi&&!free_Fortran))
8847
10250
}
8848
10251
 
8849
10252
 
 
10253
/* :308 */
 
10254
#line 8960 "./fweave.web"
8850
10255
 
8851
10256
next_control= (nuweb_mode?begin_meta:get_next());
8852
10257
}
8853
10258
}
8854
10259
 
8855
 
 
8856
 
 
 
10260
/* :307 */
 
10261
#line 8757 "./fweave.web"
 
10262
 
 
10263
 
 
10264
/* 302: */
 
10265
#line 8797 "./fweave.web"
8857
10266
 
8858
10267
{
8859
10268
app_hdr("code");
8860
10269
}
8861
10270
 
 
10271
/* :302 */
 
10272
#line 8759 "./fweave.web"
8862
10273
 
8863
10274
}
8864
10275
else
8873
10284
this_module= cur_module;
8874
10285
}
8875
10286
the_module= cur_module;
 
10287
/* 304: */
 
10288
#line 8827 "./fweave.web"
8876
10289
 
8877
10290
{
8878
10291
LANGUAGE saved_language= language;
8883
10296
 
8884
10297
do
8885
10298
next_control= get_next();
8886
 
while(next_control==053);
 
10299
while(next_control=='+');
8887
10300
 
8888
10301
language= saved_language;
8889
10302
 
8901
10314
 
8902
10315
 
8903
10316
 
8904
 
case 075:
 
10317
case '=':
8905
10318
case eq_eq:
 
10319
/* 307: */
 
10320
#line 8950 "./fweave.web"
8906
10321
 
8907
10322
{
8908
10323
if(!nuweb_mode&&((FORTRAN_LIKE(language)&&!free_form_input)
8909
10324
||(language==TEX)))
8910
10325
{
 
10326
/* 309: */
 
10327
#line 8977 "./fweave.web"
8911
10328
 
8912
10329
{
8913
10330
loc= limit+1;
8915
10332
column_mode= YES;
8916
10333
}
8917
10334
 
 
10335
/* :309 */
 
10336
#line 8955 "./fweave.web"
8918
10337
 
8919
10338
next_control= ignore;
8920
10339
}
8921
10340
else
8922
10341
{
 
10342
/* 308: */
 
10343
#line 8966 "./fweave.web"
8923
10344
 
8924
10345
 
8925
10346
if(Fortran88&&(auto_semi&&!free_Fortran))
8929
10350
}
8930
10351
 
8931
10352
 
 
10353
/* :308 */
 
10354
#line 8960 "./fweave.web"
8932
10355
 
8933
10356
next_control= (nuweb_mode?begin_meta:get_next());
8934
10357
}
8935
10358
}
8936
10359
 
 
10360
/* :307 */
 
10361
#line 8856 "./fweave.web"
8937
10362
 
8938
10363
break;
8939
10364
 
8973
10398
app_scrap(ignore_scrap,no_math);
8974
10399
}
8975
10400
 
 
10401
/* :304 */
 
10402
#line 8774 "./fweave.web"
8976
10403
;
8977
10404
}
8978
10405
 
8980
10407
while(next_control<=module_name)
8981
10408
{
8982
10409
outr_parse();
 
10410
/* 310: */
 
10411
#line 8985 "./fweave.web"
8983
10412
 
8984
10413
 
8985
10414
if(next_control<module_name)
9004
10433
}
9005
10434
else if(next_control==module_name)
9006
10435
{
 
10436
/* 311: */
 
10437
#line 9014 "./fweave.web"
9007
10438
 
9008
10439
{
9009
10440
if(cur_module)
9014
10445
app_scrap(cur_module!=NULL?cur_module->mod_ilk:expr,maybe_math);
9015
10446
}
9016
10447
 
 
10448
/* :311 */
 
10449
#line 9009 "./fweave.web"
9017
10450
 
9018
10451
next_control= (nuweb_mode?begin_meta:get_next());
9019
10452
}
9020
10453
 
 
10454
/* :310 */
 
10455
#line 8781 "./fweave.web"
9021
10456
;
9022
10457
}
9023
10458
 
 
10459
/* 305: */
 
10460
#line 8898 "./fweave.web"
9024
10461
 
9025
10462
{
9026
10463
boolean nuweb_mode0= nuweb_mode;
9030
10467
frz_params();
9031
10468
}
9032
10469
 
 
10470
/* :305 */
 
10471
#line 8784 "./fweave.web"
9033
10472
 
9034
10473
fin_C();
9035
10474
unnamed_section= NO;
9036
10475
}
9037
10476
}
9038
10477
 
 
10478
/* :300 */
 
10479
/* 303: */
 
10480
#line 8805 "./fweave.web"
9039
10481
 
9040
10482
 
9041
10483
SRTN
9057
10499
app_scrap(ignore_scrap,no_math);
9058
10500
}
9059
10501
 
 
10502
/* :303 */
 
10503
/* 306: */
 
10504
#line 8915 "./fweave.web"
9060
10505
 
9061
10506
 
9062
10507
SRTN
9091
10536
APP_STR(s0);
9092
10537
}
9093
10538
 
 
10539
/* :306 */
 
10540
/* 312: */
 
10541
#line 9025 "./fweave.web"
9094
10542
 
9095
10543
 
9096
10544
SRTN
9107
10555
switch(last_control)
9108
10556
{
9109
10557
case WEB_definition:
 
10558
/* 313: */
 
10559
#line 9070 "./fweave.web"
9110
10560
 
9111
10561
{
9112
10562
if((next_control= get_next())!=identifier)
9116
10566
 
9117
10567
else
9118
10568
{
9119
 
app(044);APP_ID;
 
10569
app('$');APP_ID;
9120
10570
 
9121
 
if(*loc==050)
 
10571
if(*loc=='(')
9122
10572
{
9123
10573
reswitch:switch(next_control= get_next())
9124
10574
{
9125
 
case 050:case 054:
 
10575
case '(':case ',':
9126
10576
app(next_control);goto reswitch;
9127
10577
case identifier:
9128
10578
APP_ID;
9129
10579
goto reswitch;
9130
10580
case ellipsis:
9131
10581
APP_STR("\\dots");
9132
 
if((next_control= get_next())!=051)
 
10582
if((next_control= get_next())!=')')
9133
10583
{
9134
10584
 
9135
10585
err0_print(ERR_M,OC("Improper deferred macro \
9136
10586
definition: expected ')' after ellipsis"),0);
9137
10587
break;
9138
10588
}
9139
 
case 051:app(next_control);app(040);
 
10589
case ')':app(next_control);app(' ');
9140
10590
break;
9141
10591
default:
9142
10592
err0_print(ERR_M,OC("Improper deferred macro definition: \
9144
10594
}
9145
10595
}
9146
10596
 
9147
 
app(044);app(break_space);
 
10597
app('$');app(break_space);
9148
10598
app_scrap(ignore_scrap,no_math);
9149
10599
 
9150
10600
}
9151
10601
}
9152
10602
 
 
10603
/* :313 */
 
10604
#line 9041 "./fweave.web"
9153
10605
;
9154
10606
break;
9155
10607
}
9159
10611
save_base= scrp_base;
9160
10612
scrp_base= scrp_ptr+1;
9161
10613
 
9162
 
*limit= 0100;*(limit+1)= 0155;
 
10614
*limit= '@';*(limit+1)= 'm';
9163
10615
next_control= ignore;
9164
10616
 
9165
10617
if(language==TEX)language= C;
9178
10630
app_scrap(ignore_scrap,no_math);
9179
10631
}
9180
10632
 
 
10633
/* :312 */
 
10634
#line 47 "./fweave.web"
9181
10635
 
9182
10636
#endif 
9183
10637
 
9184
10638
#if(part == 0 || part == 3)
 
10639
/* 206: */
 
10640
#line 5699 "./fweave.web"
9185
10641
 
9186
10642
 
9187
10643
SRTN
9223
10679
}
9224
10680
}
9225
10681
 
 
10682
/* :206 */
 
10683
/* 209: */
 
10684
#line 5790 "./fweave.web"
9226
10685
 
9227
10686
 
9228
10687
SRTN
9250
10709
}
9251
10710
}
9252
10711
 
 
10712
/* :209 */
 
10713
/* 217: */
 
10714
#line 6308 "./fweave.web"
9253
10715
 
9254
10716
 
9255
10717
OPERATOR HUGE*
9261
10723
 
9262
10724
switch(op_code)
9263
10725
{
9264
 
case 057:
9265
 
case 053:
9266
 
case 074:
9267
 
case 076:
9268
 
case 075:
9269
 
case 045:
9270
 
case 041:
9271
 
case 0176:
9272
 
case 055:
9273
 
case 052:
9274
 
case 046:
9275
 
case 0174:
9276
 
case 077:
9277
 
case 0136:
 
10726
case '/':
 
10727
case '+':
 
10728
case '<':
 
10729
case '>':
 
10730
case '=':
 
10731
case '%':
 
10732
case '!':
 
10733
case '~':
 
10734
case '-':
 
10735
case '*':
 
10736
case '&':
 
10737
case '|':
 
10738
case '?':
 
10739
case '^':
9278
10740
case ellipsis:
9279
10741
case not_eq:
9280
10742
case lt_eq:
9296
10758
 
9297
10759
case compound_assignment:
9298
10760
if(assignment_token==or_or_or)
9299
 
return op+0174;
 
10761
return op+'|';
9300
10762
 
9301
10763
p= op+CA_START+assignment_token;
9302
10764
if(p>=op+128)
9311
10773
case identifier:
9312
10774
if(!FORTRAN_LIKE(language))return NULL;
9313
10775
 
 
10776
/* 218: */
 
10777
#line 6377 "./fweave.web"
9314
10778
 
9315
10779
{
9316
10780
ASCII id[255];
9329
10793
return p;
9330
10794
}
9331
10795
 
 
10796
/* :218 */
 
10797
#line 6370 "./fweave.web"
9332
10798
 
9333
10799
}
9334
10800
 
9335
10801
return NULL;
9336
10802
}
9337
10803
 
 
10804
/* :217 */
 
10805
/* 219: */
 
10806
#line 6405 "./fweave.web"
9338
10807
 
9339
10808
 
9340
10809
SRTN
9375
10844
app(wt_style.dot_delimiter.begin);
9376
10845
app_ASCII_str(p->op_name);
9377
10846
app(wt_style.dot_delimiter.end);
9378
 
app(0175);
 
10847
app('}');
9379
10848
app_scrap(binop,yes_math);
9380
10849
return;
9381
10850
}
9383
10852
app_scrap(q->cat,yes_math);
9384
10853
}
9385
10854
 
 
10855
/* :219 */
 
10856
/* 248: */
 
10857
#line 7115 "./fweave.web"
9386
10858
 
9387
10859
 
9388
10860
SRTN
9414
10886
 
9415
10887
continue;
9416
10888
 
 
10889
/* 250: */
 
10890
#line 7223 "./fweave.web"
9417
10891
 
9418
10892
 
9419
10893
case protect_code:
9423
10897
copying= BOOLEAN(!copying);break;
9424
10898
 
9425
10899
case turn_output_off:
 
10900
#line 7233 "./fweave.web"
9426
10901
output_on= NO;
9427
10902
break;
9428
10903
 
9429
10904
case turn_output_on:
 
10905
#line 7238 "./fweave.web"
9430
10906
output_on= YES;
9431
10907
break;
9432
10908
 
9433
10909
case Turn_output_off:
9434
10910
skip_file();
9435
10911
strt_off= YES;
 
10912
#line 7245 "./fweave.web"
9436
10913
output_on= NO;
9437
10914
break;
9438
10915
 
9439
10916
case Turn_output_on:
9440
10917
strt_off= NO;
 
10918
#line 7251 "./fweave.web"
9441
10919
output_on= YES;
9442
10920
break;
9443
10921
 
9444
10922
 
 
10923
/* :250 */
 
10924
#line 7146 "./fweave.web"
9445
10925
 
9446
10926
 
9447
10927
case out_force:
9452
10932
 
9453
10933
case identifier:case res_word:
9454
10934
if(output_on)
 
10935
/* 253: */
 
10936
#line 7290 "./fweave.web"
9455
10937
 
9456
10938
{
9457
10939
if(nuweb_mode)
9464
10946
}
9465
10947
}
9466
10948
else
 
10949
/* 254: */
 
10950
#line 7314 "./fweave.web"
9467
10951
 
9468
10952
{
9469
10953
boolean all_uc= cur_name->info.upper_case;
9486
10970
 
9487
10971
 
9488
10972
else
 
10973
/* 255: */
 
10974
#line 7348 "./fweave.web"
9489
10975
 
9490
10976
switch(DEFINED_TYPE(cur_name))
9491
10977
{
9505
10991
 
9506
10992
}
9507
10993
 
 
10994
/* :255 */
 
10995
#line 7336 "./fweave.web"
9508
10996
 
9509
10997
}
9510
10998
else
9515
11003
out_name(NULL,YES,IDENTIFIER,cur_name);
9516
11004
}
9517
11005
 
 
11006
/* :254 */
 
11007
#line 7302 "./fweave.web"
9518
11008
 
9519
11009
}
9520
11010
 
9521
11011
 
 
11012
/* :253 */
 
11013
#line 7156 "./fweave.web"
9522
11014
 
9523
11015
break;
9524
11016
 
9525
11017
case mod_name:
9526
11018
if(output_on)
 
11019
/* 261: */
 
11020
#line 7494 "./fweave.web"
9527
11021
 
9528
11022
#if FCN_CALLS
9529
11023
out_md_name();
9530
11024
#else
 
11025
/* 263: */
 
11026
#line 7514 "./fweave.web"
9531
11027
 
9532
11028
{
9533
11029
name_pointer cur_mod_name;
9553
11049
}
9554
11050
}
9555
11051
}
9556
 
else out(060);
 
11052
else out('0');
9557
11053
 
9558
 
out(0175);
 
11054
out('}');
 
11055
/* 265: */
 
11056
#line 7561 "./fweave.web"
9559
11057
 
9560
11058
{
9561
11059
ASCII HUGE*k,HUGE*k_limit;
9570
11068
{
9571
11069
b= *(k++);
9572
11070
 
9573
 
if(b==0100)
9574
 
 
9575
 
if(*k++!=0100)
 
11071
if(b=='@')/* 266: */
 
11072
#line 7589 "./fweave.web"
 
11073
 
 
11074
 
 
11075
if(*k++!='@')
9576
11076
{
9577
11077
SET_COLOR(error);
9578
11078
printf("\n! Illegal control code in section name: <");
9581
11081
mark_error;
9582
11082
}
9583
11083
 
 
11084
/* :266 */
 
11085
#line 7575 "./fweave.web"
9584
11086
;
9585
11087
 
9586
 
if(b!=0174)out(b)
 
11088
if(b!='|')out(b)
9587
11089
else
9588
11090
{
 
11091
/* 267: */
 
11092
#line 7606 "./fweave.web"
9589
11093
 
9590
11094
{
9591
11095
ASCII delim;
9592
11096
 
9593
 
j= limit+1;*j= 0174;delim= 0;
 
11097
j= limit+1;*j= '|';delim= 0;
9594
11098
 
9595
11099
WHILE()
9596
11100
{
9606
11110
 
9607
11111
b= *(k++);
9608
11112
 
9609
 
if(b==0100)
 
11113
if(b=='@')
 
11114
/* 268: */
 
11115
#line 7646 "./fweave.web"
9610
11116
 
9611
11117
{
9612
11118
if(j>cur_buffer+buf_size-3)OVERFLW("buffer","");
9613
11119
 
9614
 
*(++j)= 0100;*(++j)= *(k++);
 
11120
*(++j)= '@';*(++j)= *(k++);
9615
11121
}
9616
11122
 
 
11123
/* :268 */
 
11124
#line 7627 "./fweave.web"
9617
11125
 
9618
11126
else
9619
11127
{
9620
 
if(b==047||b==042)
 
11128
if(b=='\''||b=='"')
9621
11129
if(delim==0)delim= b;
9622
11130
else if((eight_bits)delim==b)delim= 0;
9623
11131
 
9624
 
if(b!=0174||delim!=0)
 
11132
if(b!='|'||delim!=0)
9625
11133
{
9626
11134
if(j>cur_buffer+buf_size-2)OVERFLW("buffer","");
9627
11135
 
9632
11140
}
9633
11141
}
9634
11142
 
 
11143
/* :267 */
 
11144
#line 7580 "./fweave.web"
9635
11145
;
9636
11146
save_loc= loc;save_limit= limit;loc= limit+2;limit= j+1;
9637
 
*limit= 0174;output_C();
 
11147
*limit= '|';output_C();
9638
11148
loc= save_loc;limit= save_limit;
9639
11149
}
9640
11150
}
9641
11151
}
9642
11152
 
 
11153
/* :265 */
 
11154
#line 7542 "./fweave.web"
9643
11155
;
9644
11156
OUT_STR("\\X ");
9645
11157
 
9649
11161
OUT_STR("\\X");
9650
11162
}
9651
11163
 
 
11164
/* :263 */
 
11165
#line 7498 "./fweave.web"
9652
11166
 
9653
11167
#endif
9654
11168
 
 
11169
/* :261 */
 
11170
#line 7161 "./fweave.web"
9655
11171
break;
9656
11172
 
9657
11173
case math_bin:case math_rel:
 
11174
/* 256: */
 
11175
#line 7368 "./fweave.web"
9658
11176
 
9659
11177
 
9660
11178
OUT_STR(a==math_bin?"\\mathbin{":"\\mathrel{");
9661
11179
 
9662
11180
 
9663
11181
 
 
11182
/* :256 */
 
11183
#line 7164 "./fweave.web"
9664
11184
;break;
9665
11185
 
9666
11186
case toggle_meta:
9672
11192
{
9673
11193
if(a==indent)c++;if(a==outdent)c--;
9674
11194
}
 
11195
/* 260: */
 
11196
#line 7482 "./fweave.web"
9675
11197
 
9676
11198
 
9677
11199
for(;c>0;c--)OUT_STR("\\1");
9678
11200
 
9679
11201
for(;c<0;c++)OUT_STR("\\2");
9680
11202
 
 
11203
/* :260 */
 
11204
#line 7175 "./fweave.web"
9681
11205
;
9682
11206
goto reswitch;
9683
11207
 
9684
11208
case big_cancel:
9685
11209
c= 0;
9686
 
while(((a= get_output())>=indent||a==040)&&a<=big_force)
 
11210
while(((a= get_output())>=indent||a==' ')&&a<=big_force)
9687
11211
{
9688
11212
if(a==indent)c++;if(a==outdent)c--;
9689
11213
}
 
11214
/* 260: */
 
11215
#line 7482 "./fweave.web"
9690
11216
 
9691
11217
 
9692
11218
for(;c>0;c--)OUT_STR("\\1");
9693
11219
 
9694
11220
for(;c<0;c++)OUT_STR("\\2");
9695
11221
 
 
11222
/* :260 */
 
11223
#line 7184 "./fweave.web"
9696
11224
;
9697
11225
goto reswitch;
9698
11226
 
9699
11227
case indent:case outdent:case opt:case backup:case break_space:
9700
11228
case force:case big_force:
 
11229
/* 257: */
 
11230
#line 7377 "./fweave.web"
9701
11231
 
9702
11232
 
9703
11233
if(a<break_space)
9706
11236
{
9707
11237
if(output_on)
9708
11238
{
9709
 
out(0134);out(a-cancel+060);
 
11239
out('\\');out(a-cancel+'0');
9710
11240
 
9711
11241
}
9712
11242
if(a==opt)
9723
11253
b= get_output();
9724
11254
}
9725
11255
else
 
11256
/* 258: */
 
11257
#line 7411 "./fweave.web"
9726
11258
 
9727
11259
{
9728
11260
boolean save_mode;
9735
11267
 
9736
11268
if(a==cancel||a==big_cancel)
9737
11269
{
 
11270
/* 260: */
 
11271
#line 7482 "./fweave.web"
9738
11272
 
9739
11273
 
9740
11274
for(;c>0;c--)OUT_STR("\\1");
9741
11275
 
9742
11276
for(;c<0;c++)OUT_STR("\\2");
9743
11277
 
 
11278
/* :260 */
 
11279
#line 7423 "./fweave.web"
9744
11280
;
9745
11281
goto reswitch;
9746
11282
}
9747
11283
 
9748
 
if((a!=040&&a<indent)||a==backup||a>big_force)
 
11284
if((a!=' '&&a<indent)||a==backup||a>big_force)
 
11285
/* 259: */
 
11286
#line 7445 "./fweave.web"
9749
11287
 
9750
11288
{
9751
11289
if(save_mode==outer)
9753
11291
if(out_ptr>out_buf+5&&STRNCMP(out_ptr-5,"\\WY\\WP",6)==0)
9754
11292
goto reswitch;
9755
11293
 
 
11294
/* 260: */
 
11295
#line 7482 "./fweave.web"
9756
11296
 
9757
11297
 
9758
11298
for(;c>0;c--)OUT_STR("\\1");
9759
11299
 
9760
11300
for(;c<0;c++)OUT_STR("\\2");
9761
11301
 
 
11302
/* :260 */
 
11303
#line 7452 "./fweave.web"
9762
11304
;
9763
11305
 
9764
11306
if(output_on)
9772
11314
}
9773
11315
else
9774
11316
{
9775
 
out(0134);out(b-cancel+060);
 
11317
out('\\');out(b-cancel+'0');
9776
11318
}
9777
11319
if(a!=end_translation)
9778
11320
fin_line();
9779
11321
}
9780
11322
else if(a!=end_translation&&cur_mode==inner)
9781
11323
if(output_on)
9782
 
out(040);
 
11324
out(' ');
9783
11325
 
9784
11326
 
9785
11327
goto reswitch;
9786
11328
}
9787
11329
 
 
11330
/* :259 */
 
11331
#line 7428 "./fweave.web"
9788
11332
 
9789
11333
 
9790
11334
if(a==indent)
9801
11345
}
9802
11346
}
9803
11347
 
 
11348
/* :258 */
 
11349
#line 7402 "./fweave.web"
9804
11350
;
9805
11351
 
9806
11352
 
 
11353
/* :257 */
 
11354
#line 7190 "./fweave.web"
9807
11355
;break;
9808
11356
 
9809
11357
case interior_semi:
9810
11358
if(output_on)out(';');
9811
11359
break;
9812
11360
 
9813
 
case 052:
 
11361
case '*':
9814
11362
if(!(copying||nuweb_mode))
9815
11363
{
9816
11364
OUT_STR("\\ast ");
9831
11379
}
9832
11380
}
9833
11381
 
 
11382
/* :248 */
 
11383
/* 251: */
 
11384
#line 7256 "./fweave.web"
9834
11385
 
9835
11386
SRTN
9836
11387
skip_file(VOID)
9849
11400
#undef TEMP_LEN
9850
11401
}
9851
11402
 
 
11403
/* :251 */
 
11404
/* 252: */
 
11405
#line 7273 "./fweave.web"
9852
11406
 
9853
11407
SRTN
9854
11408
out_skip(VOID)
9855
11409
{
 
11410
/* 176: */
 
11411
#line 4971 "./fweave.web"
9856
11412
 
9857
11413
{
9858
11414
static int outer_include_depth;
9872
11428
}
9873
11429
}
9874
11430
 
 
11431
/* :176 */
 
11432
#line 7277 "./fweave.web"
9875
11433
;
9876
11434
 
9877
11435
if(!output_on)
9883
11441
}
9884
11442
}
9885
11443
 
 
11444
/* :252 */
 
11445
/* 262: */
 
11446
#line 7502 "./fweave.web"
9886
11447
 
9887
11448
 
9888
11449
#if FCN_CALLS
9890
11451
SRTN
9891
11452
out_md_name(VOID)
9892
11453
{
 
11454
/* 263: */
 
11455
#line 7514 "./fweave.web"
9893
11456
 
9894
11457
{
9895
11458
name_pointer cur_mod_name;
9915
11478
}
9916
11479
}
9917
11480
}
9918
 
else out(060);
 
11481
else out('0');
9919
11482
 
9920
 
out(0175);
 
11483
out('}');
 
11484
/* 265: */
 
11485
#line 7561 "./fweave.web"
9921
11486
 
9922
11487
{
9923
11488
ASCII HUGE*k,HUGE*k_limit;
9932
11497
{
9933
11498
b= *(k++);
9934
11499
 
9935
 
if(b==0100)
9936
 
 
9937
 
if(*k++!=0100)
 
11500
if(b=='@')/* 266: */
 
11501
#line 7589 "./fweave.web"
 
11502
 
 
11503
 
 
11504
if(*k++!='@')
9938
11505
{
9939
11506
SET_COLOR(error);
9940
11507
printf("\n! Illegal control code in section name: <");
9943
11510
mark_error;
9944
11511
}
9945
11512
 
 
11513
/* :266 */
 
11514
#line 7575 "./fweave.web"
9946
11515
;
9947
11516
 
9948
 
if(b!=0174)out(b)
 
11517
if(b!='|')out(b)
9949
11518
else
9950
11519
{
 
11520
/* 267: */
 
11521
#line 7606 "./fweave.web"
9951
11522
 
9952
11523
{
9953
11524
ASCII delim;
9954
11525
 
9955
 
j= limit+1;*j= 0174;delim= 0;
 
11526
j= limit+1;*j= '|';delim= 0;
9956
11527
 
9957
11528
WHILE()
9958
11529
{
9968
11539
 
9969
11540
b= *(k++);
9970
11541
 
9971
 
if(b==0100)
 
11542
if(b=='@')
 
11543
/* 268: */
 
11544
#line 7646 "./fweave.web"
9972
11545
 
9973
11546
{
9974
11547
if(j>cur_buffer+buf_size-3)OVERFLW("buffer","");
9975
11548
 
9976
 
*(++j)= 0100;*(++j)= *(k++);
 
11549
*(++j)= '@';*(++j)= *(k++);
9977
11550
}
9978
11551
 
 
11552
/* :268 */
 
11553
#line 7627 "./fweave.web"
9979
11554
 
9980
11555
else
9981
11556
{
9982
 
if(b==047||b==042)
 
11557
if(b=='\''||b=='"')
9983
11558
if(delim==0)delim= b;
9984
11559
else if((eight_bits)delim==b)delim= 0;
9985
11560
 
9986
 
if(b!=0174||delim!=0)
 
11561
if(b!='|'||delim!=0)
9987
11562
{
9988
11563
if(j>cur_buffer+buf_size-2)OVERFLW("buffer","");
9989
11564
 
9994
11569
}
9995
11570
}
9996
11571
 
 
11572
/* :267 */
 
11573
#line 7580 "./fweave.web"
9997
11574
;
9998
11575
save_loc= loc;save_limit= limit;loc= limit+2;limit= j+1;
9999
 
*limit= 0174;output_C();
 
11576
*limit= '|';output_C();
10000
11577
loc= save_loc;limit= save_limit;
10001
11578
}
10002
11579
}
10003
11580
}
10004
11581
 
 
11582
/* :265 */
 
11583
#line 7542 "./fweave.web"
10005
11584
;
10006
11585
OUT_STR("\\X ");
10007
11586
 
10011
11590
OUT_STR("\\X");
10012
11591
}
10013
11592
 
 
11593
/* :263 */
 
11594
#line 7509 "./fweave.web"
10014
11595
 
10015
11596
}
10016
11597
#endif
10017
11598
 
 
11599
/* :262 */
 
11600
/* 317: */
 
11601
#line 9175 "./fweave.web"
10018
11602
 
10019
11603
 
10020
11604
SRTN
10029
11613
 
10030
11614
 
10031
11615
 
10032
 
out(flag==0?0125:0101);
 
11616
out(flag==0?'U':'A');
10033
11617
 
10034
11618
OUT_STR(" section");
10035
 
 
10036
 
 
10037
 
q= cur_xref;if(q->xlink->num>flag)out(0163);
10038
 
out(0176);
 
11619
/* 318: */
 
11620
#line 9201 "./fweave.web"
 
11621
 
 
11622
 
 
11623
q= cur_xref;if(q->xlink->num>flag)out('s');
 
11624
out('~');
10039
11625
 
10040
11626
WHILE()
10041
11627
{
10044
11630
 
10045
11631
if(cur_xref->num<=flag)break;
10046
11632
 
10047
 
if(cur_xref->xlink->num>flag||cur_xref!=q->xlink)out(054);
10048
 
 
10049
 
 
10050
 
out(040);
 
11633
if(cur_xref->xlink->num>flag||cur_xref!=q->xlink)out(',');
 
11634
 
 
11635
 
 
11636
out(' ');
10051
11637
 
10052
11638
if(cur_xref->xlink->num<=flag)
10053
11639
OUT_STR("and~");
10054
11640
}
10055
11641
 
 
11642
/* :318 */
 
11643
#line 9192 "./fweave.web"
10056
11644
;
10057
 
out(056);
 
11645
out('.');
10058
11646
fin_line();
10059
11647
}
10060
11648
 
 
11649
/* :317 */
 
11650
/* 320: */
 
11651
#line 9260 "./fweave.web"
10061
11652
 
10062
11653
 
10063
11654
SRTN
10068
11659
if(no_xref&&!prn_contents)
10069
11660
{
10070
11661
fin_line();
 
11662
/* 321: */
 
11663
#line 9333 "./fweave.web"
10071
11664
 
10072
11665
{
10073
11666
OUT_STR("\\vfill");fin_line();
10074
11667
OUT_STR("\\FWEBend");fin_line();
10075
11668
}
10076
11669
 
 
11670
/* :321 */
 
11671
#line 9270 "./fweave.web"
10077
11672
 
10078
11673
}
10079
11674
else
10101
11696
 
10102
11697
fin_line();
10103
11698
 
 
11699
/* 322: */
 
11700
#line 9343 "./fweave.web"
10104
11701
 
10105
11702
{
10106
11703
outer_char HUGE*temp;
10117
11714
nsprintf(temp,OC(" {%s}"),1,XLANGUAGE_NAME_PTR(global_language))>=(int)(N_CMD))OVERFLW("temp","");
10118
11715
OUT_STR(temp);fin_line();
10119
11716
 
 
11717
/* 323: */
 
11718
#line 9365 "./fweave.web"
10120
11719
 
10121
11720
{
10122
11721
RCS HUGE*prcs;
10137
11736
if(num_keywords>0)
10138
11737
{
10139
11738
out_str(w_style.modules.kwd);
10140
 
out(0163);
 
11739
out('s');
10141
11740
fin_line();
10142
11741
}
10143
11742
 
10146
11745
prcs= rcs_ptrs[k];
10147
11746
 
10148
11747
out_str(w_style.modules.kwd);
10149
 
out(0173);
 
11748
out('{');
10150
11749
out_atext(prcs->keyword);
10151
 
out(0175);
10152
 
out(0173);
 
11750
out('}');
 
11751
out('{');
10153
11752
out_atext(prcs->txt);
10154
 
out(0175);
 
11753
out('}');
10155
11754
fin_line();
10156
11755
}
10157
11756
}
10158
11757
 
 
11758
/* :323 */
 
11759
#line 9357 "./fweave.web"
10159
11760
 
10160
11761
 
10161
11762
FREE_MEM(temp,"temp",N_CMD,outer_char);
10162
11763
}
10163
11764
 
 
11765
/* :322 */
 
11766
#line 9297 "./fweave.web"
10164
11767
 
10165
11768
 
10166
11769
}
10182
11785
OUT_STR("\\FWEBend");fin_line();
10183
11786
}
10184
11787
else
 
11788
/* 321: */
 
11789
#line 9333 "./fweave.web"
10185
11790
 
10186
11791
{
10187
11792
OUT_STR("\\vfill");fin_line();
10188
11793
OUT_STR("\\FWEBend");fin_line();
10189
11794
}
10190
11795
 
 
11796
/* :321 */
 
11797
#line 9316 "./fweave.web"
10191
11798
 
10192
11799
 
10193
11800
if(prn_index)
 
11801
/* 348: */
 
11802
#line 9963 "./fweave.web"
10194
11803
 
10195
11804
{
10196
11805
writing(YES,temp_ndx);
10202
11811
 
10203
11812
if(makeindex)
10204
11813
{
 
11814
/* 349: */
 
11815
#line 10010 "./fweave.web"
10205
11816
 
10206
11817
{
10207
11818
mx_open(w_style.indx.m_sty);
10336
11947
fclose(mx_file);
10337
11948
}
10338
11949
 
 
11950
/* :349 */
 
11951
#line 9974 "./fweave.web"
10339
11952
 
10340
11953
 
10341
11954
mx_open(w_style.indx.m_out);
10344
11957
 
10345
11958
if(change_exists)
10346
11959
{
 
11960
/* 327: */
 
11961
#line 9463 "./fweave.web"
10347
11962
 
10348
11963
{
10349
11964
 
10363
11978
OUT_STR(", ");out_mod(k_module,ENCAP);
10364
11979
}
10365
11980
 
10366
 
out(056);
 
11981
out('.');
10367
11982
}
10368
11983
 
 
11984
/* :327 */
 
11985
#line 9982 "./fweave.web"
10369
11986
;
10370
11987
fin_line();
10371
11988
fin_line();
10374
11991
OUT_STR(w_style.indx.preamble);fin_line();
10375
11992
 
10376
11993
 
 
11994
/* 330: */
 
11995
#line 9514 "./fweave.web"
10377
11996
 
10378
11997
{
10379
11998
int c;
10402
12021
}
10403
12022
}
10404
12023
 
 
12024
/* :330 */
 
12025
#line 9990 "./fweave.web"
10405
12026
;
 
12027
/* 338: */
 
12028
#line 9625 "./fweave.web"
10406
12029
 
10407
12030
 
10408
12031
w_style.indx.collate= x__to_ASCII((outer_char*)w_style.indx.collate);
10416
12039
cur_depth= sort_ptr->depth;
10417
12040
 
10418
12041
if(blink[sort_ptr->head-name_dir]==0||cur_depth==INFTY)
 
12042
/* 340: */
 
12043
#line 9671 "./fweave.web"
10419
12044
 
10420
12045
{
10421
12046
cur_name= sort_ptr->head;
10422
12047
 
 
12048
/* 341: */
 
12049
#line 9698 "./fweave.web"
10423
12050
 
10424
12051
{
10425
12052
ASCII letter= *cur_name->byte_start;
10427
12054
 
10428
12055
 
10429
12056
 
10430
 
if(letter==0134&&cur_name->ilk==normal&&language!=TEX)
 
12057
if(letter=='\\'&&cur_name->ilk==normal&&language!=TEX)
10431
12058
letter= NON_TEX_MACRO;
10432
12059
else
10433
12060
letter= A_TO_LOWER(letter);
10445
12072
 
10446
12073
switch(letter)
10447
12074
{
10448
 
 
10449
 
 
10450
 
 
10451
 
 
10452
 
case 0134:case 0173:case 0175
10453
 
 
 
12075
/* 223: */
 
12076
#line 6548 "./fweave.web"
 
12077
 
 
12078
 
 
12079
/* 224: */
 
12080
#line 6554 "./fweave.web"
 
12081
 
 
12082
 
 
12083
case '\\':case '{':case '}'
 
12084
 
 
12085
/* :224 */
 
12086
#line 6550 "./fweave.web"
10454
12087
:
10455
 
 
10456
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
10457
 
case 0176:case 046:case 0137
10458
 
 
10459
 
 
10460
 
 
10461
 
:out(0134);
 
12088
/* 225: */
 
12089
#line 6559 "./fweave.web"
 
12090
 
 
12091
case ' ':case '#':case '%':case '$':case '^':case '`':
 
12092
case '~':case '&':case '_'
 
12093
 
 
12094
/* :225 */
 
12095
#line 6551 "./fweave.web"
 
12096
 
 
12097
 
 
12098
/* :223 */
 
12099
#line 9723 "./fweave.web"
 
12100
:out('\\');
10462
12101
}
10463
12102
out((w_style.indx.lethead_flag>0?A_TO_UPPER(letter):
10464
12103
A_TO_LOWER(letter)));
10473
12112
last_letter= letter;
10474
12113
}
10475
12114
 
 
12115
/* :341 */
 
12116
#line 9675 "./fweave.web"
10476
12117
 
10477
12118
 
10478
12119
do
10481
12122
{
10482
12123
OUT_STR(w_style.indx.item_0);
10483
12124
 
 
12125
/* 342: */
 
12126
#line 9739 "./fweave.web"
10484
12127
 
10485
12128
{
10486
12129
boolean all_uc= cur_name->info.upper_case;
10507
12150
else if(length(cur_name)==1)
10508
12151
OUT_STR(pfrmt->short_id);
10509
12152
else
 
12153
/* 255: */
 
12154
#line 7348 "./fweave.web"
10510
12155
 
10511
12156
switch(DEFINED_TYPE(cur_name))
10512
12157
{
10526
12171
 
10527
12172
}
10528
12173
 
 
12174
/* :255 */
 
12175
#line 9765 "./fweave.web"
10529
12176
 
10530
12177
break;
10531
12178
 
10546
12193
out_name(m_temp1,YES,output_type,cur_name);
10547
12194
}
10548
12195
 
 
12196
/* :342 */
 
12197
#line 9683 "./fweave.web"
10549
12198
;
 
12199
/* 343: */
 
12200
#line 9791 "./fweave.web"
10550
12201
 
10551
12202
{
 
12203
/* 345: */
 
12204
#line 9901 "./fweave.web"
10552
12205
 
10553
12206
 
10554
12207
this_xref= (xref_pointer)cur_name->xref;cur_xref= xmem;
10560
12213
}
10561
12214
while(this_xref!=xmem);
10562
12215
 
 
12216
/* :345 */
 
12217
#line 9793 "./fweave.web"
10563
12218
;
10564
12219
 
10565
12220
OUT_STR(w_style.indx.delim_0);
10660
12315
OUT_STR(w_style.indx.delim_n);
10661
12316
}
10662
12317
 
10663
 
out(056);fin_line();
 
12318
out('.');fin_line();
10664
12319
}
10665
12320
 
 
12321
/* :343 */
 
12322
#line 9684 "./fweave.web"
10666
12323
;
10667
12324
}
10668
12325
 
10673
12330
--sort_ptr;
10674
12331
}
10675
12332
 
10676
 
 
10677
 
else
 
12333
/* :340 */
 
12334
#line 9638 "./fweave.web"
 
12335
 
 
12336
else/* 339: */
 
12337
#line 9643 "./fweave.web"
 
12338
 
10678
12339
{
10679
12340
ASCII c;
10680
12341
 
10701
12362
--sort_ptr;unbucket((eight_bits)(cur_depth+(eight_bits)1));
10702
12363
}
10703
12364
 
 
12365
/* :339 */
 
12366
#line 9639 "./fweave.web"
10704
12367
;
10705
12368
}
10706
12369
 
 
12370
/* :338 */
 
12371
#line 9991 "./fweave.web"
10707
12372
;
10708
12373
 
10709
12374
OUT_STR(w_style.indx.postamble);fin_line();
10710
12375
 
10711
12376
}
10712
12377
 
 
12378
/* :348 */
 
12379
#line 9319 "./fweave.web"
10713
12380
 
10714
12381
 
10715
12382
if(prn_modules)
 
12383
/* 354: */
 
12384
#line 10160 "./fweave.web"
10716
12385
 
10717
12386
{
10718
12387
writing(BOOLEAN(!prn_index),temp_mds);
10726
12395
OUT_STR(w_style.modules.postamble);fin_line();
10727
12396
}
10728
12397
 
 
12398
/* :354 */
 
12399
#line 9322 "./fweave.web"
10729
12400
 
10730
12401
}
10731
12402
 
10736
12407
chk_complete();
10737
12408
}
10738
12409
 
 
12410
/* :320 */
 
12411
/* 324: */
 
12412
#line 9406 "./fweave.web"
10739
12413
 
10740
12414
 
10741
12415
int
10746
12420
return STRCMP((*pp0)->keyword,(*pp1)->keyword);
10747
12421
}
10748
12422
 
 
12423
/* :324 */
 
12424
/* 325: */
 
12425
#line 9425 "./fweave.web"
10749
12426
 
10750
12427
 
10751
12428
ASCII HUGE*
10761
12438
{
10762
12439
switch(*buf)
10763
12440
{
10764
 
 
10765
 
 
10766
 
case 0134:case 0173:case 0175
10767
 
 
 
12441
/* 224: */
 
12442
#line 6554 "./fweave.web"
 
12443
 
 
12444
 
 
12445
case '\\':case '{':case '}'
 
12446
 
 
12447
/* :224 */
 
12448
#line 9440 "./fweave.web"
10768
12449
:
10769
12450
if(!all_cases)break;
10770
12451
 
10771
 
 
10772
 
case 040:case 043:case 045:case 044:case 0136:case 0140:
10773
 
case 0176:case 046:case 0137
10774
 
 
 
12452
/* 225: */
 
12453
#line 6559 "./fweave.web"
 
12454
 
 
12455
case ' ':case '#':case '%':case '$':case '^':case '`':
 
12456
case '~':case '&':case '_'
 
12457
 
 
12458
/* :225 */
 
12459
#line 9443 "./fweave.web"
10775
12460
:
10776
 
TO_TEMP(0134);
 
12461
TO_TEMP('\\');
10777
12462
break;
10778
12463
}
10779
12464
 
10784
12469
return temp0;
10785
12470
}
10786
12471
 
 
12472
/* :325 */
 
12473
/* 337: */
 
12474
#line 9603 "./fweave.web"
10787
12475
 
10788
12476
 
10789
12477
SRTN
10805
12493
}
10806
12494
}
10807
12495
 
 
12496
/* :337 */
 
12497
/* 346: */
 
12498
#line 9916 "./fweave.web"
10808
12499
 
10809
12500
 
10810
12501
SRTN
10825
12516
}
10826
12517
}
10827
12518
 
 
12519
/* :346 */
 
12520
/* 355: */
 
12521
#line 10175 "./fweave.web"
10828
12522
 
10829
12523
 
10830
12524
SRTN
10862
12556
mem_avail(1);
10863
12557
}
10864
12558
 
 
12559
/* :355 */
 
12560
/* 356: */
 
12561
#line 10214 "./fweave.web"
10865
12562
 
10866
12563
 
10867
12564
SRTN
10889
12586
LANGUAGE language0 C1("")
10890
12587
{}
10891
12588
 
 
12589
/* :356 */
 
12590
#line 51 "./fweave.web"
10892
12591
 
10893
12592
#endif 
10894
12593
 
10895
 
 
10896
 
 
10897
 
 
 
12594
/* :1 */
 
12595
/* 56: */
 
12596
#line 123 "./ccodes.hweb"
 
12597
 
 
12598
 
 
12599
#line 466 "./fweave.web"
 
12600
 
 
12601
/* :56 */
 
12602
/* 344: */
 
12603
#line 9868 "./fweave.web"
10898
12604
 
10899
12605
outer_char*
10900
12606
mx_quote FCN((m_out,s))
10924
12630
return m_out;
10925
12631
}
10926
12632
 
 
12633
/* :344 */
 
12634
/* 350: */
 
12635
#line 10076 "./fweave.web"
10927
12636
 
10928
12637
outer_char*
10929
12638
dbl_bslash FCN((m_temp,s))
10937
12646
c= *s++;
10938
12647
 
10939
12648
if(iscntrl(c)||c=='\\')
 
12649
/* 352: */
 
12650
#line 10119 "./fweave.web"
10940
12651
 
10941
12652
{
10942
12653
*p++= '\\';
10958
12669
}
10959
12670
 
10960
12671
 
 
12672
/* :352 */
 
12673
#line 10089 "./fweave.web"
10961
12674
 
10962
12675
 
10963
12676
*p++= c;
10968
12681
return m_temp;
10969
12682
}
10970
12683
 
 
12684
/* :350 */
 
12685
/* 351: */
 
12686
#line 10100 "./fweave.web"
10971
12687
 
10972
12688
 
10973
12689
outer_char*
10978
12694
outer_char*p= m_temp;
10979
12695
 
10980
12696
if(iscntrl(c)||c=='\\')
 
12697
/* 352: */
 
12698
#line 10119 "./fweave.web"
10981
12699
 
10982
12700
{
10983
12701
*p++= '\\';
10999
12717
}
11000
12718
 
11001
12719
 
 
12720
/* :352 */
 
12721
#line 10110 "./fweave.web"
11002
12722
 
11003
12723
 
11004
12724
*p++= c;
11007
12727
return m_temp;
11008
12728
}
11009
12729
 
 
12730
/* :351 */
 
12731
/* 353: */
 
12732
#line 10141 "./fweave.web"
11010
12733
 
11011
12734
SRTN mx_open FCN((ext))
11012
12735
outer_char*ext C1("File extension")
11025
12748
}
11026
12749
}
11027
12750
 
 
12751
/* :353 */
11028
12752