;
; THIS IS THE (YACC-) SYNTAX-DESCRIPTION OF THE INPUT-FORMAT FOR TC
;

file :  be1 be2 dcs ;

be1  :    '@BE1' '@INVAR' ( inputs ) '@OUT' outs '@END'  
	| '@BE1' '@INVAR' ( inputs ) '@SUB' subs '@OUT' outs '@END' 
	;

be2  :    '@BE2' '@INVAR' ( inputs ) '@OUT' outs '@END'  
	| '@BE2' '@INVAR' ( inputs ) '@SUB' subs '@OUT' outs '@END' 
	;

dcs  :  /* No don't care set */
	| '@DCS' expr
        ;

inputs :/* No input variables */
        | inputvariables
        ;

inputvariables  : input
	| inputvariables input

input:    VAR ;

subs :    sub 
	| subs sub 
	;

outs :    out 
	| outs out 
	;

sub  :    VAR  '=' expr  ;

out  :    VAR  '=' expr  ;

expr :    ( operator operands )  
	| ( NOT operand )        
	| ( operand )
	;

operands: operand  
	| operands operand  
	;

operand : ident 
	| manifest    
	| expr 
	;

ident:    VAR ;

operator: AND   
	| OR    
	| EXOR  
	;

manifest: T     
	| NIL   
	;

