1 /* BEGIN INCLUDE FILE mrds_dsm_parse_stack.incl.pl1 */ 2 3 /* These structures are used by mrds_dsm_parse, mrds_dsm_scanner, and 4 mrds_dsm_semantics. They are very similar to the 5 mrds_rst_parse_stack.incl.pl1 structures, the difference being the 6 semantics_ptr in the lex_stack in this include file. 7 8 Written 12/19/79 by Lindsey L. Spratt 9 */ 10 declare 1 lex_stack (-5:50) based (lex_stack_ptr), 11 2 symptr ptr, /* pointer to terminal symbol in source input */ 12 2 symlen fixed binary (24), /* length of terminal symbol in input */ 13 2 line fixed binary (24), /* line number in source for this symbol */ 14 2 symbol fixed binary (24), /* parser's encoding value for the terminal symbol */ 15 2 val fixed binary (71), /* conversion value for numbers */ 16 2 float float binary (63), /* conversion value if floating point number */ 17 2 semantics_ptr ptr, /* Pointer to arbitrary data, not used by either parse or scan routines.*/ 18 2 line_strt ptr, /* pointer to start of current line */ 19 2 line_size fixed binary (24), /* current length of line */ 20 2 token_num fixed binary (24); /* number of this token in current line, 21 0 if <error_symbol> for missing or wrong symbol */ 22 23 declare lex_stack_ptr ptr; /* pointer to lexical stack */ 24 25 /* on => output debug messages */ 26 27 dcl 1 p_struct (50) aligned based (p_struct_ptr), 28 2 parse_stack fixed bin (24), /* * parse stack */ 29 2 parse_stack2 fixed bin (24); /* * copy of parse stack used 30 with local error recovery */ 31 32 dcl p_struct_ptr ptr; 33 34 35 dcl cur_lex_top (50) fixed bin (24) aligned based (cur_lex_top_ptr); 36 /* current lex top stack (with parse_stack) */ 37 38 declare cur_lex_top_ptr ptr; 39 40 41 /* END INCLUDE FILE mrds_rst_parse_stack.incl.pl1 */ 42