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 * * * * * * */