home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume44 / c++2latex / part04 < prev    next >
Internet Message Format  |  1994-08-07  |  59KB

  1. From: joke@germany.eu.net (Joerg Heitkoetter)
  2. Newsgroups: comp.sources.misc
  3. Subject: v44i013:  c++2latex - A set of LaTeX converters for the whole C family, v3.0, Part04/08
  4. Date: 7 Aug 1994 16:43:07 -0500
  5. Organization: Sterling Software
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <323khb$gm8@sparky.sterling.com>
  9. X-Md4-Signature: f921fe040a7db5e5744c029812670dbb
  10.  
  11. Submitted-by: joke@germany.eu.net (Joerg Heitkoetter)
  12. Posting-number: Volume 44, Issue 13
  13. Archive-name: c++2latex/part04
  14. Environment: UNIX, Flex, LaTeX, Sun
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  docs/world.c src/getopt.c src/objc2latex.c.A
  21. # Wrapped by kent@sparky on Sun Aug  7 16:11:53 1994
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 4 (of 8)."'
  25. if test -f 'docs/world.c' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'docs/world.c'\"
  27. else
  28.   echo shar: Extracting \"'docs/world.c'\" \(133 characters\)
  29.   sed "s/^X//" >'docs/world.c' <<'END_OF_FILE'
  30. X/*
  31. X *  The classical program
  32. X */
  33. X
  34. X#include <stdio.h>
  35. X
  36. Xvoid
  37. Xmain (argc, argv)
  38. Xint argc;
  39. Xchar **argv;
  40. X{
  41. X  printf ("Hello world!\n");
  42. X}
  43. END_OF_FILE
  44.   if test 133 -ne `wc -c <'docs/world.c'`; then
  45.     echo shar: \"'docs/world.c'\" unpacked with wrong size!
  46.   fi
  47.   # end of 'docs/world.c'
  48. fi
  49. if test -f 'src/getopt.c' -a "${1}" != "-c" ; then 
  50.   echo shar: Will not clobber existing file \"'src/getopt.c'\"
  51. else
  52.   echo shar: Extracting \"'src/getopt.c'\" \(19369 characters\)
  53.   sed "s/^X//" >'src/getopt.c' <<'END_OF_FILE'
  54. X/* Getopt for GNU.
  55. X   NOTE: getopt is now part of the C library, so if you don't know what
  56. X   "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
  57. X   before changing it!
  58. X
  59. X   Copyright (C) 1987, 88, 89, 90, 91, 1992 Free Software Foundation, Inc.
  60. X
  61. X   This program is free software; you can redistribute it and/or modify it
  62. X   under the terms of the GNU General Public License as published by the
  63. X   Free Software Foundation; either version 2, or (at your option) any
  64. X   later version.
  65. X   
  66. X   This program is distributed in the hope that it will be useful,
  67. X   but WITHOUT ANY WARRANTY; without even the implied warranty of
  68. X   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  69. X   GNU General Public License for more details.
  70. X   
  71. X   You should have received a copy of the GNU General Public License
  72. X   along with this program; if not, write to the Free Software
  73. X   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  74. X
  75. X#ifdef HAVE_CONFIG_H
  76. X#include "config.h"
  77. X#endif
  78. X
  79. X/* AIX requires this to be the first thing in the file.  */
  80. X#ifdef __GNUC__
  81. X#define alloca __builtin_alloca
  82. X#else /* not __GNUC__ */
  83. X#if defined (HAVE_ALLOCA_H) || (defined(sparc) && (defined(sun) || (!defined(USG) && !defined(SVR4) && !defined(__svr4__))))
  84. X#include <alloca.h>
  85. X#else
  86. X#ifdef _AIX
  87. X#pragma alloca
  88. X#else
  89. Xchar *alloca ();
  90. X#endif
  91. X#endif /* alloca.h */
  92. X#endif /* not __GNUC__ */
  93. X
  94. X#if !__STDC__ && !defined(const)
  95. X#define const
  96. X#endif
  97. X
  98. X#include <stdio.h>
  99. X
  100. X/* This needs to come after some library #include
  101. X   to get __GNU_LIBRARY__ defined.  */
  102. X#ifdef    __GNU_LIBRARY__
  103. X#undef    alloca
  104. X/* Don't include stdlib.h for non-GNU C libraries because some of them
  105. X   contain conflicting prototypes for getopt.  */
  106. X#include <stdlib.h>
  107. X#else    /* Not GNU C library.  */
  108. X#define    __alloca    alloca
  109. X#endif    /* GNU C library.  */
  110. X
  111. X/* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a
  112. X   long-named option.  Because this is not POSIX.2 compliant, it is
  113. X   being phased out.  */
  114. X/* #define GETOPT_COMPAT */
  115. X
  116. X/* This version of `getopt' appears to the caller like standard Unix `getopt'
  117. X   but it behaves differently for the user, since it allows the user
  118. X   to intersperse the options with the other arguments.
  119. X
  120. X   As `getopt' works, it permutes the elements of ARGV so that,
  121. X   when it is done, all the options precede everything else.  Thus
  122. X   all application programs are extended to handle flexible argument order.
  123. X
  124. X   Setting the environment variable POSIXLY_CORRECT disables permutation.
  125. X   Then the behavior is completely standard.
  126. X
  127. X   GNU application programs can use a third alternative mode in which
  128. X   they can distinguish the relative order of options and other arguments.  */
  129. X
  130. X#include "getopt.h"
  131. X
  132. X/* For communication from `getopt' to the caller.
  133. X   When `getopt' finds an option that takes an argument,
  134. X   the argument value is returned here.
  135. X   Also, when `ordering' is RETURN_IN_ORDER,
  136. X   each non-option ARGV-element is returned here.  */
  137. X
  138. Xchar *optarg = 0;
  139. X
  140. X/* Index in ARGV of the next element to be scanned.
  141. X   This is used for communication to and from the caller
  142. X   and for communication between successive calls to `getopt'.
  143. X
  144. X   On entry to `getopt', zero means this is the first call; initialize.
  145. X
  146. X   When `getopt' returns EOF, this is the index of the first of the
  147. X   non-option elements that the caller should itself scan.
  148. X
  149. X   Otherwise, `optind' communicates from one call to the next
  150. X   how much of ARGV has been scanned so far.  */
  151. X
  152. Xint optind = 0;
  153. X
  154. X/* The next char to be scanned in the option-element
  155. X   in which the last option character we returned was found.
  156. X   This allows us to pick up the scan where we left off.
  157. X
  158. X   If this is zero, or a null string, it means resume the scan
  159. X   by advancing to the next ARGV-element.  */
  160. X
  161. Xstatic char *nextchar;
  162. X
  163. X/* Callers store zero here to inhibit the error message
  164. X   for unrecognized options.  */
  165. X
  166. Xint opterr = 1;
  167. X
  168. X/* Describe how to deal with options that follow non-option ARGV-elements.
  169. X
  170. X   If the caller did not specify anything,
  171. X   the default is REQUIRE_ORDER if the environment variable
  172. X   POSIXLY_CORRECT is defined, PERMUTE otherwise.
  173. X
  174. X   REQUIRE_ORDER means don't recognize them as options;
  175. X   stop option processing when the first non-option is seen.
  176. X   This is what Unix does.
  177. X   This mode of operation is selected by either setting the environment
  178. X   variable POSIXLY_CORRECT, or using `+' as the first character
  179. X   of the list of option characters.
  180. X
  181. X   PERMUTE is the default.  We permute the contents of ARGV as we scan,
  182. X   so that eventually all the non-options are at the end.  This allows options
  183. X   to be given in any order, even with programs that were not written to
  184. X   expect this.
  185. X
  186. X   RETURN_IN_ORDER is an option available to programs that were written
  187. X   to expect options and other ARGV-elements in any order and that care about
  188. X   the ordering of the two.  We describe each non-option ARGV-element
  189. X   as if it were the argument of an option with character code 1.
  190. X   Using `-' as the first character of the list of option characters
  191. X   selects this mode of operation.
  192. X
  193. X   The special argument `--' forces an end of option-scanning regardless
  194. X   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
  195. X   `--' can cause `getopt' to return EOF with `optind' != ARGC.  */
  196. X
  197. Xstatic enum
  198. X{
  199. X  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
  200. X} ordering;
  201. X
  202. X#ifdef    __GNU_LIBRARY__
  203. X/* We want to avoid inclusion of string.h with non-GNU libraries
  204. X   because there are many ways it can cause trouble.
  205. X   On some systems, it contains special magic macros that don't work
  206. X   in GCC.  */
  207. X#include <string.h>
  208. X#define    my_index    strchr
  209. X#define    my_bcopy(src, dst, n)    memcpy ((dst), (src), (n))
  210. X#else
  211. X
  212. X/* Avoid depending on library functions or files
  213. X   whose names are inconsistent.  */
  214. X
  215. Xchar *getenv ();
  216. X
  217. Xstatic char *
  218. Xmy_index (string, chr)
  219. X     char *string;
  220. X     int chr;
  221. X{
  222. X  while (*string)
  223. X    {
  224. X      if (*string == chr)
  225. X    return string;
  226. X      string++;
  227. X    }
  228. X  return 0;
  229. X}
  230. X
  231. Xstatic void
  232. Xmy_bcopy (from, to, size)
  233. X     char *from, *to;
  234. X     int size;
  235. X{
  236. X  int i;
  237. X  for (i = 0; i < size; i++)
  238. X    to[i] = from[i];
  239. X}
  240. X#endif                /* GNU C library.  */
  241. X
  242. X/* Handle permutation of arguments.  */
  243. X
  244. X/* Describe the part of ARGV that contains non-options that have
  245. X   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
  246. X   `last_nonopt' is the index after the last of them.  */
  247. X
  248. Xstatic int first_nonopt;
  249. Xstatic int last_nonopt;
  250. X
  251. X/* Exchange two adjacent subsequences of ARGV.
  252. X   One subsequence is elements [first_nonopt,last_nonopt)
  253. X   which contains all the non-options that have been skipped so far.
  254. X   The other is elements [last_nonopt,optind), which contains all
  255. X   the options processed since those non-options were skipped.
  256. X
  257. X   `first_nonopt' and `last_nonopt' are relocated so that they describe
  258. X   the new indices of the non-options in ARGV after they are moved.  */
  259. X
  260. Xstatic void
  261. Xexchange (argv)
  262. X     char **argv;
  263. X{
  264. X  int nonopts_size = (last_nonopt - first_nonopt) * sizeof (char *);
  265. X  char **temp = (char **) __alloca (nonopts_size);
  266. X
  267. X  /* Interchange the two blocks of data in ARGV.  */
  268. X
  269. X  my_bcopy ((char *) &argv[first_nonopt], (char *) temp, nonopts_size);
  270. X  my_bcopy ((char *) &argv[last_nonopt], (char *) &argv[first_nonopt],
  271. X        (optind - last_nonopt) * sizeof (char *));
  272. X  my_bcopy ((char *) temp,
  273. X        (char *) &argv[first_nonopt + optind - last_nonopt],
  274. X        nonopts_size);
  275. X
  276. X  /* Update records for the slots the non-options now occupy.  */
  277. X
  278. X  first_nonopt += (optind - last_nonopt);
  279. X  last_nonopt = optind;
  280. X}
  281. X
  282. X/* Scan elements of ARGV (whose length is ARGC) for option characters
  283. X   given in OPTSTRING.
  284. X
  285. X   If an element of ARGV starts with '-', and is not exactly "-" or "--",
  286. X   then it is an option element.  The characters of this element
  287. X   (aside from the initial '-') are option characters.  If `getopt'
  288. X   is called repeatedly, it returns successively each of the option characters
  289. X   from each of the option elements.
  290. X
  291. X   If `getopt' finds another option character, it returns that character,
  292. X   updating `optind' and `nextchar' so that the next call to `getopt' can
  293. X   resume the scan with the following option character or ARGV-element.
  294. X
  295. X   If there are no more option characters, `getopt' returns `EOF'.
  296. X   Then `optind' is the index in ARGV of the first ARGV-element
  297. X   that is not an option.  (The ARGV-elements have been permuted
  298. X   so that those that are not options now come last.)
  299. X
  300. X   OPTSTRING is a string containing the legitimate option characters.
  301. X   If an option character is seen that is not listed in OPTSTRING,
  302. X   return '?' after printing an error message.  If you set `opterr' to
  303. X   zero, the error message is suppressed but we still return '?'.
  304. X
  305. X   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
  306. X   so the following text in the same ARGV-element, or the text of the following
  307. X   ARGV-element, is returned in `optarg'.  Two colons mean an option that
  308. X   wants an optional arg; if there is text in the current ARGV-element,
  309. X   it is returned in `optarg', otherwise `optarg' is set to zero.
  310. X
  311. X   If OPTSTRING starts with `-' or `+', it requests different methods of
  312. X   handling the non-option ARGV-elements.
  313. X   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
  314. X
  315. X   Long-named options begin with `--' instead of `-'.
  316. X   Their names may be abbreviated as long as the abbreviation is unique
  317. X   or is an exact match for some defined option.  If they have an
  318. X   argument, it follows the option name in the same ARGV-element, separated
  319. X   from the option name by a `=', or else the in next ARGV-element.
  320. X   When `getopt' finds a long-named option, it returns 0 if that option's
  321. X   `flag' field is nonzero, the value of the option's `val' field
  322. X   if the `flag' field is zero.
  323. X
  324. X   The elements of ARGV aren't really const, because we permute them.
  325. X   But we pretend they're const in the prototype to be compatible
  326. X   with other systems.
  327. X
  328. X   LONGOPTS is a vector of `struct option' terminated by an
  329. X   element containing a name which is zero.
  330. X
  331. X   LONGIND returns the index in LONGOPT of the long-named option found.
  332. X   It is only valid when a long-named option has been found by the most
  333. X   recent call.
  334. X
  335. X   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
  336. X   long-named options.  */
  337. X
  338. Xint
  339. X_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
  340. X     int argc;
  341. X     char *const *argv;
  342. X     const char *optstring;
  343. X     const struct option *longopts;
  344. X     int *longind;
  345. X     int long_only;
  346. X{
  347. X  int option_index;
  348. X
  349. X  optarg = 0;
  350. X
  351. X  /* Initialize the internal data when the first call is made.
  352. X     Start processing options with ARGV-element 1 (since ARGV-element 0
  353. X     is the program name); the sequence of previously skipped
  354. X     non-option ARGV-elements is empty.  */
  355. X
  356. X  if (optind == 0)
  357. X    {
  358. X      first_nonopt = last_nonopt = optind = 1;
  359. X
  360. X      nextchar = NULL;
  361. X
  362. X      /* Determine how to handle the ordering of options and nonoptions.  */
  363. X
  364. X      if (optstring[0] == '-')
  365. X    {
  366. X      ordering = RETURN_IN_ORDER;
  367. X      ++optstring;
  368. X    }
  369. X      else if (optstring[0] == '+')
  370. X    {
  371. X      ordering = REQUIRE_ORDER;
  372. X      ++optstring;
  373. X    }
  374. X      else if (getenv ("POSIXLY_CORRECT") != NULL)
  375. X    ordering = REQUIRE_ORDER;
  376. X      else
  377. X    ordering = PERMUTE;
  378. X    }
  379. X
  380. X  if (nextchar == NULL || *nextchar == '\0')
  381. X    {
  382. X      if (ordering == PERMUTE)
  383. X    {
  384. X      /* If we have just processed some options following some non-options,
  385. X         exchange them so that the options come first.  */
  386. X
  387. X      if (first_nonopt != last_nonopt && last_nonopt != optind)
  388. X        exchange ((char **) argv);
  389. X      else if (last_nonopt != optind)
  390. X        first_nonopt = optind;
  391. X
  392. X      /* Now skip any additional non-options
  393. X         and extend the range of non-options previously skipped.  */
  394. X
  395. X      while (optind < argc
  396. X         && (argv[optind][0] != '-' || argv[optind][1] == '\0')
  397. X#ifdef GETOPT_COMPAT
  398. X         && (longopts == NULL
  399. X             || argv[optind][0] != '+' || argv[optind][1] == '\0')
  400. X#endif                /* GETOPT_COMPAT */
  401. X         )
  402. X        optind++;
  403. X      last_nonopt = optind;
  404. X    }
  405. X
  406. X      /* Special ARGV-element `--' means premature end of options.
  407. X     Skip it like a null option,
  408. X     then exchange with previous non-options as if it were an option,
  409. X     then skip everything else like a non-option.  */
  410. X
  411. X      if (optind != argc && !strcmp (argv[optind], "--"))
  412. X    {
  413. X      optind++;
  414. X
  415. X      if (first_nonopt != last_nonopt && last_nonopt != optind)
  416. X        exchange ((char **) argv);
  417. X      else if (first_nonopt == last_nonopt)
  418. X        first_nonopt = optind;
  419. X      last_nonopt = argc;
  420. X
  421. X      optind = argc;
  422. X    }
  423. X
  424. X      /* If we have done all the ARGV-elements, stop the scan
  425. X     and back over any non-options that we skipped and permuted.  */
  426. X
  427. X      if (optind == argc)
  428. X    {
  429. X      /* Set the next-arg-index to point at the non-options
  430. X         that we previously skipped, so the caller will digest them.  */
  431. X      if (first_nonopt != last_nonopt)
  432. X        optind = first_nonopt;
  433. X      return EOF;
  434. X    }
  435. X
  436. X      /* If we have come to a non-option and did not permute it,
  437. X     either stop the scan or describe it to the caller and pass it by.  */
  438. X
  439. X      if ((argv[optind][0] != '-' || argv[optind][1] == '\0')
  440. X#ifdef GETOPT_COMPAT
  441. X      && (longopts == NULL
  442. X          || argv[optind][0] != '+' || argv[optind][1] == '\0')
  443. X#endif                /* GETOPT_COMPAT */
  444. X      )
  445. X    {
  446. X      if (ordering == REQUIRE_ORDER)
  447. X        return EOF;
  448. X      optarg = argv[optind++];
  449. X      return 1;
  450. X    }
  451. X
  452. X      /* We have found another option-ARGV-element.
  453. X     Start decoding its characters.  */
  454. X
  455. X      nextchar = (argv[optind] + 1
  456. X          + (longopts != NULL && argv[optind][1] == '-'));
  457. X    }
  458. X
  459. X  if (longopts != NULL
  460. X      && ((argv[optind][0] == '-'
  461. X       && (argv[optind][1] == '-' || long_only))
  462. X#ifdef GETOPT_COMPAT
  463. X      || argv[optind][0] == '+'
  464. X#endif                /* GETOPT_COMPAT */
  465. X      ))
  466. X    {
  467. X      const struct option *p;
  468. X      char *s = nextchar;
  469. X      int exact = 0;
  470. X      int ambig = 0;
  471. X      const struct option *pfound = NULL;
  472. X      int indfound = 0;
  473. X
  474. X      while (*s && *s != '=')
  475. X    s++;
  476. X
  477. X      /* Test all options for either exact match or abbreviated matches.  */
  478. X      for (p = longopts, option_index = 0; p->name;
  479. X       p++, option_index++)
  480. X    if (!strncmp (p->name, nextchar, s - nextchar))
  481. X      {
  482. X        if (s - nextchar == strlen (p->name))
  483. X          {
  484. X        /* Exact match found.  */
  485. X        pfound = p;
  486. X        indfound = option_index;
  487. X        exact = 1;
  488. X        break;
  489. X          }
  490. X        else if (pfound == NULL)
  491. X          {
  492. X        /* First nonexact match found.  */
  493. X        pfound = p;
  494. X        indfound = option_index;
  495. X          }
  496. X        else
  497. X          /* Second nonexact match found.  */
  498. X          ambig = 1;
  499. X      }
  500. X
  501. X      if (ambig && !exact)
  502. X    {
  503. X      if (opterr)
  504. X        fprintf (stderr, "%s: option `%s' is ambiguous\n",
  505. X             argv[0], argv[optind]);
  506. X      nextchar += strlen (nextchar);
  507. X      optind++;
  508. X      return '?';
  509. X    }
  510. X
  511. X      if (pfound != NULL)
  512. X    {
  513. X      option_index = indfound;
  514. X      optind++;
  515. X      if (*s)
  516. X        {
  517. X          /* Don't test has_arg with >, because some C compilers don't
  518. X         allow it to be used on enums.  */
  519. X          if (pfound->has_arg)
  520. X        optarg = s + 1;
  521. X          else
  522. X        {
  523. X          if (opterr)
  524. X            {
  525. X              if (argv[optind - 1][1] == '-')
  526. X            /* --option */
  527. X            fprintf (stderr,
  528. X                 "%s: option `--%s' doesn't allow an argument\n",
  529. X                 argv[0], pfound->name);
  530. X              else
  531. X            /* +option or -option */
  532. X            fprintf (stderr,
  533. X                 "%s: option `%c%s' doesn't allow an argument\n",
  534. X                 argv[0], argv[optind - 1][0], pfound->name);
  535. X            }
  536. X          nextchar += strlen (nextchar);
  537. X          return '?';
  538. X        }
  539. X        }
  540. X      else if (pfound->has_arg == 1)
  541. X        {
  542. X          if (optind < argc)
  543. X        optarg = argv[optind++];
  544. X          else
  545. X        {
  546. X          if (opterr)
  547. X            fprintf (stderr, "%s: option `%s' requires an argument\n",
  548. X                 argv[0], argv[optind - 1]);
  549. X          nextchar += strlen (nextchar);
  550. X          return '?';
  551. X        }
  552. X        }
  553. X      nextchar += strlen (nextchar);
  554. X      if (longind != NULL)
  555. X        *longind = option_index;
  556. X      if (pfound->flag)
  557. X        {
  558. X          *(pfound->flag) = pfound->val;
  559. X          return 0;
  560. X        }
  561. X      return pfound->val;
  562. X    }
  563. X      /* Can't find it as a long option.  If this is not getopt_long_only,
  564. X     or the option starts with '--' or is not a valid short
  565. X     option, then it's an error.
  566. X     Otherwise interpret it as a short option.  */
  567. X      if (!long_only || argv[optind][1] == '-'
  568. X#ifdef GETOPT_COMPAT
  569. X      || argv[optind][0] == '+'
  570. X#endif                /* GETOPT_COMPAT */
  571. X      || my_index (optstring, *nextchar) == NULL)
  572. X    {
  573. X      if (opterr)
  574. X        {
  575. X          if (argv[optind][1] == '-')
  576. X        /* --option */
  577. X        fprintf (stderr, "%s: unrecognized option `--%s'\n",
  578. X             argv[0], nextchar);
  579. X          else
  580. X        /* +option or -option */
  581. X        fprintf (stderr, "%s: unrecognized option `%c%s'\n",
  582. X             argv[0], argv[optind][0], nextchar);
  583. X        }
  584. X      nextchar = (char *) "";
  585. X      optind++;
  586. X      return '?';
  587. X    }
  588. X    }
  589. X
  590. X  /* Look at and handle the next option-character.  */
  591. X
  592. X  {
  593. X    char c = *nextchar++;
  594. X    char *temp = my_index (optstring, c);
  595. X
  596. X    /* Increment `optind' when we start to process its last character.  */
  597. X    if (*nextchar == '\0')
  598. X      ++optind;
  599. X
  600. X    if (temp == NULL || c == ':')
  601. X      {
  602. X    if (opterr)
  603. X      {
  604. X        if (c < 040 || c >= 0177)
  605. X          fprintf (stderr, "%s: unrecognized option, character code 0%o\n",
  606. X               argv[0], c);
  607. X        else
  608. X          fprintf (stderr, "%s: unrecognized option `-%c'\n", argv[0], c);
  609. X      }
  610. X    return '?';
  611. X      }
  612. X    if (temp[1] == ':')
  613. X      {
  614. X    if (temp[2] == ':')
  615. X      {
  616. X        /* This is an option that accepts an argument optionally.  */
  617. X        if (*nextchar != '\0')
  618. X          {
  619. X        optarg = nextchar;
  620. X        optind++;
  621. X          }
  622. X        else
  623. X          optarg = 0;
  624. X        nextchar = NULL;
  625. X      }
  626. X    else
  627. X      {
  628. X        /* This is an option that requires an argument.  */
  629. X        if (*nextchar != '\0')
  630. X          {
  631. X        optarg = nextchar;
  632. X        /* If we end this ARGV-element by taking the rest as an arg,
  633. X           we must advance to the next element now.  */
  634. X        optind++;
  635. X          }
  636. X        else if (optind == argc)
  637. X          {
  638. X        if (opterr)
  639. X          fprintf (stderr, "%s: option `-%c' requires an argument\n",
  640. X               argv[0], c);
  641. X        c = '?';
  642. X          }
  643. X        else
  644. X          /* We already incremented `optind' once;
  645. X         increment it again when taking next ARGV-elt as argument.  */
  646. X          optarg = argv[optind++];
  647. X        nextchar = NULL;
  648. X      }
  649. X      }
  650. X    return c;
  651. X  }
  652. X}
  653. X
  654. Xint
  655. Xgetopt (argc, argv, optstring)
  656. X     int argc;
  657. X     char *const *argv;
  658. X     const char *optstring;
  659. X{
  660. X  return _getopt_internal (argc, argv, optstring,
  661. X               (const struct option *) 0,
  662. X               (int *) 0,
  663. X               0);
  664. X}
  665. X
  666. X#ifdef TEST
  667. X
  668. X/* Compile with -DTEST to make an executable for use in testing
  669. X   the above definition of `getopt'.  */
  670. X
  671. Xint
  672. Xmain (argc, argv)
  673. X     int argc;
  674. X     char **argv;
  675. X{
  676. X  int c;
  677. X  int digit_optind = 0;
  678. X
  679. X  while (1)
  680. X    {
  681. X      int this_option_optind = optind ? optind : 1;
  682. X
  683. X      c = getopt (argc, argv, "abc:d:0123456789");
  684. X      if (c == EOF)
  685. X    break;
  686. X
  687. X      switch (c)
  688. X    {
  689. X    case '0':
  690. X    case '1':
  691. X    case '2':
  692. X    case '3':
  693. X    case '4':
  694. X    case '5':
  695. X    case '6':
  696. X    case '7':
  697. X    case '8':
  698. X    case '9':
  699. X      if (digit_optind != 0 && digit_optind != this_option_optind)
  700. X        printf ("digits occur in two different argv-elements.\n");
  701. X      digit_optind = this_option_optind;
  702. X      printf ("option %c\n", c);
  703. X      break;
  704. X
  705. X    case 'a':
  706. X      printf ("option a\n");
  707. X      break;
  708. X
  709. X    case 'b':
  710. X      printf ("option b\n");
  711. X      break;
  712. X
  713. X    case 'c':
  714. X      printf ("option c with value `%s'\n", optarg);
  715. X      break;
  716. X
  717. X    case '?':
  718. X      break;
  719. X
  720. X    default:
  721. X      printf ("?? getopt returned character code 0%o ??\n", c);
  722. X    }
  723. X    }
  724. X
  725. X  if (optind < argc)
  726. X    {
  727. X      printf ("non-option ARGV-elements: ");
  728. X      while (optind < argc)
  729. X    printf ("%s ", argv[optind++]);
  730. X      printf ("\n");
  731. X    }
  732. X
  733. X  exit (0);
  734. X}
  735. X
  736. X#endif /* TEST */
  737. END_OF_FILE
  738.   if test 19369 -ne `wc -c <'src/getopt.c'`; then
  739.     echo shar: \"'src/getopt.c'\" unpacked with wrong size!
  740.   fi
  741.   # end of 'src/getopt.c'
  742. fi
  743. if test -f 'src/objc2latex.c.A' -a "${1}" != "-c" ; then 
  744.   echo shar: Will not clobber existing file \"'src/objc2latex.c.A'\"
  745. else
  746.   echo shar: Extracting \"'src/objc2latex.c.A'\" \(34954 characters\)
  747.   sed "s/^X//" >'src/objc2latex.c.A' <<'END_OF_FILE'
  748. X/* A lexical scanner generated by flex */
  749. X
  750. X/* Scanner skeleton version:
  751. X * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $
  752. X */
  753. X
  754. X#define FLEX_SCANNER
  755. X
  756. X#include <stdio.h>
  757. X
  758. X
  759. X/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  760. X#ifdef c_plusplus
  761. X#ifndef __cplusplus
  762. X#define __cplusplus
  763. X#endif
  764. X#endif
  765. X
  766. X
  767. X#ifdef __cplusplus
  768. X
  769. X#include <stdlib.h>
  770. X#include <unistd.h>
  771. X
  772. X/* Use prototypes in function declarations. */
  773. X#define YY_USE_PROTOS
  774. X
  775. X/* The "const" storage-class-modifier is valid. */
  776. X#define YY_USE_CONST
  777. X
  778. X#else    /* ! __cplusplus */
  779. X
  780. X#ifdef __STDC__
  781. X
  782. X#define YY_USE_PROTOS
  783. X#define YY_USE_CONST
  784. X
  785. X#endif    /* __STDC__ */
  786. X#endif    /* ! __cplusplus */
  787. X
  788. X
  789. X#ifdef __TURBOC__
  790. X#define YY_USE_CONST
  791. X#endif
  792. X
  793. X
  794. X#ifndef YY_USE_CONST
  795. X#ifndef const
  796. X#define const
  797. X#endif
  798. X#endif
  799. X
  800. X
  801. X#ifdef YY_USE_PROTOS
  802. X#define YY_PROTO(proto) proto
  803. X#else
  804. X#define YY_PROTO(proto) ()
  805. X#endif
  806. X
  807. X/* Returned upon end-of-file. */
  808. X#define YY_NULL 0
  809. X
  810. X/* Promotes a possibly negative, possibly signed char to an unsigned
  811. X * integer for use as an array index.  If the signed char is negative,
  812. X * we want to instead treat it as an 8-bit unsigned char, hence the
  813. X * double cast.
  814. X */
  815. X#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  816. X
  817. X/* Enter a start condition.  This macro really ought to take a parameter,
  818. X * but we do it the disgusting crufty way forced on us by the ()-less
  819. X * definition of BEGIN.
  820. X */
  821. X#define BEGIN yy_start = 1 + 2 *
  822. X
  823. X/* Translate the current start state into a value that can be later handed
  824. X * to BEGIN to return to the state.
  825. X */
  826. X#define YY_START ((yy_start - 1) / 2)
  827. X
  828. X/* Action number for EOF rule of a given start state. */
  829. X#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  830. X
  831. X/* Special action meaning "start processing a new file".  Now included
  832. X * only for backward compatibility with previous versions of flex.
  833. X */
  834. X#define YY_NEW_FILE yyrestart( yyin )
  835. X
  836. X#define YY_END_OF_BUFFER_CHAR 0
  837. X
  838. X/* Size of default input buffer. */
  839. X#define YY_BUF_SIZE 16384
  840. X
  841. Xtypedef struct yy_buffer_state *YY_BUFFER_STATE;
  842. X
  843. Xextern int yyleng;
  844. Xextern FILE *yyin, *yyout;
  845. X
  846. X#ifdef __cplusplus
  847. Xextern "C" {
  848. X#endif
  849. X    extern int yywrap YY_PROTO(( void ));
  850. X#ifdef __cplusplus
  851. X    }
  852. X#endif
  853. X
  854. X#define EOB_ACT_CONTINUE_SCAN 0
  855. X#define EOB_ACT_END_OF_FILE 1
  856. X#define EOB_ACT_LAST_MATCH 2
  857. X
  858. X/* The funky do-while in the following #define is used to turn the definition
  859. X * int a single C statement (which needs a semi-colon terminator).  This
  860. X * avoids problems with code like:
  861. X *
  862. X *     if ( condition_holds )
  863. X *        yyless( 5 );
  864. X *    else
  865. X *        do_something_else();
  866. X *
  867. X * Prior to using the do-while the compiler would get upset at the
  868. X * "else" because it interpreted the "if" statement as being all
  869. X * done when it reached the ';' after the yyless() call.
  870. X */
  871. X
  872. X/* Return all but the first 'n' matched characters back to the input stream. */
  873. X
  874. X#define yyless(n) \
  875. X    do \
  876. X        { \
  877. X        /* Undo effects of setting up yytext. */ \
  878. X        *yy_cp = yy_hold_char; \
  879. X        yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  880. X        YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  881. X        } \
  882. X    while ( 0 )
  883. X
  884. X#define unput(c) yyunput( c, yytext_ptr )
  885. X
  886. X
  887. Xstruct yy_buffer_state
  888. X    {
  889. X    FILE *yy_input_file;
  890. X
  891. X    char *yy_ch_buf;        /* input buffer */
  892. X    char *yy_buf_pos;        /* current position in input buffer */
  893. X
  894. X    /* Size of input buffer in bytes, not including room for EOB
  895. X     * characters.
  896. X     */
  897. X    int yy_buf_size;
  898. X
  899. X    /* Number of characters read into yy_ch_buf, not including EOB
  900. X     * characters.
  901. X     */
  902. X    int yy_n_chars;
  903. X
  904. X    /* Whether this is an "interactive" input source; if so, and
  905. X     * if we're using stdio for input, then we want to use getc()
  906. X     * instead of fread(), to make sure we stop fetching input after
  907. X     * each newline.
  908. X     */
  909. X    int yy_is_interactive;
  910. X
  911. X    /* Whether to try to fill the input buffer when we reach the
  912. X     * end of it.
  913. X     */
  914. X    int yy_fill_buffer;
  915. X
  916. X    int yy_buffer_status;
  917. X#define YY_BUFFER_NEW 0
  918. X#define YY_BUFFER_NORMAL 1
  919. X    /* When an EOF's been seen but there's still some text to process
  920. X     * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  921. X     * shouldn't try reading from the input source any more.  We might
  922. X     * still have a bunch of tokens to match, though, because of
  923. X     * possible backing-up.
  924. X     *
  925. X     * When we actually see the EOF, we change the status to "new"
  926. X     * (via yyrestart()), so that the user can continue scanning by
  927. X     * just pointing yyin at a new input file.
  928. X     */
  929. X#define YY_BUFFER_EOF_PENDING 2
  930. X    };
  931. X
  932. Xstatic YY_BUFFER_STATE yy_current_buffer = 0;
  933. X
  934. X/* We provide macros for accessing buffer states in case in the
  935. X * future we want to put the buffer states in a more general
  936. X * "scanner state".
  937. X */
  938. X#define YY_CURRENT_BUFFER yy_current_buffer
  939. X
  940. X
  941. X/* yy_hold_char holds the character lost when yytext is formed. */
  942. Xstatic char yy_hold_char;
  943. X
  944. Xstatic int yy_n_chars;        /* number of characters read into yy_ch_buf */
  945. X
  946. X
  947. Xint yyleng;
  948. X
  949. X/* Points to current character in buffer. */
  950. Xstatic char *yy_c_buf_p = (char *) 0;
  951. Xstatic int yy_init = 1;        /* whether we need to initialize */
  952. Xstatic int yy_start = 0;    /* start state number */
  953. X
  954. X/* Flag which is used to allow yywrap()'s to do buffer switches
  955. X * instead of setting up a fresh yyin.  A bit of a hack ...
  956. X */
  957. Xstatic int yy_did_buffer_switch_on_eof;
  958. X
  959. Xstatic void yyunput YY_PROTO(( int c, char *buf_ptr ));
  960. Xvoid yyrestart YY_PROTO(( FILE *input_file ));
  961. Xvoid yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  962. Xvoid yy_load_buffer_state YY_PROTO(( void ));
  963. XYY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  964. Xvoid yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  965. Xvoid yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  966. X
  967. Xstatic int yy_start_stack_ptr = 0;
  968. Xstatic int yy_start_stack_depth = 0;
  969. Xstatic int *yy_start_stack = 0;
  970. Xstatic void yy_push_state YY_PROTO(( int new_state ));
  971. Xstatic void yy_pop_state YY_PROTO(( void ));
  972. Xstatic int yy_top_state YY_PROTO(( void ));
  973. X
  974. Xstatic void *yy_flex_alloc YY_PROTO(( unsigned int ));
  975. Xstatic void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));
  976. Xstatic void yy_flex_free YY_PROTO(( void * ));
  977. X
  978. X#define yy_new_buffer yy_create_buffer
  979. X
  980. X#define INITIAL 0
  981. X#define STRING 1
  982. X#define INCLUDE 2
  983. X#define ASTCOMMENT 3
  984. X#define SLASHCOMMENT 4
  985. Xtypedef unsigned char YY_CHAR;
  986. Xtypedef int yy_state_type;
  987. XFILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  988. Xextern char *yytext;
  989. X#define yytext_ptr yytext
  990. X
  991. X#ifndef yytext_ptr
  992. Xstatic void yy_flex_strncpy YY_PROTO(( char *, const char *, int ));
  993. X#endif
  994. X
  995. X#ifdef __cplusplus
  996. Xstatic int yyinput YY_PROTO(( void ));
  997. X#else
  998. Xstatic int input YY_PROTO(( void ));
  999. X#endif
  1000. X
  1001. Xstatic yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1002. Xstatic yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1003. Xstatic int yy_get_next_buffer YY_PROTO(( void ));
  1004. Xstatic void yy_fatal_error YY_PROTO(( const char msg[] ));
  1005. X
  1006. X/* Done after the current pattern has been matched and before the
  1007. X * corresponding action - sets up yytext.
  1008. X */
  1009. X#define YY_DO_BEFORE_ACTION \
  1010. X    yytext_ptr = yy_bp; \
  1011. X    yyleng = yy_cp - yy_bp; \
  1012. X    yy_hold_char = *yy_cp; \
  1013. X    *yy_cp = '\0'; \
  1014. X    yy_c_buf_p = yy_cp;
  1015. X
  1016. X#define YY_END_OF_BUFFER 149
  1017. Xstatic const short int yy_accept[417] =
  1018. X    {   0,
  1019. X        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1020. X      149,  148,  145,  147,  146,   99,  125,   15,  111,   91,
  1021. X       90,  148,  107,  108,   79,  101,   96,  100,   97,   82,
  1022. X      138,  138,   94,   98,   83,   95,   84,   93,  148,  111,
  1023. X      109,  148,  110,   80,  111,  111,  111,  111,  111,  111,
  1024. X      111,  111,  111,  111,  111,  111,  111,  111,  111,   88,
  1025. X       81,   89,   78,  144,   82,  131,  129,  128,  131,  130,
  1026. X       20,   18,   19,   20,   20,  118,  117,  116,  118,  124,
  1027. X      123,  122,  145,  146,   70,    0,    0,    0,    0,    0,
  1028. X        0,    0,  111,   86,   85,   87,    0,    0,   73,  104,
  1029. X
  1030. X      105,   92,  106,   65,    0,  134,  114,  121,  102,  135,
  1031. X      132,  138,    0,  138,    0,   66,   68,  103,   69,   67,
  1032. X        0,    0,    0,    0,    0,  125,    0,  143,   76,  111,
  1033. X      111,  111,  111,  111,  111,  111,   29,  111,  111,  111,
  1034. X      111,  111,  111,   37,  111,  111,  111,  111,  111,  111,
  1035. X      111,  111,  111,  111,  111,  111,  111,   77,   71,    0,
  1036. X        0,  144,    0,  113,  120,  127,  126,  130,   18,    0,
  1037. X       17,    0,   16,  117,  115,  123,    0,    0,    0,    0,
  1038. X        8,    9,    0,    0,    0,    0,    0,  139,    0,  139,
  1039. X        0,    0,   72,    0,  134,  134,    0,  135,  132,    0,
  1040. X
  1041. X      136,  133,   74,   75,    0,    0,    0,    0,    0,    0,
  1042. X       21,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  1043. X      111,  111,   35,  111,  111,   39,  111,  111,  111,  111,
  1044. X      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  1045. X      111,  111,  111,  112,  119,  113,  120,    0,    0,    0,
  1046. X        0,    0,    0,    0,    0,    0,    0,    0,    0,  140,
  1047. X      141,    0,    0,    0,  136,  134,    0,  137,  133,    0,
  1048. X        0,   58,    0,    0,    0,    0,   22,  111,   25,   24,
  1049. X      111,  111,  111,  111,   31,   32,  111,  111,   36,  111,
  1050. X       40,  111,  111,   63,  111,  111,  111,  111,  111,  111,
  1051. X
  1052. X      111,  111,  111,  111,   53,  111,  111,    0,    4,    5,
  1053. X        0,    0,    0,    0,    0,    0,   12,    0,    0,    0,
  1054. X      142,    0,   56,    0,    0,    0,    0,    0,   23,   26,
  1055. X      111,  111,  111,  111,   34,  111,  111,  111,   43,  111,
  1056. X      111,  111,  111,   64,  111,  111,  111,   51,  111,  111,
  1057. X       55,    0,    6,    7,   10,    0,    0,    0,    0,   14,
  1058. X        0,    0,    0,    0,    0,  111,  111,   30,   33,   38,
  1059. X      111,   42,   44,   45,   46,   47,   48,  111,   50,  111,
  1060. X      111,    3,   11,    2,    0,   13,   57,    0,    0,   61,
  1061. X        0,  111,   28,  111,   49,  111,  111,    1,    0,    0,
  1062. X
  1063. X        0,   27,   41,   52,   54,    0,    0,   62,    0,   60,
  1064. X        0,    0,    0,    0,   59,    0
  1065. X    } ;
  1066. X
  1067. Xstatic const int yy_ec[256] =
  1068. X    {   0,
  1069. X        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  1070. X        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  1071. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1072. X        1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
  1073. X       14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
  1074. X       22,   22,   22,   22,   22,   23,   23,   24,   25,   26,
  1075. X       27,   28,   29,   30,   31,   31,   31,   31,   32,   33,
  1076. X        9,    9,    9,    9,    9,   34,    9,    9,    9,    9,
  1077. X        9,    9,    9,    9,   35,    9,    9,    9,    9,    9,
  1078. X       36,   37,   38,   39,    9,   40,   41,   42,   43,   44,
  1079. X
  1080. X       45,   46,   47,   48,   49,    9,   50,   51,   52,   53,
  1081. X       54,   55,    9,   56,   57,   58,   59,   60,   61,   62,
  1082. X       63,   64,   65,   66,   67,   68,    1,    1,    1,    1,
  1083. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1084. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1085. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1086. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1087. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1088. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1089. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1090. X
  1091. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1092. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1093. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1094. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1095. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1096. X        1,    1,    1,    1,    1
  1097. X    } ;
  1098. X
  1099. Xstatic const int yy_meta[69] =
  1100. X    {   0,
  1101. X        1,    1,    1,    1,    2,    2,    3,    2,    4,    2,
  1102. X        2,    5,    2,    2,    2,    2,    2,    2,    2,    2,
  1103. X        6,    6,    7,    2,    2,    2,    2,    2,    3,    2,
  1104. X        7,    7,    7,    4,    4,    2,    3,    2,    2,    2,
  1105. X        6,    6,    7,    7,    7,    6,    4,    4,    4,    4,
  1106. X        4,    4,    8,    4,    4,    8,    4,    8,    4,    8,
  1107. X        4,    8,    4,    4,    2,    2,    2,    2
  1108. X    } ;
  1109. X
  1110. Xstatic const short int yy_base[429] =
  1111. X    {   0,
  1112. X        0,   67,   67,   73,   79,   86,   92,   96,  111,  115,
  1113. X      636,  637,   98,  637,  632,  607,  637,  104,    0,  606,
  1114. X       81,  595,  637,  637,  604,   63,  637,   97,  100,  111,
  1115. X      145,  111,  637,  637,  101,  603,  108,  637,   95,  130,
  1116. X      637,  626,  637,  601,   14,  571,  106,  120,  120,  107,
  1117. X      572,  123,  571,  579,  136,  560,  569,  567,  572,  637,
  1118. X       75,  173,  637,  181,  172,  637,  637,  637,  191,  186,
  1119. X      637,  200,  637,  612,  590,  637,  204,  637,  597,  637,
  1120. X      206,  637,  208,  637,  637,  210,  571,  163,  171,  566,
  1121. X      558,  560,    0,  637,  637,  637,  600,  208,  637,  637,
  1122. X
  1123. X      637,  637,  637,  637,  592,  241,  637,  637,  637,  245,
  1124. X      276,  281,  218,  637,    0,  583,  637,  637,  637,  582,
  1125. X      563,  554,  169,  547,  560,  637,  567,  637,  637,  551,
  1126. X      544,  556,  543,  558,  545,  551,  537,  538,  535,  535,
  1127. X      538,  535,  532,    0,  180,  536,   38,  537,  533,  125,
  1128. X      186,  531,  536,  529,  169,  194,  534,  637,  637,  230,
  1129. X      233,  304,  237,  637,  637,  637,  637,  278,  279,  575,
  1130. X      637,  553,  637,  280,  637,  312,  534,  244,  535,  522,
  1131. X      637,  275,  522,  533,  522,  533,  529,  637,  560,  559,
  1132. X      308,    0,  637,  315,  637,  320,  328,  637,  637,  334,
  1133. X
  1134. X      337,  288,  637,  637,  524,  228,  514,  510,  525,  515,
  1135. X        0,  511,  523,  518,  506,  231,  520,  518,  514,  506,
  1136. X      512,  515,    0,  501,  505,    0,  506,  503,  492,  504,
  1137. X      493,  495,  502,  488,  486,  499,  485,  497,  487,  491,
  1138. X      495,  497,  486,  637,  637,  637,  637,  487,  489,  489,
  1139. X      484,  478,  486,  486,  475,  477,  482,  479,  480,  637,
  1140. X      637,  351,  512,  346,  353,  637,  356,  359,  637,  466,
  1141. X      468,  637,  470,  475,  468,  473,    0,  467,    0,    0,
  1142. X      458,  466,  455,  462,    0,    0,  456,  453,    0,  457,
  1143. X        0,  452,  452,    0,  449,  461,  451,  455,  460,  446,
  1144. X
  1145. X      458,  202,  447,  452,    0,  440,  452,  443,  637,  637,
  1146. X      449,  438,  447,  447,  435,  431,  637,  437,  442,  475,
  1147. X      637,  474,  637,  441,  439,  427,  433,  438,    0,    0,
  1148. X      427,  428,  433,  424,    0,  431,  417,  421,    0,  429,
  1149. X      426,  428,  412,    0,  421,  423,  421,    0,  413,  416,
  1150. X        0,  419,  637,  637,  637,  417,  404,  417,  419,  637,
  1151. X      414,  406,  411,  413,  389,  385,  358,    0,    0,    0,
  1152. X      325,    0,    0,    0,    0,    0,    0,  318,    0,  317,
  1153. X      310,  637,  637,  637,  303,  637,  637,  300,  293,  637,
  1154. X      271,  273,    0,  256,    0,  263,  260,  637,  241,  233,
  1155. X
  1156. X      204,    0,    0,    0,    0,  200,  155,  637,  116,  637,
  1157. X       93,   80,   29,   24,  637,  637,  382,  390,  398,  406,
  1158. X      411,  418,  426,  434,  440,  443,  445,  448
  1159. X    } ;
  1160. X
  1161. Xstatic const short int yy_def[429] =
  1162. X    {   0,
  1163. X      416,    1,  417,  417,  418,  418,  419,  419,  420,  420,
  1164. X      416,  416,  416,  416,  416,  416,  416,  416,  421,  416,
  1165. X      416,  422,  416,  416,  416,  416,  416,  416,  416,  416,
  1166. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  421,
  1167. X      416,  416,  416,  416,  421,  421,  421,  421,  421,  421,
  1168. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  416,
  1169. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1170. X      416,  416,  416,  423,  424,  416,  416,  416,  416,  416,
  1171. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1172. X      416,  416,  421,  416,  416,  416,  416,  425,  416,  416,
  1173. X
  1174. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1175. X      416,  416,  416,  416,  426,  416,  416,  416,  416,  416,
  1176. X      416,  416,  416,  416,  416,  416,  422,  416,  416,  421,
  1177. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1178. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1179. X      421,  421,  421,  421,  421,  421,  421,  416,  416,  416,
  1180. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  423,
  1181. X      416,  424,  416,  416,  416,  416,  416,  416,  416,  416,
  1182. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1183. X      416,  427,  416,  416,  416,  416,  416,  416,  416,  416,
  1184. X
  1185. X      416,  426,  416,  416,  416,  416,  416,  416,  416,  416,
  1186. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1187. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1188. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1189. X      421,  421,  421,  416,  416,  416,  416,  416,  416,  416,
  1190. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1191. X      416,  416,  428,  416,  416,  416,  416,  416,  416,  416,
  1192. X      416,  416,  416,  416,  416,  416,  421,  421,  421,  421,
  1193. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1194. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1195. X
  1196. X      421,  421,  421,  421,  421,  421,  421,  416,  416,  416,
  1197. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1198. X      416,  416,  416,  416,  416,  416,  416,  416,  421,  421,
  1199. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1200. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1201. X      421,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1202. X      416,  416,  416,  416,  416,  421,  421,  421,  421,  421,
  1203. X      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1204. X      421,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1205. X      416,  421,  421,  421,  421,  421,  421,  416,  416,  416,
  1206. X
  1207. X      416,  421,  421,  421,  421,  416,  416,  416,  416,  416,
  1208. X      416,  416,  416,  416,  416,    0,  416,  416,  416,  416,
  1209. X      416,  416,  416,  416,  416,  416,  416,  416
  1210. X    } ;
  1211. X
  1212. Xstatic const short int yy_nxt[706] =
  1213. X    {   0,
  1214. X       12,   13,   14,   15,   13,   16,   17,   18,   19,   20,
  1215. X       21,   22,   23,   24,   25,   26,   27,   28,   29,   30,
  1216. X       31,   32,   32,   33,   34,   35,   36,   37,   38,   39,
  1217. X       19,   19,   19,   40,   19,   41,   42,   43,   44,   12,
  1218. X       45,   46,   47,   48,   49,   50,   51,   19,   52,   19,
  1219. X       53,   19,   19,   19,   19,   54,   55,   56,   57,   58,
  1220. X       59,   19,   19,   19,   60,   61,   62,   63,   64,   67,
  1221. X      130,   64,  131,   68,   70,   67,  415,   70,  100,   68,
  1222. X       72,   73,  414,   72,  228,   74,   65,   72,   73,  101,
  1223. X       72,   95,   74,   77,   78,  229,   77,   77,   78,   83,
  1224. X
  1225. X       77,  158,   83,   69,   75,   86,   79,   96,   86,   69,
  1226. X       79,   75,   81,   82,  102,   81,   81,   82,  105,   81,
  1227. X      106,  106,  106,  103,  104,  107,  116,  117,  413,  110,
  1228. X      108,  112,  112,  112,  119,  120,  126,  109,  121,  122,
  1229. X      159,  127,  113,  123,  114,  114,  133,   87,   88,  124,
  1230. X      412,  125,   89,  134,   90,  113,  411,  141,   91,  135,
  1231. X      142,  114,   92,  110,  136,  111,  111,  112,  144,  114,
  1232. X      138,  232,  139,  137,  160,  145,  113,  160,  114,  114,
  1233. X      148,  140,  162,  149,  150,  162,  164,  168,  233,  113,
  1234. X      168,  165,  161,  151,  152,  114,  153,  166,  109,  410,
  1235. X
  1236. X      163,  169,  166,  114,  169,  174,  115,  176,  174,   83,
  1237. X      176,   86,   83,  178,   86,  179,  182,  239,  180,  190,
  1238. X      207,  208,  183,  184,  181,  240,  234,  167,  191,  191,
  1239. X      225,  160,  166,  200,  160,  200,  166,  226,  201,  201,
  1240. X      201,  235,  241,  166,  242,  346,  166,  244,  166,  161,
  1241. X      166,  246,  245,   87,   88,  347,  247,  409,   89,  408,
  1242. X       90,  106,  106,  106,   91,  196,  196,  196,   92,  192,
  1243. X      271,  272,  194,  195,  195,  407,  197,  198,  198,  168,
  1244. X      169,  174,  168,  169,  174,  194,  195,  281,  282,  197,
  1245. X      198,  195,  249,  406,  110,  198,  111,  111,  112,  110,
  1246. X
  1247. X      250,  112,  112,  112,  405,  162,  404,  113,  162,  199,
  1248. X      199,  403,  113,  176,  114,  114,  176,  402,  253,  261,
  1249. X      113,  269,  269,  163,  401,  113,  199,  254,  262,  262,
  1250. X      264,  114,  264,  400,  199,  265,  265,  265,  269,  114,
  1251. X      196,  196,  196,  267,  399,  267,  269,  398,  268,  268,
  1252. X      268,  113,  266,  266,  201,  201,  201,  201,  201,  201,
  1253. X      397,  396,  261,  395,  113,  266,  265,  265,  265,  394,
  1254. X      266,  320,  320,  265,  265,  265,  268,  268,  268,  268,
  1255. X      268,  268,   66,   66,   66,   66,   66,   66,   66,   66,
  1256. X       71,   71,   71,   71,   71,   71,   71,   71,   76,   76,
  1257. X
  1258. X       76,   76,   76,   76,   76,   76,   80,   80,   80,   80,
  1259. X       80,   80,   80,   80,   93,  393,   93,   93,   93,   97,
  1260. X       97,   97,   97,   97,   97,   97,  170,  170,  170,  170,
  1261. X      170,  170,  170,  170,  172,  172,  172,  172,  172,  172,
  1262. X      172,  172,  189,  392,  189,  189,  391,  189,  202,  202,
  1263. X      263,  263,  322,  322,  322,  390,  389,  388,  387,  386,
  1264. X      385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
  1265. X      375,  374,  373,  372,  371,  370,  369,  368,  367,  366,
  1266. X      365,  364,  363,  362,  361,  321,  261,  360,  359,  358,
  1267. X      357,  356,  355,  354,  353,  352,  351,  350,  349,  348,
  1268. X
  1269. X      345,  344,  343,  342,  341,  340,  339,  338,  337,  336,
  1270. X      335,  334,  333,  332,  331,  330,  329,  328,  327,  326,
  1271. X      325,  324,  323,  321,  319,  318,  317,  316,  315,  314,
  1272. X      313,  312,  311,  310,  309,  308,  307,  306,  305,  304,
  1273. X      303,  302,  301,  300,  299,  298,  297,  296,  295,  294,
  1274. X      293,  292,  291,  290,  289,  288,  287,  286,  285,  284,
  1275. X      283,  280,  279,  278,  277,  276,  275,  274,  273,  270,
  1276. X      260,  260,  259,  258,  257,  256,  255,  252,  251,  248,
  1277. X      173,  171,  243,  238,  237,  236,  231,  230,  227,  224,
  1278. X      223,  222,  221,  220,  219,  218,  217,  216,  215,  214,
  1279. X
  1280. X      213,  212,  211,   98,  210,  209,  206,  205,  204,  203,
  1281. X      193,  188,  187,  186,  185,  177,  175,  173,  171,  157,
  1282. X      156,  155,  154,  147,  146,  143,  132,  129,  128,  118,
  1283. X       99,   98,   94,   85,   84,  416,   11,  416,  416,  416,
  1284. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1285. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1286. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1287. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1288. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1289. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1290. X
  1291. X      416,  416,  416,  416,  416
  1292. X    } ;
  1293. X
  1294. Xstatic const short int yy_chk[706] =
  1295. X    {   0,
  1296. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1297. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1298. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1299. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1300. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1301. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1302. X        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  1303. X       45,    2,   45,    3,    4,    4,  414,    4,   26,    4,
  1304. X        5,    5,  413,    5,  147,    5,    2,    6,    6,   26,
  1305. X        6,   21,    6,    7,    7,  147,    7,    8,    8,   13,
  1306. X
  1307. X        8,   61,   13,    3,    5,   18,    7,   21,   18,    4,
  1308. X        8,    6,    9,    9,   28,    9,   10,   10,   29,   10,
  1309. X       29,   29,   29,   28,   28,   30,   35,   35,  412,   32,
  1310. X       30,   32,   32,   32,   37,   37,   40,   30,   39,   39,
  1311. X       61,   40,   32,   39,   32,   32,   47,   18,   18,   39,
  1312. X      411,   39,   18,   47,   18,   32,  409,   50,   18,   47,
  1313. X       50,   32,   18,   31,   48,   31,   31,   31,   52,   32,
  1314. X       49,  150,   49,   48,   62,   52,   31,   62,   31,   31,
  1315. X       55,   49,   64,   55,   55,   64,   65,   70,  150,   31,
  1316. X       70,   65,   62,   55,   55,   31,   55,   69,   65,  407,
  1317. X
  1318. X       64,   72,   69,   31,   72,   77,   31,   81,   77,   83,
  1319. X       81,   86,   83,   88,   86,   88,   89,  155,   88,   98,
  1320. X      123,  123,   89,   89,   88,  155,  151,   69,   98,   98,
  1321. X      145,  160,   69,  113,  160,  113,   69,  145,  113,  113,
  1322. X      113,  151,  156,   69,  156,  302,   69,  161,   69,  160,
  1323. X       69,  163,  161,   86,   86,  302,  163,  406,   86,  401,
  1324. X       86,  106,  106,  106,   86,  110,  110,  110,   86,   98,
  1325. X      206,  206,  106,  106,  106,  400,  110,  110,  110,  168,
  1326. X      169,  174,  168,  169,  174,  106,  106,  216,  216,  110,
  1327. X      110,  106,  178,  399,  111,  110,  111,  111,  111,  112,
  1328. X
  1329. X      178,  112,  112,  112,  397,  162,  396,  111,  162,  111,
  1330. X      111,  394,  112,  176,  112,  112,  176,  392,  182,  191,
  1331. X      111,  202,  202,  162,  391,  112,  111,  182,  191,  191,
  1332. X      194,  112,  194,  389,  111,  194,  194,  194,  202,  112,
  1333. X      196,  196,  196,  197,  388,  197,  202,  385,  197,  197,
  1334. X      197,  196,  196,  196,  200,  200,  200,  201,  201,  201,
  1335. X      381,  380,  262,  378,  196,  196,  264,  264,  264,  371,
  1336. X      196,  262,  262,  265,  265,  265,  267,  267,  267,  268,
  1337. X      268,  268,  417,  417,  417,  417,  417,  417,  417,  417,
  1338. X      418,  418,  418,  418,  418,  418,  418,  418,  419,  419,
  1339. X
  1340. X      419,  419,  419,  419,  419,  419,  420,  420,  420,  420,
  1341. X      420,  420,  420,  420,  421,  367,  421,  421,  421,  422,
  1342. X      422,  422,  422,  422,  422,  422,  423,  423,  423,  423,
  1343. X      423,  423,  423,  423,  424,  424,  424,  424,  424,  424,
  1344. X      424,  424,  425,  366,  425,  425,  365,  425,  426,  426,
  1345. X      427,  427,  428,  428,  428,  364,  363,  362,  361,  359,
  1346. X      358,  357,  356,  352,  350,  349,  347,  346,  345,  343,
  1347. X      342,  341,  340,  338,  337,  336,  334,  333,  332,  331,
  1348. X      328,  327,  326,  325,  324,  322,  320,  319,  318,  316,
  1349. X      315,  314,  313,  312,  311,  308,  307,  306,  304,  303,
  1350. X
  1351. X      301,  300,  299,  298,  297,  296,  295,  293,  292,  290,
  1352. X      288,  287,  284,  283,  282,  281,  278,  276,  275,  274,
  1353. X      273,  271,  270,  263,  259,  258,  257,  256,  255,  254,
  1354. X      253,  252,  251,  250,  249,  248,  243,  242,  241,  240,
  1355. X      239,  238,  237,  236,  235,  234,  233,  232,  231,  230,
  1356. X      229,  228,  227,  225,  224,  222,  221,  220,  219,  218,
  1357. X      217,  215,  214,  213,  212,  210,  209,  208,  207,  205,
  1358. X      190,  189,  187,  186,  185,  184,  183,  180,  179,  177,
  1359. X      172,  170,  157,  154,  153,  152,  149,  148,  146,  143,
  1360. X      142,  141,  140,  139,  138,  137,  136,  135,  134,  133,
  1361. X
  1362. X      132,  131,  130,  127,  125,  124,  122,  121,  120,  116,
  1363. X      105,   97,   92,   91,   90,   87,   79,   75,   74,   59,
  1364. X       58,   57,   56,   54,   53,   51,   46,   44,   42,   36,
  1365. X       25,   22,   20,   16,   15,   11,  416,  416,  416,  416,
  1366. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1367. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1368. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1369. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1370. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1371. X      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  1372. X
  1373. X      416,  416,  416,  416,  416
  1374. X    } ;
  1375. X
  1376. Xstatic yy_state_type yy_last_accepting_state;
  1377. Xstatic char *yy_last_accepting_cpos;
  1378. X
  1379. X/* The intent behind this definition is that it'll catch
  1380. X * any uses of REJECT which flex missed.
  1381. X */
  1382. X#define REJECT reject_used_but_not_detected
  1383. X#define yymore() yymore_used_but_not_detected
  1384. X#define YY_MORE_ADJ 0
  1385. Xchar *yytext;
  1386. X# line 1 "src/objc2latex.l"
  1387. X/* $Id: objc2latex.l,v 3.0 1994/01/15 17:07:09 joke Rel $ */
  1388. X# line 6 "src/objc2latex.l"
  1389. X#include "defs.h"
  1390. X
  1391. X/* Macros after this point can all be overridden by user definitions in
  1392. X * section 1.
  1393. X */
  1394. X
  1395. X#ifdef YY_MALLOC_DECL
  1396. XYY_MALLOC_DECL
  1397. X#else
  1398. X#if __STDC__
  1399. X#ifndef __cplusplus
  1400. X#include <stdlib.h>
  1401. X#endif
  1402. X#else
  1403. X/* Just try to get by without declaring the routines.  This will fail
  1404. X * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  1405. X * or sizeof(void*) != sizeof(int).
  1406. X */
  1407. X#endif
  1408. X#endif
  1409. X
  1410. X/* Amount of stuff to slurp up with each read. */
  1411. X#ifndef YY_READ_BUF_SIZE
  1412. X#define YY_READ_BUF_SIZE 8192
  1413. X#endif
  1414. X
  1415. X/* Copy whatever the last rule matched to the standard output. */
  1416. X
  1417. X#ifndef ECHO
  1418. X/* This used to be an fputs(), but since the string might contain NUL's,
  1419. X * we now use fwrite().
  1420. X */
  1421. X#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  1422. X#endif
  1423. X
  1424. X/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  1425. X * is returned in "result".
  1426. X */
  1427. X#ifndef YY_INPUT
  1428. X#define YY_INPUT(buf,result,max_size) \
  1429. X    if ( yy_current_buffer->yy_is_interactive ) \
  1430. X        { \
  1431. X        int c = getc( yyin ); \
  1432. X        result = c == EOF ? 0 : 1; \
  1433. X        buf[0] = (char) c; \
  1434. X        } \
  1435. X    else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  1436. X          && ferror( yyin ) ) \
  1437. X        YY_FATAL_ERROR( "input in flex scanner failed" );
  1438. X#endif
  1439. X
  1440. X/* No semi-colon after return; correct usage is to write "yyterminate();" -
  1441. X * we don't want an extra ';' after the "return" because that will cause
  1442. X * some compilers to complain about unreachable statements.
  1443. X */
  1444. X#ifndef yyterminate
  1445. X#define yyterminate() return YY_NULL
  1446. X#endif
  1447. X
  1448. X/* Number of entries by which start-condition stack grows. */
  1449. X#ifndef YY_START_STACK_INCR
  1450. X#define YY_START_STACK_INCR 25
  1451. X#endif
  1452. X
  1453. X/* Report a fatal error. */
  1454. X#ifndef YY_FATAL_ERROR
  1455. X#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  1456. X#endif
  1457. X
  1458. X/* Default declaration of generated scanner - a define so the user can
  1459. X * easily add parameters.
  1460. X */
  1461. X#ifndef YY_DECL
  1462. X#define YY_DECL int yylex YY_PROTO(( void ))
  1463. X#endif
  1464. X
  1465. X/* Code executed at the beginning of each rule, after yytext and yyleng
  1466. X * have been set up.
  1467. X */
  1468. X#ifndef YY_USER_ACTION
  1469. X#define YY_USER_ACTION
  1470. X#endif
  1471. X
  1472. X/* Code executed at the end of each rule. */
  1473. X#ifndef YY_BREAK
  1474. X#define YY_BREAK break;
  1475. X#endif
  1476. X
  1477. XYY_DECL
  1478. X    {
  1479. X    register yy_state_type yy_current_state;
  1480. X    register char *yy_cp, *yy_bp;
  1481. X    register int yy_act;
  1482. X
  1483. X# line 9 "src/objc2latex.l"
  1484. X
  1485. X            INIT;
  1486. X
  1487. X
  1488. X    if ( yy_init )
  1489. X        {
  1490. X#ifdef YY_USER_INIT
  1491. X        YY_USER_INIT;
  1492. X#endif
  1493. X
  1494. X        if ( ! yy_start )
  1495. X            yy_start = 1;    /* first start state */
  1496. X
  1497. X        if ( ! yyin )
  1498. X            yyin = stdin;
  1499. X
  1500. X        if ( ! yyout )
  1501. X            yyout = stdout;
  1502. X
  1503. X        if ( yy_current_buffer )
  1504. X            yy_init_buffer( yy_current_buffer, yyin );
  1505. X        else
  1506. X            yy_current_buffer =
  1507. X                yy_create_buffer( yyin, YY_BUF_SIZE );
  1508. X
  1509. X        yy_load_buffer_state();
  1510. X
  1511. X        yy_init = 0;
  1512. X        }
  1513. X
  1514. X    while ( 1 )        /* loops until end-of-file is reached */
  1515. X        {
  1516. X        yy_cp = yy_c_buf_p;
  1517. X
  1518. X        /* Support of yytext. */
  1519. X        *yy_cp = yy_hold_char;
  1520. X
  1521. X        /* yy_bp points to the position in yy_ch_buf of the start of
  1522. X         * the current run.
  1523. X         */
  1524. X        yy_bp = yy_cp;
  1525. X
  1526. X        yy_current_state = yy_start;
  1527. X        if ( yy_bp[-1] == '\n' )
  1528. X            ++yy_current_state;
  1529. Xyy_match:
  1530. X        do
  1531. X            {
  1532. X            register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1533. X            if ( yy_accept[yy_current_state] )
  1534. X                {
  1535. X                yy_last_accepting_state = yy_current_state;
  1536. X                yy_last_accepting_cpos = yy_cp;
  1537. X                }
  1538. X            while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1539. X                {
  1540. X                yy_current_state = (int) yy_def[yy_current_state];
  1541. X                if ( yy_current_state >= 417 )
  1542. X                    yy_c = yy_meta[(unsigned int) yy_c];
  1543. X                }
  1544. X            yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1545. X            ++yy_cp;
  1546. X            }
  1547. X        while ( yy_base[yy_current_state] != 637 );
  1548. X
  1549. Xyy_find_action:
  1550. X        yy_act = yy_accept[yy_current_state];
  1551. X
  1552. X        YY_DO_BEFORE_ACTION;
  1553. X
  1554. X
  1555. Xdo_action:    /* This label is used only to access EOF actions. */
  1556. X
  1557. X
  1558. X        switch ( yy_act )
  1559. X    { /* beginning of action switch */
  1560. X            case 0: /* must back up */
  1561. X            /* undo the effects of YY_DO_BEFORE_ACTION */
  1562. X            *yy_cp = yy_hold_char;
  1563. X            yy_cp = yy_last_accepting_cpos;
  1564. X            yy_current_state = yy_last_accepting_state;
  1565. X            goto yy_find_action;
  1566. X
  1567. Xcase 1:
  1568. X# line 13 "src/objc2latex.l"
  1569. Xcase 2:
  1570. XYY_USER_ACTION
  1571. X# line 13 "src/objc2latex.l"
  1572. X{ CPP; BEGIN (INCLUDE); } /* Objective-C #pragma-like directive */
  1573. X    YY_BREAK
  1574. Xcase 3:
  1575. XYY_USER_ACTION
  1576. X# line 15 "src/objc2latex.l"
  1577. X
  1578. X    YY_BREAK
  1579. Xcase 4:
  1580. X# line 17 "src/objc2latex.l"
  1581. Xcase 5:
  1582. X# line 18 "src/objc2latex.l"
  1583. Xcase 6:
  1584. X# line 19 "src/objc2latex.l"
  1585. Xcase 7:
  1586. X# line 20 "src/objc2latex.l"
  1587. Xcase 8:
  1588. X# line 21 "src/objc2latex.l"
  1589. Xcase 9:
  1590. X# line 22 "src/objc2latex.l"
  1591. Xcase 10:
  1592. X# line 23 "src/objc2latex.l"
  1593. Xcase 11:
  1594. X# line 24 "src/objc2latex.l"
  1595. Xcase 12:
  1596. X# line 25 "src/objc2latex.l"
  1597. Xcase 13:
  1598. X# line 26 "src/objc2latex.l"
  1599. Xcase 14:
  1600. XYY_USER_ACTION
  1601. X# line 26 "src/objc2latex.l"
  1602. XCPP;
  1603. X    YY_BREAK
  1604. X /*    cpp unary # and binary ## commands */
  1605. Xcase 15:
  1606. XYY_USER_ACTION
  1607. X# line 29 "src/objc2latex.l"
  1608. XCPP;
  1609. X    YY_BREAK
  1610. Xcase 16:
  1611. X*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1612. Xyy_c_buf_p = yy_cp -= 1;
  1613. XYY_DO_BEFORE_ACTION; /* set up yytext again */
  1614. XYY_USER_ACTION
  1615. X# line 32 "src/objc2latex.l"
  1616. X{ OUT ("$<$"); FONT (string_font);
  1617. X              SUB (yytext+1); OUT ("}$>$");
  1618. X              input(); INIT; }
  1619. X    YY_BREAK
  1620. Xcase 17:
  1621. X*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1622. Xyy_c_buf_p = yy_cp -= 1;
  1623. XYY_DO_BEFORE_ACTION; /* set up yytext again */
  1624. XYY_USER_ACTION
  1625. X# line 35 "src/objc2latex.l"
  1626. X{ OUT ("\""); FONT (string_font);
  1627. X              SUB (yytext+1); OUT ("}\"");
  1628. X              input(); INIT; }
  1629. X    YY_BREAK
  1630. Xcase 18:
  1631. XYY_USER_ACTION
  1632. X# line 38 "src/objc2latex.l"
  1633. XECHO;
  1634. X    YY_BREAK
  1635. Xcase 19:
  1636. XYY_USER_ACTION
  1637. X# line 39 "src/objc2latex.l"
  1638. XOUT ("\\mbox{}\\\\\n");
  1639. X    YY_BREAK
  1640. Xcase 20:
  1641. XYY_USER_ACTION
  1642. X# line 40 "src/objc2latex.l"
  1643. X{ REPARSE; INIT; }
  1644. X    YY_BREAK
  1645. X    /* from: gcc-2.2/c-parse.gperf */
  1646. Xcase 21:
  1647. X# line 45 "src/objc2latex.l"
  1648. Xcase 22:
  1649. X# line 46 "src/objc2latex.l"
  1650. Xcase 23:
  1651. X# line 47 "src/objc2latex.l"
  1652. Xcase 24:
  1653. X# line 48 "src/objc2latex.l"
  1654. Xcase 25:
  1655. X# line 49 "src/objc2latex.l"
  1656. Xcase 26:
  1657. X# line 50 "src/objc2latex.l"
  1658. Xcase 27:
  1659. X# line 51 "src/objc2latex.l"
  1660. Xcase 28:
  1661. X# line 52 "src/objc2latex.l"
  1662. Xcase 29:
  1663. X# line 53 "src/objc2latex.l"
  1664. Xcase 30:
  1665. X# line 54 "src/objc2latex.l"
  1666. Xcase 31:
  1667. X# line 55 "src/objc2latex.l"
  1668. Xcase 32:
  1669. X# line 56 "src/objc2latex.l"
  1670. Xcase 33:
  1671. X# line 57 "src/objc2latex.l"
  1672. Xcase 34:
  1673. X# line 58 "src/objc2latex.l"
  1674. Xcase 35:
  1675. X# line 59 "src/objc2latex.l"
  1676. Xcase 36:
  1677. X# line 60 "src/objc2latex.l"
  1678. Xcase 37:
  1679. X# line 61 "src/objc2latex.l"
  1680. Xcase 38:
  1681. X# line 62 "src/objc2latex.l"
  1682. Xcase 39:
  1683. X# line 63 "src/objc2latex.l"
  1684. Xcase 40:
  1685. X# line 64 "src/objc2latex.l"
  1686. Xcase 41:
  1687. X# line 65 "src/objc2latex.l"
  1688. Xcase 42:
  1689. X# line 66 "src/objc2latex.l"
  1690. Xcase 43:
  1691. X# line 67 "src/objc2latex.l"
  1692. Xcase 44:
  1693. X# line 68 "src/objc2latex.l"
  1694. Xcase 45:
  1695. X# line 69 "src/objc2latex.l"
  1696. Xcase 46:
  1697. X# line 70 "src/objc2latex.l"
  1698. Xcase 47:
  1699. X# line 71 "src/objc2latex.l"
  1700. Xcase 48:
  1701. X# line 72 "src/objc2latex.l"
  1702. Xcase 49:
  1703. X# line 73 "src/objc2latex.l"
  1704. Xcase 50:
  1705. X# line 74 "src/objc2latex.l"
  1706. Xcase 51:
  1707. X# line 75 "src/objc2latex.l"
  1708. Xcase 52:
  1709. X# line 76 "src/objc2latex.l"
  1710. Xcase 53:
  1711. X# line 77 "src/objc2latex.l"
  1712. Xcase 54:
  1713. X# line 78 "src/objc2latex.l"
  1714. Xcase 55:
  1715. X# line 79 "src/objc2latex.l"
  1716. X    /* from: gcc-2.2/objc.gperf */
  1717. Xcase 56:
  1718. X# line 82 "src/objc2latex.l"
  1719. Xcase 57:
  1720. X# line 83 "src/objc2latex.l"
  1721. Xcase 58:
  1722. X# line 84 "src/objc2latex.l"
  1723. Xcase 59:
  1724. X# line 85 "src/objc2latex.l"
  1725. Xcase 60:
  1726. X# line 86 "src/objc2latex.l"
  1727. Xcase 61:
  1728. X# line 87 "src/objc2latex.l"
  1729. Xcase 62:
  1730. X# line 88 "src/objc2latex.l"
  1731. Xcase 63:
  1732. X# line 89 "src/objc2latex.l"
  1733. Xcase 64:
  1734. XYY_USER_ACTION
  1735. X# line 89 "src/objc2latex.l"
  1736. XKEY;
  1737. X    YY_BREAK
  1738. Xcase 65:
  1739. XYY_USER_ACTION
  1740. X# line 92 "src/objc2latex.l"
  1741. XSYM ("rightarrow");
  1742. X    YY_BREAK
  1743. Xcase 66:
  1744. XYY_USER_ACTION
  1745. X# line 93 "src/objc2latex.l"
  1746. XSYM ("ll");
  1747. X    YY_BREAK
  1748. Xcase 67:
  1749. END_OF_FILE
  1750.   if test 34954 -ne `wc -c <'src/objc2latex.c.A'`; then
  1751.     echo shar: \"'src/objc2latex.c.A'\" unpacked with wrong size!
  1752.   elif test -f 'src/objc2latex.c.B'; then
  1753.     echo shar: Combining  \"'src/objc2latex.c'\" \(58178 characters\)
  1754.     cat 'src/objc2latex.c.A' 'src/objc2latex.c.B' > 'src/objc2latex.c'
  1755.     if test 58178 -ne `wc -c <'src/objc2latex.c'`; then
  1756.       echo shar: \"'src/objc2latex.c'\" combined with wrong size!
  1757.     else
  1758.       rm src/objc2latex.c.A src/objc2latex.c.B 
  1759.     fi
  1760.   fi
  1761.   # end of 'src/objc2latex.c.A'
  1762. fi
  1763. echo shar: End of archive 4 \(of 8\).
  1764. cp /dev/null ark4isdone
  1765. MISSING=""
  1766. for I in 1 2 3 4 5 6 7 8 ; do
  1767.     if test ! -f ark${I}isdone ; then
  1768.     MISSING="${MISSING} ${I}"
  1769.     fi
  1770. done
  1771. if test "${MISSING}" = "" ; then
  1772.     echo You have unpacked all 8 archives.
  1773.     rm -f ark[1-9]isdone
  1774. else
  1775.     echo You still must unpack the following archives:
  1776.     echo "        " ${MISSING}
  1777. fi
  1778. exit 0
  1779. exit 0 # Just in case...
  1780.