POMDP solve version 4.0 written by A. R. Cassandra

This file gives the formal syntax for the POMDP file format.

<pomdp_file> ::= <preamble> <param_list> <eof>;

<preamble> ::=  <preamble> <param_type>
	   | NIL ;

<param-type> ::=  <discount_param> 
	     |   <value_param> 
	     |   <state_param> 
	     |   <actions> 
	     |   <obs_param>;

<discount_param> ::= DISCOUNT COLON <number>;

<value_param>  ::=  VALUES COLON <value_tail>;

<value_tail> ::= REWARD
	     |   COST;

<state_param> ::= STATES COLON <state_tail>;

<state_tail> ::= INTEGER
	     | <ident_list>;

<action_param>  ::= ACTIONS COLON <action_tail>;

<action_tail> ::= INTEGER
	     | <ident_list>;

<obs_param>  ::= OBSERVATIONS COLON <obs_param_tail>;

<obs_param_tail> ::= INTEGER
	     	 | <ident_list>;

<param_list> ::= <param_list> <param_spec>;

<param_spec> ::= <trans_prob_spec>
	     | <obs_prob_spec>
	     | <reward_spec>;

<trans_prob_spec> ::= T COLON <trans_spec_tail>;

<trans_spec_tail> ::= <action> COLON <state> COLON <state> <prob>
	     	  | <action> COLON <state> <u-matrix>
	     	  | <action> <ui-matrix>;

<obs_prob_spec> ::= O COLON <obs_spec_tail>;

<obs_spec_tail> ::= <action> COLON <state> COLON <obs> <prob>
	     	| <action> COLON <state> COLON <u-matrix>
	     	| <action> <u-matrix>;

<reward_spec> ::= R COLON <reward_spec_tail>;

<reward_spec_tail> ::= <action> COLON <state> COLON <state> COLON <obs> <number>
	     	   | <action> COLON <state> COLON <state> <num-matrix>
	     	   |  <action> COLON <state> <num-matrix>;


<ui_matrix> ::= UNIFORM 
	    	| IDENTITY 
	    	| <prob_matrix>;

<u_matrix> 	::= UNIFORM 
	   	| <prob_matrix>;

<prob_matrix> 	::= <prob_matrix> <prob>
                | <prob>;

<num_matrix> 	::= <num_matrix> <number>
                | <number>;

<state> ::=  INTEGER
	|   STRING
	|   ASTERICK;


<action> ::=  INTEGER
	 |    STRING
	 |    ASTERICK;

<obs> ::=  INTEGER
      |  STRING
      |  ASTERICK;

<ident_list> ::= <ident_list> STRING
	     | STRING;

<prob> ::= FLOAT
	|  INTEGER;

<number> ::= <optional_sign> FLOAT
	 |   <optional_sign> INTEGER;

optional_sign	::=  +
		|    - ;
