/[mojave]/metaprl/theories/mc/mp_mc_fir_base.ml
ViewVC logotype

Diff of /metaprl/theories/mc/mp_mc_fir_base.ml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3579 by emre, Sun Mar 24 22:35:29 2002 UTC revision 3580 by emre, Fri Apr 19 08:09:21 2002 UTC
# Line 38  Line 38 
38    
39  open Refiner.Refiner.Term  open Refiner.Refiner.Term
40  open Refiner.Refiner.TermOp  open Refiner.Refiner.TermOp
41    open Mp_mc_term_op
42    
43  (*************************************************************************  (*************************************************************************
44   * Term declarations.   * Term declarations.
# Line 84  Line 85 
85  declare normalUnion  declare normalUnion
86  declare exnUnion  declare exnUnion
87    
88    (*
89     * Subscript operators.
90     *)
91    
92    (* Kind of block. *)
93    
94    declare blockSub
95    declare rawDataSub
96    declare tupleSub
97    declare rawTupleSub
98    
99    (* Kind of value. *)
100    
101    declare polySub
102    declare rawIntSub{ 'int_precision; 'int_signed }
103    declare rawFloatSub{ 'float_precision }
104    declare pointerSub
105    declare functionSub
106    
107    (* Element width. *)
108    
109    declare byteIndex
110    declare wordIndex
111    
112    (* Kind of subscript. *)
113    
114    declare intIndex
115    declare rawIntIndex{ 'int_precision; 'int_signed }
116    
117    (* Subscripting op. *)
118    
119    declare subop{ 'sub_block; 'sub_value; 'sub_index; 'sub_script }
120    
121  (*************************************************************************  (*************************************************************************
122   * Term declarations.   * Term declarations.
123   *************************************************************************)   *************************************************************************)
# Line 170  Line 204 
204     exnUnion =     exnUnion =
205     `"ExnUnion"     `"ExnUnion"
206    
207    (*
208     * Subscript operators.
209     *)
210    
211    (* Kind of block. *)
212    
213    dform blockSub_df : except_mode[src] ::
214       blockSub =
215       `"BlockSub"
216    dform rawDataSub_df : except_mode[src] ::
217       rawDataSub =
218       `"RawDataSub"
219    dform tupleSub_df : except_mode[src] ::
220       tupleSub =
221       `"TupleSub"
222    dform rawTupleSub_df : except_mode[src] ::
223       rawTupleSub =
224       `"RawTupleSub"
225    
226    (* Kind of value. *)
227    
228    dform polySub_df : except_mode[src] ::
229       polySub =
230       `"PolySub"
231    dform rawIntSub_df : except_mode[src] ::
232       rawIntSub{ 'int_precision; 'int_signed } =
233       `"RawIntSub(" slot{'int_precision} `"," slot{'int_signed}
234    dform rawFloatSub_df : except_mode[src] ::
235       rawFloatSub{ 'float_precision } =
236       `"RawFloatSub(" slot{'float_precision} `")"
237    dform pointerSub_df : except_mode[src] ::
238       pointerSub =
239       `"PointerSub"
240    dform functionSub_df : except_mode[src] ::
241       functionSub =
242       `"FunctionSub"
243    
244    (* Element width. *)
245    
246    dform byteIndex_df : except_mode[src] ::
247       byteIndex =
248       `"ByteIndex"
249    dform wordIndex_df : except_mode[src] ::
250       wordIndex =
251       `"WordIndex"
252    
253    (* Kind of subscript. *)
254    
255    dform intIndex_df : except_mode[src] ::
256       intIndex =
257       `"IntIndex"
258    dform rawIntIndex_df : except_mode[src] ::
259       rawIntIndex{ 'int_precision; 'int_signed } =
260       `"RawIntIndex(" slot{'int_precision} `"," slot{'int_signed} `")"
261    
262    (* Subscripting op. *)
263    
264    dform subop_df : except_mode[src] ::
265       subop{ 'sub_block; 'sub_value; 'sub_index; 'sub_script } =
266       `"Subop(" slot{'sub_block} `"," slot{'sub_value} `","
267       slot{'sub_index} `"," slot{'sub_script} `")"
268    
269  (*************************************************************************  (*************************************************************************
270   * Term operations.   * Term operations.
271   *************************************************************************)   *************************************************************************)
# Line 276  Line 372 
372  let exnUnion_term = << exnUnion >>  let exnUnion_term = << exnUnion >>
373  let exnUnion_opname = opname_of_term exnUnion_term  let exnUnion_opname = opname_of_term exnUnion_term
374  let is_exnUnion_term = is_no_subterms_term exnUnion_opname  let is_exnUnion_term = is_no_subterms_term exnUnion_opname
375    
376    (*
377     * Subscript operators.
378     *)
379    
380    (* Kind of block. *)
381    
382    let blockSub_term = << blockSub >>
383    let blockSub_opname = opname_of_term blockSub_term
384    let is_blockSub_term = is_no_subterms_term blockSub_opname
385    
386    let rawDataSub_term = << rawDataSub >>
387    let rawDataSub_opname = opname_of_term rawDataSub_term
388    let is_rawDataSub_term = is_no_subterms_term rawDataSub_opname
389    
390    let tupleSub_term = << tupleSub >>
391    let tupleSub_opname = opname_of_term tupleSub_term
392    let is_tupleSub_term = is_no_subterms_term tupleSub_opname
393    
394    let rawTupleSub_term = << rawTupleSub >>
395    let rawTupleSub_opname = opname_of_term rawTupleSub_term
396    let is_rawTupleSub_term = is_no_subterms_term rawTupleSub_opname
397    
398    (* Kind of value. *)
399    
400    let polySub_term = << polySub >>
401    let polySub_opname = opname_of_term polySub_term
402    let is_polySub_term = is_no_subterms_term polySub_opname
403    
404    let rawIntSub_term = << rawIntSub{ 'int_precision; 'int_signed } >>
405    let rawIntSub_opname = opname_of_term rawIntSub_term
406    let is_rawIntSub_term = is_dep0_dep0_term rawIntSub_opname
407    let mk_rawIntSub_term = mk_dep0_dep0_term rawIntSub_opname
408    let dest_rawIntSub_term = dest_dep0_dep0_term rawIntSub_opname
409    
410    let rawFloatSub_term = << rawFloatSub{ 'float_precision } >>
411    let rawFloatSub_opname = opname_of_term rawFloatSub_term
412    let is_rawFloatSub_term = is_dep0_term rawFloatSub_opname
413    let mk_rawFloatSub_term = mk_dep0_term rawFloatSub_opname
414    let dest_rawFloatSub_term = dest_dep0_term rawFloatSub_opname
415    
416    let pointerSub_term = << pointerSub >>
417    let pointerSub_opname = opname_of_term pointerSub_term
418    let is_pointerSub_term = is_no_subterms_term pointerSub_opname
419    
420    let functionSub_term = << functionSub >>
421    let functionSub_opname = opname_of_term functionSub_term
422    let is_functionSub_term = is_no_subterms_term functionSub_opname
423    
424    (* Element width. *)
425    
426    let byteIndex_term = << byteIndex >>
427    let byteIndex_opname = opname_of_term byteIndex_term
428    let is_byteIndex_term = is_no_subterms_term byteIndex_opname
429    
430    let wordIndex_term = << wordIndex >>
431    let wordIndex_opname = opname_of_term wordIndex_term
432    let is_wordIndex_term = is_no_subterms_term wordIndex_opname
433    
434    (* Kind of subscript. *)
435    
436    let intIndex_term = << intIndex >>
437    let intIndex_opname = opname_of_term intIndex_term
438    let is_intIndex_term = is_no_subterms_term intIndex_opname
439    
440    let rawIntIndex_term = << rawIntIndex{ 'int_precision; 'int_signed } >>
441    let rawIntIndex_opname = opname_of_term rawIntIndex_term
442    let is_rawIntIndex_term = is_dep0_dep0_term rawIntIndex_opname
443    let mk_rawIntIndex_term = mk_dep0_dep0_term rawIntIndex_opname
444    let dest_rawIntIndex_term = dest_dep0_dep0_term rawIntIndex_opname
445    
446    (* Subscripting op. *)
447    
448    let subop_term = << subop{ 'sub_block; 'sub_value; 'sub_index; 'sub_script } >>
449    let subop_opname = opname_of_term subop_term
450    let is_subop_term = is_4_dep0_term subop_opname
451    let mk_subop_term = mk_4_dep0_term subop_opname
452    let dest_subop_term = dest_4_dep0_term subop_opname

Legend:
Removed from v.3579  
changed lines
  Added in v.3580

  ViewVC Help
Powered by ViewVC 1.1.26