Annotation of 43BSD/contrib/icon/man/cat1/rsg.1, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: RSG(1)                Icon Program Library                 RSG(1)
                      5: 
                      6: 
                      7: 
                      8: NNNNAAAAMMMMEEEE
                      9:      rsg - generate random sentences
                     10: 
                     11: SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
                     12:      rrrrssssgggg [----llll _n] [----llll _n] [----tttt]
                     13: 
                     14: DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
                     15:      _R_s_g generates randomly selected sentences from a grammar
                     16:      specified by the user.
                     17: 
                     18:      The following options may appear in any order:
                     19: 
                     20:      ----ssss _n Set the seed for random generation to _n.  The default
                     21:           seed is 0.
                     22: 
                     23:      ----llll _n Terminate generation if the number of symbols remaining
                     24:           to be processed exceeds _n. There is no default limit.
                     25: 
                     26:      ----tttt   Trace the generation of sentences. Trace output goes to
                     27:           standard error output.
                     28: 
                     29:      _R_s_g works interactively, allowing the user to build, test,
                     30:      modify, and save grammars. Input to _r_s_g consists of various
                     31:      kinds of specifications, which can be intermixed:
                     32: 
                     33:      _P_r_o_d_u_c_t_i_o_n_s define nonterminal symbols in a syntax similar
                     34:      to the rewriting rules of BNF with various alternatives con-
                     35:      sisting of the concatenation of nonterminal and terminal
                     36:      symbols.
                     37: 
                     38:      _G_e_n_e_r_a_t_i_o_n _s_p_e_c_i_f_i_c_a_t_i_o_n_s cause the generation of a speci-
                     39:      fied number of sentences from the language defined by a
                     40:      given nonterminal symbol.
                     41: 
                     42:      _G_r_a_m_m_a_r _o_u_t_p_u_t _s_p_e_c_i_f_i_c_a_t_i_o_n_s cause the definition of a
                     43:      specified nonterminal or the entire current grammar to be
                     44:      written to a given file.
                     45: 
                     46:      _S_o_u_r_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n_s cause subsequent input to be read from
                     47:      a specified file.
                     48: 
                     49:      In addition, any line beginning with #### is considered to be a
                     50:      comment, while any line beginning with ==== causes the rest of
                     51:      that line to be used as a prompt to the user whenever _r_s_g is
                     52:      ready for input (there normally is no prompt). A line con-
                     53:      sisting of a single ==== stops prompting.
                     54: 
                     55:    PPPPrrrroooodddduuuuccccttttiiiioooonnnnssss
                     56:      Examples of productions are:
                     57: 
                     58:           <expr>::=<term>|<term>+<expr>
                     59:           <term>::=<element>|<element>*<term>
                     60: 
                     61: 
                     62: 
                     63: Version 5.9    The University of Arizona - 5/16/83              1
                     64: 
                     65: 
                     66: 
                     67: 
                     68: 
                     69: 
                     70: RSG(1)                Icon Program Library                 RSG(1)
                     71: 
                     72: 
                     73: 
                     74:           <element>::=x|y|z|(<expr>)
                     75: 
                     76:      Productions may occur in any order. The definition for a
                     77:      nonterminal symbol can be changed by specifying a new pro-
                     78:      duction for it.
                     79: 
                     80:      There are a number of special devices to facilitate the
                     81:      definition of grammars, including eight predefined, built-in
                     82:      nonterminal symbols:
                     83: 
                     84:           symbol    definition
                     85:           <<<<llllbbbb>>>>      <<<<
                     86:           <<<<rrrrbbbb>>>>      >>>>
                     87:           <<<<vvvvbbbb>>>>      ||||
                     88:           <<<<nnnnllll>>>>      newline
                     89:           <<<<>>>>        empty string
                     90:           <<<<&&&&llllccccaaaasssseeee>>>>  any single lowercase letter
                     91:           <<<<&&&&uuuuccccaaaasssseeee>>>>  any single uppercase letter
                     92:           <<<<&&&&ddddiiiiggggiiiitttt>>>>  any single digit
                     93: 
                     94:      In addition, if the string between a <<<< and >>>> begins and ends
                     95:      with a single quotation mark, that construction stands for
                     96:      any single character between the quotation marks. For exam-
                     97:      ple,
                     98: 
                     99:           <'xyz'>
                    100: 
                    101:      is equivalent to
                    102: 
                    103:           x|y|z
                    104: 
                    105:      Finally, if the name of a nonterminal symbol between the <<<<
                    106:      and >>>> begins with ????, the user is queried during generation
                    107:      to supply a string for that nonterminal symbol. For example,
                    108:      in
                    109: 
                    110:           <expr>::=<term>|<term>+<expr>|<?expr>
                    111: 
                    112:      if the third alternative is encountered during generation,
                    113:      the user is asked to provide a string for <<<<eeeexxxxpppprrrr>>>>.
                    114: 
                    115:    GGGGeeeennnneeeerrrraaaattttiiiioooonnnn SSSSppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnnssss
                    116:      A generation specification consists of a nonterminal symbol
                    117:      followed by a nonnegative integer. An example is
                    118: 
                    119:           <expr>10
                    120: 
                    121:      which specifies the generation of 10 <<<<eeeexxxxpppprrrr>>>>s. If the integer
                    122:      is omitted, it is assumed to be 1. Generated sentences are
                    123:      written to standard output.
                    124: 
                    125: 
                    126: 
                    127: 
                    128: 
                    129: Version 5.9    The University of Arizona - 5/16/83              2
                    130: 
                    131: 
                    132: 
                    133: 
                    134: 
                    135: 
                    136: RSG(1)                Icon Program Library                 RSG(1)
                    137: 
                    138: 
                    139: 
                    140:    GGGGrrrraaaammmmmmmmaaaarrrr OOOOuuuuttttppppuuuutttt SSSSppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnnssss
                    141:      A grammar output specification consists of a nonterminal
                    142:      symbol, followed by ---->>>>, followed by a file name. Such a
                    143:      specification causes the current definition of the nontermi-
                    144:      nal symbol to be written to the given file. If the file is
                    145:      omitted, standard output is assumed. If the nonterminal sym-
                    146:      bol is omitted, the entire grammar is written out. Thus,
                    147: 
                    148:           ->
                    149: 
                    150:      causes the entire grammar to be written to standard output.
                    151: 
                    152:    SSSSoooouuuurrrrcccceeee SSSSppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnnssss
                    153:      A source specification consists of @@@@ followed by a file
                    154:      name.  Subsequent input is read from that file. When an end
                    155:      of file is encountered, input reverts to the previous file.
                    156:      Input files can be nested.
                    157: 
                    158: DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
                    159:      Syntactically erroneous input lines are noted, but ignored.
                    160: 
                    161:      Specifications for a file that cannot be opened are noted
                    162:      and treated as erroneous.
                    163: 
                    164:      If an undefined nonterminal symbol is encountered during
                    165:      generation, an error message that identifies the undefined
                    166:      symbol is produced, followed by the partial sentence gen-
                    167:      erated to that point. Exceeding the limit of symbols remain-
                    168:      ing to be generated as specified by the ----llll option is handled
                    169:      in similarly.
                    170: 
                    171: CCCCAAAAVVVVEEEEAAAATTTTSSSS
                    172:      Generation may fail to terminate because of a loop in the
                    173:      rewriting rules or, more seriously, because of the progres-
                    174:      sive accumulation of nonterminal symbols. The latter problem
                    175:      can be identified by using the ----tttt option and controlled by
                    176:      using the ----llll option. The problem often can be circumvented
                    177:      by duplicating alternatives that lead to fewer rather than
                    178:      more nonterminal symbols. For example, changing
                    179: 
                    180:           <expr>::=<term>|<term>+<expr>
                    181: 
                    182:      to
                    183: 
                    184:           <expr>::=<term>|<term>|<term>+<expr>
                    185: 
                    186:      increases the probability of selecting <<<<tttteeeerrrrmmmm>>>> from 1/2 to
                    187:      2/3.  See the second reference listed below for a discussion
                    188:      of the general problem.
                    189: 
                    190: SSSSEEEEEEEE AAAALLLLSSSSOOOO
                    191:      Griswold, Ralph E. and Madge T. Griswold. _T_h_e _I_c_o_n
                    192: 
                    193: 
                    194: 
                    195: Version 5.9    The University of Arizona - 5/16/83              3
                    196: 
                    197: 
                    198: 
                    199: 
                    200: 
                    201: 
                    202: RSG(1)                Icon Program Library                 RSG(1)
                    203: 
                    204: 
                    205: 
                    206:      _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e, Prentice-Hall, Inc., Englewood Cliffs,
                    207:      New Jersey, 1983.  pp. 211-219, 301-302.
                    208: 
                    209:      Wetherell, C. S. ``Probabilistic Languages: A Review and
                    210:      Some Open Questions'', _C_o_m_p_u_t_e_r _S_u_r_v_e_y_s, Vol. 12, No. 4
                    211:      (1980), pp. 361-379.
                    212: 
                    213: AAAAUUUUTTTTHHHHOOOORRRR
                    214:      Ralph E. Griswold
                    215: 
                    216: 
                    217: 
                    218: 
                    219: 
                    220: 
                    221: 
                    222: 
                    223: 
                    224: 
                    225: 
                    226: 
                    227: 
                    228: 
                    229: 
                    230: 
                    231: 
                    232: 
                    233: 
                    234: 
                    235: 
                    236: 
                    237: 
                    238: 
                    239: 
                    240: 
                    241: 
                    242: 
                    243: 
                    244: 
                    245: 
                    246: 
                    247: 
                    248: 
                    249: 
                    250: 
                    251: 
                    252: 
                    253: 
                    254: 
                    255: 
                    256: 
                    257: 
                    258: 
                    259: 
                    260: 
                    261: Version 5.9    The University of Arizona - 5/16/83              4
                    262: 
                    263: 
                    264: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.