1           /*  START OF:       lex_descriptors_.incl.pl1       *  *  *  *  *  *  */
 2 
 3           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
 4           /*                                                                    */
 5           /* Name:  lex_descriptors_.incl.pl1                                   */
 6           /*                                                                    */
 7           /*      This include segment defines the structure of the token       */
 8           /* descriptor, statement descriptor, and comment descriptor created   */
 9           /* by the lex_string_ program.                                        */
10           /*                                                                    */
11           /* Status:                                                            */
12           /*                                                                    */
13           /* 0) Created:  Dec, 1973 by G. C. Dixon                              */
14           /*                                                                    */
15           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
16 
17 
18 
19 
20      dcl
21           1 comment                     aligned based (Pcomment),
22                                                             /* descriptor for a comment.                      */
23             2 group1                    unaligned,
24               3 version                 fixed bin(17),      /* comment descriptor version.                    */
25               3 size                    fixed bin(17),      /* comment descriptor size (in words).            */
26             2 Pnext                     ptr unal,           /* ptr to next comment descriptor.                */
27             2 Plast                     ptr unal,           /* ptr to last comment descriptor.                */
28             2 Pvalue                    ptr unal,           /* ptr to comment.                                */
29             2 Lvalue                    fixed bin(18),      /* length of comment.                             */
30             2 group2                    unaligned,
31               3 line_no                 fixed bin(17),      /* line no of line containing comment.            */
32               3 S,                                          /* switches:                                      */
33                 4 before_stmt           bit(1),             /* comment is before 1st token of stmt.           */
34                 4 contiguous            bit(1),             /* no tokens between this and last comment.       */
35                 4 pad                   bit(16),
36           comment_value                 char(comment.Lvalue) based (comment.Pvalue),
37                                                             /* body of comment.                               */
38           Pcomment                      ptr;                /* ptr to comment descriptor.                     */
39           ^L
40      dcl
41           1 stmt                        aligned based (Pstmt),
42                                                             /* descriptor for a statement.                    */
43             2 group1                    unaligned,
44               3 version                 fixed bin(17),      /* statement descriptor version.                  */
45               3 size                    fixed bin(17),      /* statement descriptor size (in words).          */
46             2 Pnext                     ptr unal,           /* ptr to next statement descriptor.              */
47             2 Plast                     ptr unal,           /* ptr to last statement descriptor.              */
48             2 Pvalue                    ptr unal,           /* ptr to statement.                              */
49             2 Lvalue                    fixed bin(18),      /* length of statement.                           */
50             2 Pfirst_token              ptr unal,           /* ptr to 1st token of statement.                 */
51             2 Plast_token               ptr unal,           /* ptr to last token of statement.                */
52             2 Pcomments                 ptr unal,           /* ptr to comments in statement.                  */
53             2 Puser                     ptr unal,           /* user-defined ptr.                              */
54             2 group2                    unaligned,
55               3 Ntokens                 fixed bin(17),      /* number of tokens in statement.                 */
56               3 line_no                 fixed bin(17),      /* line no of line on which statement begins.     */
57               3 Istmt_in_line           fixed bin(17),      /* number of stmts in line containing this stmt.  */
58                                                             /* (the number includes this stmt.)               */
59               3 semant_type             fixed bin(17),      /* semantic type of the statement.                */
60               3 S,                                          /* switches:                                      */
61                 4 error_in_stmt         bit(1),             /* stmt contains a syntactic error.               */
62                 4 output_in_err_msg     bit(1),             /* stmt has been output in previous error message.*/
63                 4 pad                   bit(34),
64           stmt_value                    char(stmt.Lvalue) based (stmt.Pvalue),
65                                                             /* text of the statement.                         */
66           Pstmt                         ptr;                /* ptr to a stmt descriptor.                      */
67 
68      dcl
69           1 token                       aligned based (Ptoken),
70                                                             /* descriptor for a token.                        */
71             2 group1                    unaligned,
72               3 version                 fixed bin(17),      /* token descriptor version.                      */
73               3 size                    fixed bin(17),      /* token descriptor size (in words).              */
74             2 Pnext                     ptr unal,           /* ptr to next token descriptor.                  */
75             2 Plast                     ptr unal,           /* ptr to last token descriptor.                  */
76             2 Pvalue                    ptr unal,           /* ptr to token.                                  */
77             2 Lvalue                    fixed bin(18),      /* length of token.                               */
78             2 Pstmt                     ptr unal,           /* ptr to descriptor of stmt containing token.    */
79             2 Psemant                   ptr unal,           /* ptr to descriptor(s) of token's semantic value.*/
80             2 group2                    unaligned,
81               3 Itoken_in_stmt          fixed bin(17),      /* position of token within its statement.        */
82               3 line_no                 fixed bin(17),      /* line number of the line containing the token.  */
83               3 Nvalue                  fixed bin(35),      /* numeric value of decimal-integer tokens.       */
84               3 S,                                          /* switches:                                      */
85                 4 end_of_stmt           bit(1),             /* token is an end-of-stmt token.                 */
86                 4 quoted_string         bit(1),             /* token is a quoted string.                      */
87                 4 quotes_in_string      bit(1),             /* on if quote-close delimiters appear in quoted  */
88                                                             /* string (as doubled quotes on input.)           */
89                 4 quotes_doubled        bit(1),             /* on if quotes in the string are doubled after   */
90                                                             /* string has been lexed into a token.            */
91                 4 pad2                  bit(32),
92           token_value                   char(token.Lvalue) based (token.Pvalue),
93                                                             /* value of the token.                            */
94           Ptoken                        ptr;                /* ptr to a token descriptor.                     */
95 
96           /*  END OF:         lex_descriptors_.incl.pl1       *  *  *  *  *  *  */