(* * PBNF, the people's BNF, for beings capable of working at the apobetic level * * CHANGELOG: * ========== * 2002.03.08-21:30 * - removed elements that serve no purpose * * 2002.03.07-11:30 * - converted to version 1.13 * o removed "condor" and "environment" in favour of "profile" * o removed "use" from application code * * 2002.02.28-15:30 * - convert to version 1.12 * * 2002.02.21-15:30 * - allowed for "application/*/use" element * - changed "call/@version" to @minIncludeVersion and @maxIncludeVersion * - fixed problem with mixed content in "application/*" * - changed "declare/@type" to "declare/@container" * - added "declare/@type" to declare the linkage of the parameter. * * 2002.02.21-09:30 * - (re-) creation date * *) definitions = { transformation | derivation } ; transformation = formal-parameter, transformation-body ; derivation = { pass } ; formal-parameter = (* pseudo-element *) { declare } (* declare formal parameter *) ; declare = (* declare a formal-parameter *) [ scalar | list ] (* optional spec of default values *) ; transformation-body = (* pseudo element *) { declare-temp }, (* local variables section *) { parameter-file }, (* any number of parameter files *) ( application, [ argument ] | (* simple transformation *) call, { call } ), (* compound transformation *) { profile } (* add execution environment stuff *) ; declare-temp = (* declare a formal-parameter *) [ #PCDATA | use ] (* ??? what is in there ??? *) ; application = [ pre-script ], executable, [ postscript ] ; pre-script, post-script = <(pre|post)-script [ universe=UniverseType ] (* default: "scheduler" *) > ( #PCDATA | (* either a physical filename *) lfn ) (* or a const lfn: in | none *) ; executable = ( #PCDATA | (* either a physical filename *) lfn ) (* or a const lfn: in | none *) ; argument = { chunk } ; chunk = { #PCDATA | (* consider *) use | (* referral to parameter content *) br } (* visual markup option *) ; call = actual-parameter ; profile = (* name of variable *) { #PCDATA | (* verbatim text *) use } (* referral to parameter content *) ; pass = ( scalar | (* encapsulate as-is and lfn *) list ) (* vector, or list *) scalar = { #PCDATA | (* verbatim value to pass *) lfn | (* NOT available within xforms *) use } (* NOT available in derivations *) ; list = { item } ; item = { #PCDATA | (* verbatim value to pass *) lfn | (* NOT available within xforms *) use } (* NOT available in derivations *) ; lfn = ; (* empty element *) use = ; (* empty element *) ContainerType = ( scalar | list ) ; LinkageType = ( input | output | inout | none ) ; UniverseType = ( standard | vanilla | scheduler | globus | mpi | pvm | java ) ; ProfileNamespace = (* exec. environment namespace id *) ( vds | dagman | condor | env ) ;