1 /* BEGIN INCLUDE FILE  mrds_se_info.incl.pl1
 2 
 3    These contains information relating to the selection expression.
 4 
 5 */
 6 
 7 /****^  HISTORY COMMENTS:
 8   1) change(85-08-05,Hergert), approve(88-06-28,MCR7903),
 9      audit(88-06-28,Dupuis), install(88-08-01,MR12.2-1073):
10      Created for for new parser.
11                                                    END HISTORY COMMENTS */
12 
13 dcl     1 se_info              aligned based (se_info_ptr),
14           2 se_ptr             ptr,                         /* points to the beginning of the selection expression */
15           2 se_length          fixed bin,                   /* length of the selection expression */
16           2 se_cursor          fixed bin,                   /* current place in se */
17           2 flags,
18             3 pso_seen         bit,                         /* -pso supplied in se */
19             3 no_ot_seen       bit,                         /* -no_ot supplied in se */
20           2 error_report,
21             3 error_info_supplied bit aligned,              /* ON -> structure already filled in */
22             3 loud             bit aligned,                 /* ON -> call mu_print_error */
23             3 token_start      fixed bin,                   /* position in se where token starts */
24             3 token_length     fixed bin,                   /* length of token in se */
25             3 error_code       fixed bin(35),               /* system error code */
26             3 stack_offset     fixed bin,                   /* how far down the token is in the lex stack */
27             3 error_type       char(24),                    /* type of error. ie range, select where... */
28             3 error_msg        char(256);                   /* message to explain problem */
29 
30 
31 /* various types of errors. actually the string that is reported in the
32    error message. */
33 dcl     RC_TYPE                char (12) internal static
34                                options (constant) init ("Range Clause");
35 dcl     SE_TYPE                char (20) internal static
36                                options (constant)
37                                init ("Selection Expression");
38 dcl     SC_TYPE                char (13) internal static
39                                options (constant)
40                                init ("Select Clause");
41 dcl     WC_TYPE                char (12) internal static
42                                options (constant)
43                                init ("Where Clause");
44 dcl     WCE_TYPE               char (23) internal static
45                                options (constant)
46                                init ("Where Clause Expression");
47 dcl     WCF_TYPE               char (21) internal static
48                                options (constant)
49                                init ("Where Clause Function");
50 dcl     AV_TYPE                char (16) internal static
51                                options (constant)
52                                init ("Access Violation");
53 dcl     IL_TYPE                char (14) internal static
54                                options (constant)
55                                init ("Internal Logic");
56 
57 /* parser_work_area is used to hold all static data for an invocation
58    of the parser. parser_static_info holds ptrs to all of these relevant
59    data and also a ptr back to the area it is allocated in.
60    parser_work_area.
61 */
62 
63 dcl parser_work_area aligned area (sys_info$max_seg_size) based (parser_static_info.pwa_ptr);
64 
65 dcl psi_ptr ptr;
66 dcl 1 parser_static_info aligned based (psi_ptr),
67       2 pwa_ptr ptr,
68       2 semantics, /* for mrds_dsl_semantics */
69         3 static_data_ptr ptr,
70       2 expr, /* for mrds_dsl_expr_ */
71         3 data_stacks_ptr ptr,
72       2 func, /* for mrds_dsl_func_ */
73         3 sfptrs_ptr ptr,
74       2 where_clause, /* for mrds_dsl_where_clause_ */
75         3 ns_ptr ptr;
76 
77 
78 /* END INCLUDE FILE  mrds_se_info.incl.pl1 */