home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / FLEX / FLEX-2.4 / FLEX-2 / flex-2.4.7 / MISC / VMS / VMS.more-stuff / flex.hlp < prev    next >
Encoding:
Text File  |  1990-11-26  |  22.9 KB  |  593 lines

  1. 1 FLEX
  2.      Flex - a fast lexical analyzer generator
  3.  
  4.  Syntax:
  5.      FLEX [qualifiers] filespec[,...]
  6.  
  7.  Flex is a tool for generating scanners: programs which
  8.  recognize lexical patterns in text.  Flex reads the given
  9.  input files, or SYS$INPUT if no file names are given, for
  10.  a description of a scanner to generate.  The description
  11.  is in the form of pairs of regular expressions and C code,
  12.  called rules.  Flex generates as output a C source file,
  13.  lexyy.c, which defines a routine yylex(). This file is
  14.  compiled and linked with your program, which calls yylex().
  15.  When the executable is run, it analyzes its input for
  16.  occurrences of the regular expressions.  Whenever it finds
  17.  one, it executes the corresponding C code.
  18.  
  19.  For full documentation, see flex_manual:flexdoc.man.  (This
  20.  manual describes command line options in their unix-style
  21.  form.  See the "Unix" topic for the VMS equivalents.)
  22.  
  23.  This information is based on flex version 2.3.6
  24. 2 Parameters
  25.  filespec
  26.      The input file contains flex source code from which a
  27.      lexer C subroutine is generated.  There is no default
  28.      for the filetype, you must enter both the file name and
  29.      type (e.g. foo.lex).  Wildcards are not allowed.
  30. 2 Qualifiers
  31. /OUTPUT=filespec
  32.     /OUTPUT=filespec
  33.     /OUTPUT=LEXYY.C (D)
  34.  
  35.  The name of the output file that flex will create and write
  36.  the lexer code to.  You must specify both the file name and
  37.  type in "filespec"; there is no default type.  If /OUTPUT
  38.  is not supplied, the filename lexyy.c is used by default.  
  39. /BACKTRACK_REPORT
  40.     /BACKTRACK_REPORT
  41.     /NOBACKTRACK_REPORT (D)
  42.  
  43.  Generate  backtracking  information  to  the  file
  44.  lex.backtrack.  This is a list of scanner states which
  45.  require backtracking and the input characters on which
  46.  they do so.  By adding rules one can remove backtracking
  47.  states.  If all backtracking states are eliminated and
  48.  /TABLES=FAST or /TABLES=FULL is used, the generated scanner
  49.  will run faster.
  50.  
  51.  /BACKTRACK_REPORT is equivalent to -b in the unix version.
  52. /DEBUG
  53.      /DEBUG 
  54.      /NODEBUG (D)
  55.  
  56.  Makes the generated scanner run in debug mode.  When-
  57.  ever a pattern is recognized and the global vatiable
  58.  yy_flex_debug is non-zero (which is the default), the
  59.  scanner will write to SYS$ERROR a line of the form:
  60.  
  61.         --accepting rule at line 53 ("the matched text")
  62.  
  63.  The line number refers to the location of the rule in
  64.  the file defining the scanner (i.e., the file that was
  65.  fed to flex).  Messages are also generated when the
  66.  scanner backtracks, accepts the default rule, reaches
  67.  the end of its input buffer (or encounters a NUL; the
  68.  two look the same as far as the scanner's concerned),
  69.  or reaches an end-of-file.
  70.  
  71.  /DEBUG is equivalent to -d in the unix version.
  72. /CASE_SENSITIVE
  73.      /CASE_SENSITIVE (D)
  74.      /NOCASE_SENSITIVE
  75.  
  76.  Instructs flex to generate a case-insensitive scanner.
  77.  The case of letters given in the flex input patterns
  78.  will be ignored, and tokens in the input will be
  79.  matched regardless of case.  The matched text given in
  80.  yytext will have the preserved case (i.e., it will not
  81.  be folded).
  82.  
  83.  /CASE_SENSITIVE is equivalent to -i in the unix version.
  84. /STATISTICS=([PERFORMANCE],[SUMMARY])
  85.  
  86.      /STATISTICS=([PERFORMANCE],[SUMMARY])
  87.      /NOSTATISTICS (D)
  88.  
  89.  If the keyword PERFORMANCE is specified, flex generates
  90.  a performance report to SYS$ERROR.  The report consists
  91.  of comments regarding features of the flex input file
  92.  which will cause a loss of performance in the resulting
  93.  scanner.
  94.  
  95.  The keyword SUMMARY specifies that flex should write to
  96.  SYS$ERROR a summary of statistics regarding the scanner
  97.  it generates.
  98.  
  99.  You can specify either or both keywords.
  100.  
  101.  /STATISTICS=PERFORMANCE is equivalent to -p in the unix
  102.  version.  /STATISTICS=SUMMARY is equivalent to -v in the
  103.  unix version.
  104. /ECHO
  105.      /ECHO (D)
  106.      /NOECHO 
  107.  
  108.  /NOECHO causes the default rule (that unmatched scanner
  109.  input is echoed to SYS$OUTPUT) to be suppressed.  If the
  110.  scanner encounters input that does not match any of its
  111.  rules, it aborts with an error.
  112.  
  113.  /ECHO is equivalent to -s in the unix version.
  114. /INTERACTIVE
  115.      /INTERACTIVE
  116.      /NOINTERACTIVE (D)
  117.  
  118.  Instructs flex to generate an interactive scanner, that
  119.  is, a scanner which stops immediately rather than look-
  120.  ing ahead if it knows that the currently scanned text
  121.  cannot be part of a longer rule's match.  Again, see
  122.  flexdoc(1) for details.
  123.  /INTERACTIVE cannot be used in conjunction with full or
  124.  fast tables, i.e., /TABLES=FULL or /TABLES=FAST.
  125.  
  126.  /INTERACTIVE is equivalent to -I in the unix version.
  127. /LINE
  128.      /LINE (D)
  129.      /NOLINE
  130.  
  131.  Instructs flex not to generate #line directives in
  132.  output file. The default is to generate such directives
  133.  so error messages in the actions will be correctly located
  134.  with respect to the original flex input file, and not
  135.  to the fairly meaningless line numbers of lex.yy.c.
  136.  
  137.  /NOLINE is equivalent to -L in the unix version.
  138. /TRACE
  139.      /TRACE
  140.      /NOTRACE (D)
  141.  
  142.  Makes flex run in trace mode.  It will generate a lot
  143.  of messages concerning the form of the input and the
  144.  resultant non-deterministic and deterministic finite
  145.  automata.  This option is mostly for use in maintaining
  146.  flex.
  147.  
  148.  Because of the large amount of output that can be 
  149.  generated, you may want to redefine SYS$OUTPUT to a
  150.  file when using this option.
  151.  
  152.  /TRACE is equivalent to -t in the unix version.
  153. /EIGHTBIT
  154.      /EIGHTBIT
  155.      /NOEIGHTBIT (D)
  156.  
  157.  Instructs flex to generate an 8-bit scanner.  At some
  158.  sites, this is the default.  On others, the default is
  159.  7-bit characters.  To see which is the case, check the
  160.  /STATISTICS=SUMARY output for "equivalence classes created".
  161.  If the denominator of the number shown is 128, then by
  162.  default flex is generating 7-bit characters.  If it is
  163.  256, then the default is 8-bit characters.
  164.  
  165.  /EIGHTBIT is equivalent to -8 in the unix version.
  166. /TABLES=[type,...]
  167.     /TABLES
  168.     /TABLES=(EQUIVALENCE,FAST,FULL,META_EQUIVALENCE,NORMAL)
  169.     /TABLES=(EQUIVALENCE,META_EQUIVALENCE) (D)
  170.  
  171.  Controls the degree of table compression.
  172.  
  173.  /TABLES=EQUIVALENCE directs flex to construct equivalence
  174.  classes, i.e., sets of characters which have identical lexical
  175.  properties.  Equivalence classes usually give dramatic reductions
  176.  in the final table/object file sizes (typically a factor of 2-5)
  177.  and are pretty cheap performance-wise (one array look-up per char-
  178.  acter scanned).
  179.  
  180.  /TABLES=FULL specifies that the full scanner tables should be
  181.  generated - flex should not compress the tables by taking advan-
  182.  tages of similar transition functions for different states.
  183.  
  184.  /TABLES=FAST specifies that the alternate fast scanner represen-
  185.  tation (described in flexdoc(1)) should be used.
  186.  
  187.  /TABLES=META_EQUIVALENCE directs flex to construct meta-
  188.  equivalence classes, which are sets of equivalence classes (or
  189.  characters, if equivalence classes are not being used) that are
  190.  commonly used together.  Meta-equivalence classes are often a big
  191.  win when using compressed tables, but they have a moderate per-
  192.  formance impact (one or two "if" tests and one array look-up per
  193.  character scanned).
  194.  
  195.  /TABLES=NORMAL (or just /TABLES) specifies that the scanner
  196.  tables should be compressed but neither equivalence classes nor
  197.  meta-equivalence classes should be used.
  198.  
  199.  The options FULL or FAST and META_EQUIVALENCE do not make sense
  200.  together - there is no opportunity for meta-equivalence classes
  201.  if the table is not being compressed.  Otherwise the options may
  202.  be freely mixed.  FAST or FULL are also incompatible with
  203.  /INTERACTIVE.
  204.  
  205.  The default setting is /TABLES=(EQUIVALENCE,META_EQUIVALENCE),
  206.  which specifies that flex should generate equivalence classes
  207.  and meta-equivalence classes.  This setting provides the highest
  208.  degree of table compression.  You can trade off faster-executing
  209.  scanners at the cost of larger tables with the following generally
  210.  being true:
  211.  
  212.     slowest                 smallest
  213.       /TABLES=(EQUIVALENCE,META_EQUIVALENCE) (default)
  214.       /TABLES=META_EQUIVALENCE
  215.       /TABLES=EQUIVALENCE
  216.       /TABLES=NORMAL or /TABLES
  217.       /TABLES=(FULL or FAST, EQUIVALENCE)
  218.       /TABLES=FULL or FAST
  219.     fastest                  largest
  220.  
  221.  /TABLES is equivalent to -C in the unix version.  
  222.  /TABLES=EQUIV is equivalent to -Ce in the unix version.  
  223.  /TABLES=META is equivalent to -Cm in the unix version.  
  224.  /TABLES=FULL is equivalent to -Cf or -f in the unix version.  
  225.  /TABLES=FAST is equivalent to -CF or -F in the unix version.  
  226.  
  227. /SKELETON=filespec
  228.      /SKELETON=filespec
  229.  
  230.  Overrides the default skeleton file from which flex
  231.  constructs its scanners.  The default is flex.skel in
  232.  a site dependent publicly accessible directory.  You'll
  233.  never need this option unless you are doing flex maint-
  234.  enance or development.
  235.  
  236.  /SKELETON is equivalent to -Sfile in the unix version.  
  237. 2 Regular_expressions
  238.      The patterns in the input are written using an extended set
  239.      of regular expressions.  These are:
  240.  
  241.          x          match the character 'x'
  242.          .          any character except newline
  243.          [xyz]      a "character class"; in this case, the pattern
  244.                       matches either an 'x', a 'y', or a 'z'
  245.          [abj-oZ]   a "character class" with a range in it; matches
  246.                       an 'a', a 'b', any letter from 'j' through 'o',
  247.                       or a 'Z'
  248.          [^A-Z]     a "negated character class", i.e., any character
  249.                       but those in the class.  In this case, any
  250.                       character EXCEPT an uppercase letter.
  251.          [^A-Z\n]   any character EXCEPT an uppercase letter or
  252.                       a newline
  253.          r*         zero or more r's, where r is any regular expression
  254.          r+         one or more r's
  255.          r?         zero or one r's (that is, "an optional r")
  256.          r{2,5}     anywhere from two to five r's
  257.          r{2,}      two or more r's
  258.          r{4}       exactly 4 r's
  259.          {name}     the expansion of the "name" definition (see above)
  260.          "[xyz]\"foo"
  261.                     the literal string: [xyz]"foo
  262.          \X         if X is an 'a', 'b', 'f', 'n', 'r', 't', or 'v',
  263.                       then the ANSI-C interpretation of \x.
  264.                       Otherwise, a literal 'X' (used to escape
  265.                       operators such as '*')
  266.          \123       the character with octal value 123
  267.          \x2a       the character with hexadecimal value 2a
  268.          (r)        match an r; parentheses are used to override
  269.                       precedence (see below)
  270.  
  271.  
  272.          rs         the regular expression r followed by the
  273.                       regular expression s; called "concatenation"
  274.  
  275.  
  276.          r|s        either an r or an s
  277.  
  278.  
  279.          r/s        an r but only if it is followed by an s.  The
  280.                       s is not part of the matched text.  This type
  281.                       of pattern is called as "trailing context".
  282.          ^r         an r, but only at the beginning of a line
  283.          r$         an r, but only at the end of a line.  Equivalent
  284.                       to "r/\n".
  285.  
  286.  
  287.          <s>r       an r, but only in start condition s (see
  288.                       below for discussion of start conditions)
  289.          <s1,s2,s3>r
  290.                     same, but in any of start conditions s1,
  291.                       s2, or s3
  292.  
  293.  
  294.          <<EOF>>    an end-of-file
  295.          <s1,s2><<EOF>>
  296.                     an end-of-file when in start condition s1 or s2
  297.  
  298.      The regular expressions listed above are grouped according
  299.      to precedence, from highest precedence at the top to lowest
  300.      at the bottom.  Those grouped together have equal precedence.
  301.  
  302.      Some notes on patterns:
  303.  
  304.      -    Negated character classes match newlines unless "\n"
  305.           (or an equivalent escape sequence) is one of the char-
  306.           acters explicitly present in the negated character
  307.           class (e.g., "[^A-Z\n]").
  308.  
  309.      -    A rule can have at most one instance of trailing con-
  310.           text (the '/' operator or the '$' operator).  The start
  311.           condition, '^', and "<<EOF>>" patterns can only occur
  312.           at the beginning of a pattern, and, as well as with '/'
  313.           and '$', cannot be grouped inside parentheses.  The
  314.           following are all illegal:
  315.  
  316.               foo/bar$
  317.               foo|(bar$)
  318.               foo|^bar
  319.               <sc1>foo<sc2>bar
  320.  
  321.  
  322. 2 Special_actions
  323.      In addition to arbitrary C code, the following can appear in
  324.      actions:
  325.  
  326.      -    ECHO copies yytext to the scanner's output.
  327.  
  328.      -    BEGIN followed by the name of a start condition places
  329.           the scanner in the corresponding start condition.
  330.  
  331.      -    REJECT directs the scanner to proceed on to the "second
  332.           best" rule which matched the input (or a prefix of the
  333.           input).  yytext and yyleng are set up appropriately.
  334.           Note that REJECT is a particularly expensive feature in
  335.           terms scanner performance; if it is used in any of the
  336.           scanner's actions it will slow down all of the
  337.           scanner's matching.  Furthermore, REJECT cannot be used
  338.           with the /TABLES=FULL or /TABLES=FAST options.
  339.  
  340.           Note also that unlike the other special actions, REJECT
  341.           is a branch; code immediately following it in the
  342.           action will not be executed.
  343.  
  344.      -    yymore() tells the scanner that the next time it
  345.           matches a rule, the corresponding token should be
  346.           appended onto the current value of yytext rather than
  347.           replacing it.
  348.  
  349.      -    yyless(n) returns all but the first n characters of the
  350.           current token back to the input stream, where they will
  351.           be rescanned when the scanner looks for the next match.
  352.           yytext and yyleng are adjusted appropriately (e.g.,
  353.           yyleng will now be equal to n ).
  354.  
  355.      -    unput(c) puts the character c back onto the input
  356.           stream.  It will be the next character scanned.
  357.  
  358.      -    input() reads the next character from the input stream
  359.           (this routine is called yyinput() if the scanner is
  360.           compiled using C++).
  361.  
  362.      -    yyterminate() can be used in lieu of a return statement
  363.           in an action.  It terminates the scanner and returns a
  364.           0 to the scanner's caller, indicating "all done".
  365.  
  366.           By default, yyterminate() is also called when an end-
  367.           of-file is encountered.  It is a macro and may be rede-
  368.           fined.
  369.  
  370.      -    YY_NEW_FILE is an action available only in <<EOF>>
  371.           rules.  It means "Okay, I've set up a new input file,
  372.           continue scanning".
  373.  
  374.      -    yy_create_buffer( file, size ) takes a FILE pointer and
  375.           an integer size. It returns a YY_BUFFER_STATE handle to
  376.           a new input buffer large enough to accomodate size
  377.           characters and associated with the given file.  When in
  378.           doubt, use YY_BUF_SIZE for the size.
  379.  
  380.      -    yy_switch_to_buffer( new_buffer ) switches the
  381.           scanner's processing to scan for tokens from the given
  382.           buffer, which must be a YY_BUFFER_STATE.
  383.  
  384.      -    yy_delete_buffer( buffer ) deletes the given buffer.
  385.  
  386. 2 Variables
  387.      -    char *yytext holds the text of the current token.  It
  388.           may not be modified.
  389.  
  390.      -    int yyleng holds the length of the current token.  It
  391.           may not be modified.
  392.  
  393.      -    FILE *yyin is the file which by default flex reads
  394.           from.  It may be redefined but doing so only makes
  395.           sense before scanning begins.  Changing it in the mid-
  396.           dle of scanning will have unexpected results since flex
  397.           buffers its input.  Once scanning terminates because an
  398.           end-of-file has been seen, void yyrestart( FILE
  399.           *new_file ) may be called to point yyin at the new
  400.           input file.
  401.  
  402.      -    FILE *yyout is the file to which ECHO actions are done.
  403.           It can be reassigned by the user.
  404.  
  405.      -    YY_CURRENT_BUFFER returns a YY_BUFFER_STATE handle to
  406.           the current buffer.
  407.  
  408. 2 Macros
  409.      -    YY_DECL controls how the scanning routine is declared.
  410.           By default, it is "int yylex()", or, if prototypes are
  411.           being used, "int yylex(void)".  This definition may be
  412.           changed by redefining the "YY_DECL" macro.  Note that
  413.           if you give arguments to the scanning routine using a
  414.           K&R-style/non-prototyped function declaration, you must
  415.           terminate the definition with a semi-colon (;).
  416.  
  417.      -    The nature of how the scanner gets its input can be
  418.           controlled by redefining the YY_INPUT macro.
  419.           YY_INPUT's calling sequence is
  420.           "YY_INPUT(buf,result,max_size)".  Its action is to
  421.           place up to max_size characters in the character array
  422.           buf and return in the integer variable result either
  423.           the number of characters read or the constant YY_NULL
  424.           (0 on Unix systems) to indicate EOF.  The default
  425.           YY_INPUT reads from the global file-pointer "yyin".  A
  426.           sample redefinition of YY_INPUT (in the definitions
  427.           section of the input file):
  428.  
  429.               %{
  430.               #undef YY_INPUT
  431.               #define YY_INPUT(buf,result,max_size) \
  432.                   { \
  433.                   int c = getchar(); \
  434.                   result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
  435.                   }
  436.               %}
  437.  
  438.  
  439.      -    When the scanner receives an end-of-file indication
  440.           from YY_INPUT, it then checks the yywrap() function.
  441.           If yywrap() returns false (zero), then it is assumed
  442.           that the function has gone ahead and set up yyin to
  443.           point to another input file, and scanning continues.
  444.           If it returns true (non-zero), then the scanner ter-
  445.           minates, returning 0 to its caller.
  446.  
  447.           The default yywrap() always returns 1.  Presently, to
  448.           redefine it you must first "#undef yywrap", as it is
  449.           currently implemented as a macro.  It is likely that
  450.           yywrap() will soon be defined to be a function rather
  451.           than a macro.
  452.  
  453.      -    YY_USER_ACTION can be redefined to provide an action
  454.           which is always executed prior to the matched rule's
  455.           action.
  456.  
  457.      -    The macro YY_USER_INIT may be redefined to provide an
  458.           action which is always executed before the first scan.
  459.  
  460.      -    In the generated scanner, the actions are all gathered
  461.           in one large switch statement and separated using
  462.           YY_BREAK, which may be redefined.  By default, it is
  463.           simply a "break", to separate each rule's action from
  464.           the following rule's.
  465.  
  466. 2 Diagnostics
  467.      reject_used_but_not_detected undefined or
  468.  
  469.      yymore_used_but_not_detected undefined - These errors can
  470.      occur at compile time.  They indicate that the scanner uses
  471.      REJECT or yymore() but that flex failed to notice the fact,
  472.      meaning that flex scanned the first two sections looking for
  473.      occurrences of these actions and failed to find any, but
  474.      somehow you snuck some in (via a #include file, for exam-
  475.      ple).  Make an explicit reference to the action in your flex
  476.      input file.  (Note that previously flex supported a
  477.      %used/%unused mechanism for dealing with this problem; this
  478.      feature is still supported but now deprecated, and will go
  479.      away soon unless the author hears from people who can argue
  480.      compellingly that they need it.)
  481.  
  482.      flex scanner jammed - a scanner compiled with /NOECHO has
  483.      encountered an input string which wasn't matched by any of
  484.      its rules.
  485.  
  486.      flex input buffer overflowed - a scanner rule matched a
  487.      string long enough to overflow the scanner's internal input
  488.      buffer (16K bytes - controlled by YY_BUF_MAX in
  489.      "flex.skel").
  490.  
  491.      scanner requires -8 flag - Your scanner specification
  492.      includes recognizing 8-bit characters and you did not
  493.      specify the /EIGHTBIT qualifier (and your site has not
  494.      installed flex with /EIGHTBIT as the default).
  495.  
  496.      fatal flex scanner internal error--end of buffer missed -
  497.      This can occur in an scanner which is reentered after a
  498.      long-jump has jumped out (or over) the scanner's activation
  499.      frame.  Before reentering the scanner, use:
  500.  
  501.          yyrestart( yyin );
  502.  
  503.  
  504.      too many %t classes! - You managed to put every single char-
  505.      acter into its own %t class.  flex requires that at least
  506.      one of the classes share characters.
  507.  
  508. 2 Author
  509.      Vern Paxson, with the help of many ideas and much inspira-
  510.      tion from Van Jacobson.  Original version by Jef Poskanzer.
  511.  
  512.      See flexdoc.man for additional credits and the address to
  513.      send comments to.
  514.  
  515. 2 Problems
  516.      Some trailing context patterns cannot be properly matched
  517.      and generate warning messages ("Dangerous trailing con-
  518.      text").  These are patterns where the ending of the first
  519.      part of the rule matches the beginning of the second part,
  520.      such as "zx*/xy*", where the 'x*' matches the 'x' at the
  521.      beginning of the trailing context.  (Note that the POSIX
  522.      draft states that the text matched by such patterns is unde-
  523.      fined.)
  524.  
  525.      For some trailing context rules, parts which are actually
  526.      fixed-length are not recognized as such, leading to the
  527.      abovementioned performance loss.  In particular, parts using
  528.      '|' or {n} (such as "foo{3}") are always considered
  529.      variable-length.
  530.  
  531.      Combining trailing context with the special '|' action can
  532.      result in fixed trailing context being turned into the more
  533.      expensive variable trailing context.  For example, this hap-
  534.      pens in the following example:
  535.  
  536.          %%
  537.          abc      |
  538.          xyz/def
  539.  
  540.  
  541.      Use of unput() invalidates yytext and yyleng.
  542.  
  543.      Use of unput() to push back more text than was matched can
  544.      result in the pushed-back text matching a beginning-of-line
  545.      ('^') rule even though it didn't come at the beginning of
  546.      the line (though this is rare!).
  547.  
  548.      Pattern-matching of NUL's is substantially slower than
  549.      matching other characters.
  550.  
  551.      flex does not generate correct #line directives for code
  552.      internal to the scanner; thus, bugs in flex.skel yield bogus
  553.      line numbers.
  554.  
  555.      Due to both buffering of input and read-ahead, you cannot
  556.      intermix calls to <stdio.h> routines, such as, for example,
  557.      getchar(), with flex rules and expect it to work.  Call
  558.      input() instead.
  559.  
  560.      The total table entries listed by the /STATISTICS=SUMMARY
  561.      flag excludes the number of table entries needed to determine
  562.      what rule has been matched.  The number of entries is equal
  563.      to the number of DFA states if the scanner does not use REJECT,
  564.      and somewhat greater than the number of states if it does.
  565.  
  566.      REJECT cannot be used with the /TABLES=FAST or /TABLES=FULL
  567.      options.
  568.  
  569.      Some of the macros, such as yywrap(), may in the future
  570.      become functions which live in the flex library.  This will
  571.      doubtless break a lot of code, but may be required for
  572.      POSIX-compliance.
  573.  
  574.      The flex internal algorithms need documentation.
  575. 2 Unix
  576.  The unix command line options and their VMS equivalents are:
  577.  
  578.     -b     /BACKTRACK_REPORT
  579.     -C[efFm] /TABLES=[([EQUIV],[FULL],[FAST],[META])]
  580.     -f     /TABLES=FULL
  581.     -F     /TABLES=FAST
  582.     -i     /NOCASE_SENSITIVE
  583.     -I     /INTERACTIVE
  584.     -L     /NOLINE
  585.     -p     /STATISTICS=PERFORMANCE
  586.     -s     /NOECHO
  587.     -Sfile     /SKELETON=file
  588.     -t     /OUTPUT=SYS$OUTPUT
  589.     -T     /TRACE
  590.     -v     /STATISTICS=SUMMARY
  591.     -8     /EIGHTBIT
  592.  
  593.