X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql_interpreter%2Fmathql.ml;fp=helm%2Focaml%2Fmathql_interpreter%2Fmathql.ml;h=01cbf431a21b5103963c9fa716b190f07405600f;hb=8abd42ec1af0d5daef1d026ec550b49b07de8340;hp=2bdc5a1b798d21ed54fdea17cd3d9f1b37f7f388;hpb=cd7145b8ad4118a9854eaff0feced9352ab87e94;p=helm.git diff --git a/helm/ocaml/mathql_interpreter/mathql.ml b/helm/ocaml/mathql_interpreter/mathql.ml index 2bdc5a1b7..01cbf431a 100644 --- a/helm/ocaml/mathql_interpreter/mathql.ml +++ b/helm/ocaml/mathql_interpreter/mathql.ml @@ -41,38 +41,57 @@ exception MQInvalidConnection of string (* Input types **************************************************************) (* main type is mquery *) -type mqrvar = string (* name *) +type mqrvar = string (* name *) -type mqsvar = string (* name *) +type mqsvar = string (* name *) type mquptoken = - | MQString of string (* a constant string *) - | MQSlash (* a slash: '/' *) - | MQAnyChr (* Any single character: '?' *) - | MQAst (* single asterisk: '*' *) - | MQAstAst (* double asterisk: '**' *) + | MQString of string (* a constant string *) + | MQSlash (* a slash: '/' *) + | MQAnyChr (* Any single character: '?' *) + | MQAst (* single asterisk: '*' *) + | MQAstAst (* double asterisk: '**' *) -type mqup = mquptoken list (* uri pattern (helper) *) +type mqup = mquptoken list (* uri pattern (helper) *) type mqfi = int option * int option -type mqtref = string * mqup * string * mqfi (* HELM preamble, - uri pattern, - extension, - fragment identifier *) +type mqtref = string * mqup * mqfi (* HELM preamble, + uri pattern, + fragment identifier *) -type mqpattern = mqtref (* constant pattern *) +type mqpattern = mqtref (* constant pattern *) type mqfunc = - | MQName (* NAME *) + | MQName (* NAME *) + | MQTheory + | MQTitle + | MQContributor + | MQCreator + | MQPublisher + | MQSubject + | MQDescription + | MQDate + | MQType + | MQFormat + | MQIdentifier + | MQLanguage + | MQRelation + | MQSource + | MQCoverage + | MQRights + | MQInstitution + | MQContact + | MQFirstVersion + | MQModified type mqstring = - | MQCons of string (* constant *) - | MQFunc of mqfunc * mqrvar (* function, rvar *) - | MQRVar of mqrvar (* rvar *) - | MQSVar of mqsvar (* svar *) - | MQMConclusion (* main conclusion *) - | MQConclusion (* inner conclusion *) + | MQCons of string (* constant *) + | MQFunc of mqfunc * mqrvar (* function, rvar *) + | MQRVar of mqrvar (* rvar *) + | MQSVar of mqsvar (* svar *) + | MQMConclusion (* main conclusion *) + | MQConclusion (* inner conclusion *) type mqbool = | MQTrue @@ -80,15 +99,21 @@ type mqbool = | MQAnd of mqbool * mqbool | MQOr of mqbool * mqbool | MQNot of mqbool - | MQIs of mqstring * mqstring (* operands *) + | MQIs of mqstring * mqstring (* operands *) + +type mqorder = + | MQAsc + | MQDesc type mqlist = - | MQSelect of mqrvar * mqlist * mqbool (* rvar, list, boolean *) - | MQUse of mqlist * mqsvar (* list, Position attribute *) - | MQUsedBy of mqlist * mqsvar (* list, Position attribute *) - | MQPattern of mqpattern (* pattern *) - | MQUnion of mqlist * mqlist (* *) - | MQIntersect of mqlist * mqlist (* *) + | MQSelect of mqrvar * mqlist * mqbool (* rvar, list, boolean *) + | MQUse of mqlist * mqsvar (* list, Position attribute *) + | MQUsedBy of mqlist * mqsvar (* list, Position attribute *) + | MQPattern of mqpattern (* pattern *) + | MQUnion of mqlist * mqlist (* *) + | MQDiff of mqlist * mqlist (* *) + | MQIntersect of mqlist * mqlist (* *) + | MQSortedBy of mqlist * mqorder * mqfunc (* *) type mquery = | MQList of mqlist @@ -96,10 +121,9 @@ type mquery = (* Output types *************************************************************) (* main type is mqresult *) -(* TODO: usare le uri in questo formato *) -type mquref = UriManager.uri * mqfi (* uri, fragment identifier *) +type mquref = UriManager.uri * mqfi (* uri, fragment identifier *) -type mqrefs = string list (* list of references (helper) *) +type mqrefs = mqtref list (* list of references (helper) *) type mqresult = | MQRefs of mqrefs