(* Copyright (C) 2000, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science * Department, University of Bologna, Italy. * * HELM is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * HELM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HELM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, * http://www.cs.unibo.it/helm/. *) (* AUTOR: Ferruccio Guidi *) (* output data structures ***************************************************) module I : Avs.Type = ListAvs type value = Avs.value (* a linearized attribute value *) type path = Avs.path (* the name of an attribute *) type group = I.group (* an group of attribures *) type result = I.avs (* the query result *) (* input data structures ****************************************************) type svar = string (* the name of a variable for a resource set *) type avar = string (* the name of a variable for a resource *) type inverse = bool type refine = RefineExact | RefineSub | RefineSuper type main = path type pattern = bool type exp = path * (path option) type exp_list = exp list type allbut = bool type xml = bool type source = bool type gen = GenFJoin (* full union - with attr handling *) | GenFMeet (* full intersection - with attr handling *) type query = Const of (string * (path * query) list list) list | SVar of svar | AVar of avar | Dot of avar * path | Ex of avar list * query | Select of avar * query * query | Let of svar option * query * query | Fun of path * path list * query list | Gen of path * query list | Add of bool * groups * query | For of gen * avar * query * query | While of gen * query * query | Property of inverse * refine * path * main * istrue * isfalse list * exp_list * pattern * query and groups = Attr of (path * query) list list | From of avar and con = pattern * path * query and istrue = con list and isfalse = con list