(*
* 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 *)
(pre|post)-script> ;
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 ) ;