Docs GODI Archive
Projects Blog Link DB

Search GODI:


More options
File lib/ocaml/pkg-lib/galax/ast_walker_rewrite_context.mli GODI Package godi-galax
Library galax
 
   ast_walker_rewrite_context.cmi_pretty    ast_walker_rewrite_context.mli    Sources  
(***********************************************************************)
(*                                                                     *)
(*                                 GALAX                               *)
(*                              XQuery Engine                          *)
(*                                                                     *)
(*  Copyright 2001-2007.                                               *)
(*  Distributed only by permission.                                    *)
(*                                                                     *)
(***********************************************************************)

(* $Id: ast_walker_rewrite_context.mli,v 1.3 2007/02/01 22:08:45 simeon Exp $ *)

(* Module: Ast_walker_rewrite_context
   Description:
     Context for the rewriting engine.
*)

open Xquery_core_ast
open Xquery_type_core_ast

(* Type for the rewriting rules *)

(* Note:
     A rule takes a context (including 'a rules), an 'a cexpr, and
     returns a 'a cexpr, plus a boolean indicating if any of the rules
     has been triggered, or whether the default behavior has been
     applied.

     The default behavior is to copy the expression as is. The output
     expression must be of the same type for the fix-point to work.

   - Jerome *)

type 'a rewrite_context

and 'a rewrite_rule = 'a rewrite_context -> acexpr -> acexpr * bool

and 'a rewrite_prolog_rule = 'a rewrite_context -> acvar_decl -> 'a rewrite_context * acvar_decl * bool

type 'a rewrite_rule_set         = 'a rewrite_rule list 
type 'a rewrite_prolog_rule_set  = 'a rewrite_prolog_rule list 

(* Type for the rewriting context *)

(* Operations on the rewriting context *)

val build_rewrite_context :
    'a -> 'a rewrite_rule_set -> 'a rewrite_prolog_rule_set -> 'a rewrite_context

val get_context        	     : 'a rewrite_context -> 'a
val get_rewrite_rules  	     : 'a rewrite_context -> 'a rewrite_rule list
val get_rewrite_prolog_rules : 'a rewrite_context -> 'a rewrite_prolog_rule list

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml