Program Flow Miscellaneous

Control:
Constituent Structure


  1. Program Flow:

    Meta-level predicates that implement convenient program flow options.

  2. Constituent Structure:

    Predicates that are used to state universally and existentially-quantified conditions over constituent structure.

  3. Miscellaneous:

    Predicates that iterate over lists and feature sets.

  4. Parser Operations:

    Declaring parser operations.


Contents

Configurations:
in_all_configurations
smallest_configuration
collect_all_configurations
collect..in_all_configurations
exists_some_configuration
cases (General Composition)
parser_operation
General:
parameterized_by
copy_of
top


Configurations

%% Basic form:
%%
%% _Operation Name_ 
%%     in_all_configurations _Config_ where
%%        _Pre-conditions_ then _Actions_.
%%----------------------------------------------------------------------------
%% Multiple conditions variant:
%%
%% _Operation Name_ 
%%     in_all_configurations _Config_ where
%%        _Pre-conditions_ then _Actions_ else
%%        _Pre-conditions_ then _Actions_ ...
%%----------------------------------------------------------------------------
%% Extra argument variant of the above two forms:
%%
%% _Operation Name_ on _X_
%%     in_all_configurations _Config_ where ...
%%
%% NB. 	1. _X_ is a single variable.
%% 	2. This last variant cannot be interleaved.
%% 	3. (Translates into the same tree-walk but with with an extra
%%	    parameter _X_.)


%% Smallest configuration variant of the basic and multiple conditions forms:
%%
%% _Operation Name_ 
%%     in_all_configurations _Config_ where
%%        _Pre-conditions_ then (must_satisfy) ..._Configuration_(..n+1..)...
%%
%% _Configuration_(..n..) smallest_configuration CF
%%	with_components
%%		C1 (given_by p(...CF..C1..)),
%%		...
%%		Cn (given_by p(...CF..Cn..)).
%%
%% NB.	1. must_satisfy form forces all smallest configurations to be
%%	   completed for each configuration satisfying _Pre-conditions_.
%%	2. Can handle top-level disjunction in _Actions_.
%%	3. Exactly one action using the smallest_configuration form is allowed.
%% Basic form:
%%
%% _Domain_(_X_) smallest_configuration _Config_
%%	with_components
%%		_X_,
%%		_Component_ given_by _Goal_,
%%		...
%%		_Component_ given_by _Goal_.
%%
%% Defines the smallest configuration _Config_ for a constituent _X_ that
%% includes various components, _X_ itself and any other elements listed. 
%%
%% Usage: _Domain_(_X_,_Config_)
%%
%% _Config_ is the _Domain_ for _X_.
%%
%% NB.	Each _Component_ should be a variable. The definition of each
%%	_Component_ is determined by the corresponding _Goal_ 
%%	(which should take _Config_ as one of its arguments).
%%----------------------------------------------------------------------------
%% Conditional variant:
%%
%% _Domain_(_X_) smallest_configuration _Config_ st _Goals_
%%	with_components
%%		_X_,
%%		_Component_ given_by _Goal_,
%%		...
%%		_Component_ given_by _Goal_.
%%
%% Defines the smallest configuration _Config_ containing the various elements
%% mentioned such that _Goals_ also hold.
%%----------------------------------------------------------------------------
%% Exclusional variant:
%%
%% _Domain_(_X_) smallest_configuration _Config_ under _Goals_
%%	with_components
%%		_X_,
%%		_Component_ given_by _Goal_,
%%		...
%%		_Component_ given_by _Goal_.
%%
%% Defines the smallest configuration _Config_ containing the various elements
%% mentioned for which _Goals_ does not hold true in any sub-phrase of 
%% _Config_.


%% Basic form:
%%
%% _Operation Name_ 
%%	collect_all_configurations _Config_ where
%%        _Pre-conditions_ (then _Actions_).
%%
%% NB.	Call operation using _Operation Name_(_CF_,List)
%%----------------------------------------------------------------------------
%% Multiple conditions variant:
%%
%% _Operation Name_ 
%%	collect_all_configurations _Config_ where
%%        _Pre-conditions_ then _Actions_
%%	  else ...


%% Basic form:
%% 
%% _Operation Name_ collect _X_
%%     in_all_configurations _Config_ where
%%        _Pre-conditions_ (then _Actions_).
%%
%% Call operation using _Operation Name_(_CF_,List)
%%----------------------------------------------------------------------------
%% Multiple conditions variant:
%% 
%% _Operation Name_ collect _X_
%%     in_all_configurations _Config_ where
%%        _Pre-conditions_ then _Actions_
%%	  else ...

%% Basic form:
%%
%% _Operation Name_ 
%% 	exists_some_configuration _Config_ where
%%        _Pre-conditions_ (then _Actions_).
%%----------------------------------------------------------------------------
%% Multiple conditions variant:
%%
%% _Operation Name_ 
%% 	exists_some_configuration _Config_ where
%%        _Pre-conditions_ (then _Actions_) else
%%        _Pre-conditions_ (then _Actions_) ...
%%----------------------------------------------------------------------------
%% Extra argument variant of the above two forms:
%%
%% _Operation Name_(_X_) 
%% 	exists_some_configuration _Config_ where ...
%%
%% NB.	then-part is optional.


%%%	Operation produces [..Ki..]
%%%		cases CF where
%%%			% Recursive case 
%%%			CF with_constituents X and Y st
%%%				X produces [..Xi..],
%%%				Y produces [..Yi..],
%%%				CF produces [..CFi..]
%%%				then p(..Xi..,..Yi..,..CFi..)
%%%				finally q(..CFi..,..Ki..)
%%%			else % Base cases...


%% Basic form:
%%
%% _Operation_ parser_operation _Print Name_
%%	with_components
%%		_Component_ given_by (choices) _List_,
%%		...
%%		_Component_ (given_by _List_).
%%
%% Defines a parser operation _Operation_ (with pretty print name 
%% _Print Name_) including various components such as:
%%
%%	_Component_	_List_			Status
%%	appliesAt	[ss,lf]			obligatory
%%	dep		[.._Operation_..]	obligatory
%%	controlType	[filter,generator,	obligatory
%%			 assigner]
%%	sCueFilter				optional
%%	multipleDeps	[.._Operation_..]	optional
%%	skippable				optional
%%
%% Usage: _Domain_(_X_,_Config_)
%%
%% _Config_ is the _Domain_ for _X_.
%%
%% NB.	Each _Component_ should be a variable. The definition of each
%%	_Component_ is determined by the corresponding _Goal_ 
%%	(which should take _Config_ as one of its arguments).


General

%% _Parser Operation_ parameterized_by _Goal_ 
%%
%% pre-conditions _Parser Operation_ to only be executed when _Goal_ holds


%% Basic form:
%%
%% _Goal_ copy_of _Goal'_ with_clause _Clause_ prepended.
%% _Goal_ copy_of _Goal'_ with_clause _Clause_ appended.
%%
%% NB. used principally for augmenting existing definitions


%% _Goal_ top _Goal'_ (st _Goals_)
%% _Goal_ top _Goal'_ (st _Goals_) if _PreCond_
%%
%% "top" definitions are used to connect _Goal_ with compositional 
%% definitions of predicates with the same name but larger arity.

Program Flow Miscellaneous