GRAMMARS


G1.GRM


`S'->#`A'#
`A'->`B'`C'
`B'->a
`B'->`B'a
`C'->b




G2.GRM


`T'->#`S'#
`S'->`U'`V'
`U'->a`U'b
`U'->a b
`V'->c`V'
`V'->c



G3.GRM


`T'->#`S'#
`S'->`U'`V'
`U'->a`U'b
`U'->a b
`V'->`V'c
`V'->c


G4.GRM


`T'->#`S'#
`S'->a`A'
`S'->b`B'
`A'->0`A'1
`A'->0 1
`B'->0`B'1 1
`B'->0 1 1


G41.GRM


`T'->#`S'#
`S'->a`A'
`S'->b`B'
`A'->`C'`A'1
`A'->0 1
`B'->`D'`B'1 1
`B'->0 1 1
`C'->0
`D'->0


G5.GRM


`T'->#`S'#
`S'->`U'`V'
`U'->a b
`V'->c`V'
`V'->c


G6.GRM


`T'->#`S'#
`S'->a`A'
`S'->b`B'
`A'->0`A'1
`A'->0 1
`B'->`C'1
`B'->`D'1
`C'->0`B'1
`D'->0 1


G7.GRM


`T'->#`S'#
`S'->a`A'
`S'->b`B'
`A'->0`A'1
`A'->`C'1
`B'->`C'1
`C'->1


G8.GRM


`T'->#`S'#
`S'->a`A'a
`S'->b`A'b
`S'->a`B'b
`S'->b`B'a
`A'->1
`B'->1


G9.GRM


`T'->#`S'#
`S'->a`A'a
`S'->b`A'b
`S'->a`B'b
`S'->b`B'a
`A'->1
`B'->1
`A'->`A'c
`B'->d`B'


G10.GRM


`T'->#`S'#
`S'->a`A'a
`S'->b`A'b
`S'->a`B'b
`S'->b`B'a
`A'->1
`B'->1
`A'->`B'c


G11.GRM


`T'->#`S'#
`S'->`B'`C'
`A'->`B'`D'
`A'->`A'a
`A'->a c
`B'->a
`C'->`A'b
`D'->a


G12.GRM


`T'->#`S'#
`S'->a`A'a
`S'->b`A'b
`S'->a`B'b
`S'->b`B'a
`A'->1
`B'->1
`A'->c`B'


G13.GRM


`T'->#`S'#
`S'->a`A'a
`S'->b`A'b
`S'->a`B'b
`S'->b`B'a
`A'->1
`B'->1
`A'->`B'c
`B'->d`A'


G15.GRM


`S'->#`N'#
`N'->`A'
`N'->`A'`N'
`A'->x
`A'->a
`A'->b
`A'->c
`A'->d
`A'->e
`A'->f


G17.GRM


`S'-># a `A' a #
`S'-># b `A' b #
`S'-># a `B' a #
`S'-># b `B' a #
`A'->1
`B'->1


G26.GRM


`T'-># `S' #
`S'->a `A' a 
`S'->b `A' b 
`S'->a `B' b 
`S'->b `B' a 
`A'->1
`B'->1
`A'->c `B' c


GA33.GRM


`X1'-># a `X2' #
`X2'->a`X2'`X3'
`X2'->b
`X3'->b
`X1'-># a`X4' #
`X4'->a`X4'`X5'
`X4'->c
`X5'->c


TRI.GRM


`programm'	->	`programm12'#
`programm12'	->	#`operaatorid'
`operaatorid'	->	`operaator'
		->	`operaatorid13';`operaatorid'
`operaatorid13'	->	`operaator'		
`operaator'	->	`label':`operaator'
		->	`omistamine'
		->	`iflause'
		->	`suunamine'
		->	`lugemine'
		->	`kirjutamine'
`label'		->	#i#
`omistamine'	->	`muutuja':=`omistamine1'
		->	`muutuja':=`loogilav'
`omistamine1'	->	`aritmav'
`muutuja'	->	#i#		
`iflause'	->	`tingimus'`operaator'
`suunamine'	->	GOTO`label'
`aritmav'	->	`yksliige'
		->	`aritmav'+`aritmav2'
		->	`aritmav'-`aritmav3'
`aritmav2'	->	`yksliige'		
`aritmav3'	->	`yksliige'		
`yksliige'	->	`tegur'
		->	`yksliige'*`yksliige4'
		->	`yksliige'/`tegur'
`yksliige4'	->	`tegur'		
`tegur'		->	#i#
		->	#c#
		->	(`tegur5'
`tegur5'	->	`aritmav')		
`loogilav'	->	`aritmav'<`loogilav6'
		->	`aritmav'>`loogilav7'
		->	`aritmav'<=`loogilav8'
		->	`aritmav'>=`loogilav9'
		->	`aritmav'/=`loogilav10'
		->	`aritmav'=`loogilav11'
`loogilav6'	->	`aritmav'		
`loogilav7'	->	`aritmav'
`loogilav8'	->	`aritmav'
`loogilav9'	->	`aritmav'
`loogilav10'	->	`aritmav'
`loogilav11'	->	`aritmav'
`tingimus'	->	IF`loogilav'THEN
`lugemine'	->	READ #i#
`kirjutamine'	->	WRITE #i#


TRINEW.GRM


`programm'              ->  `programm12'#
`programm12'            -> #`operaatorid'
`operaatorid'           ->  `operaator'
                        ->  `operaatorid13';`operaatorid'
`operaatorid13'         ->  `operaator'   
`operaator'             ->  `label':`operaator'
                        ->  `omistamine'
                        ->  `iflause'
                        ->  `suunamine'
                        ->  `lugemine'
                        ->  `kirjutamine'
                        ->  `incdec'
`incdec'                ->  ++ #i#
                        ->  #i# ++
                        ->  -- #i#
                        ->  #i# --
`label'                 ->  #i#
`omistamine'            ->  `muutuja':=`omistamine1'
                        ->  `muutuja':=`loogilav'
`omistamine1'           ->  `aritmav'
`muutuja'               ->  #i#   
`iflause'               ->  `tingimus'`operaator'
`suunamine'             ->  GOTO`label'
`aritmav'               ->  `yksliige'
                        ->  `aritmav'+`aritmav2'
                        ->  `aritmav'-`aritmav3'
`aritmav2'              ->  `yksliige'    
`aritmav3'              ->  `yksliige'    
`yksliige'              ->  `tegur'
                        ->  `yksliige'*`yksliige4'
                        ->  `yksliige'/`tegur'
`yksliige4'             ->  `tegur'
`tegur'                 ->  #i#
                        ->  #c#
                        ->  `incdec'
                        ->  (`tegur5'
`tegur5'                ->  `aritmav')    
`loogilav'              ->  `aritmav'<`loogilav6'
                        ->  `aritmav'>`loogilav7'
                        ->  `aritmav'<=`loogilav8'
                        ->  `aritmav'>=`loogilav9'
                        ->  `aritmav'/=`loogilav10'
                        ->  `aritmav'=`loogilav11'
`loogilav6'             ->  `aritmav'   
`loogilav7'             ->  `aritmav'
`loogilav8'             ->  `aritmav'
`loogilav9'             ->  `aritmav'
`loogilav10'            ->  `aritmav'
`loogilav11'            ->  `aritmav'
`tingimus'              ->  IF`loogilav'THEN
`lugemine'              ->  READ #i#
`kirjutamine'           ->  WRITE #i#
                        ->  WRITE `incdec'


FORM8.GRM


`program'	 -> #`family'#
`family'         -> `metaformula'
`metaformula'    -> `input' `bigformula' 
                 -> `bigformula' 
`input'          -> INPUT ( graph `graphnames' )
                 -> INPUT ( var `varnames' )
                 -> INPUT ( var `varnames' ; graph `graphnames' )
`graphnames'     -> `graphnames1'
`graphnames1'    -> `graphnames1' `grkoma' `graphname' 
                 -> `graphname' 
`graphname'      -> #i#
`varnames'       -> `varnames1'
`varnames1'      -> `varnames1' `varkoma' `variable' 
                 -> `variable' 
`variable'       -> #i#
`bigformula'     -> \bigvee_{ `limits' `lbra' `bigformula' 
                 -> \bigwedge_{ `limits' `lbra' `bigformula' 
                 -> \bigoplus_{ `limits' `lbra' `bigformula' 
                 -> odd `prefpar' `bigformula1' :`limits' )
                 -> even `prefpar' `bigformula1' :`limits' )
                 -> exactlyone `prefpar' `bigformula1' :`limits' )
                 -> atmostone `prefpar' `bigformula1' :`limits' )
                 -> atleastone `prefpar' `bigformula1' :`limits' )
                 -> none `prefpar' `bigformula1' :`limits' )
                 -> eq `prefpar' `bigformula1' :`limits' )
                 -> `atmost' `prefpar' `bigformula1' :`limits' )
                 -> `atleast' `prefpar' `bigformula1' :`limits' )
                 -> `level' `prefpar' `bigformula1' :`limits' )
                 -> `formula'
`bigformula1'    -> `bigformula'                 
`atmost'         -> atmost_{ `rate' `rbra'
`atleast'        -> atleast_{ `rate' `rbra'
`level'          -> level_{ `rate' `rbra'
`rate'           -> `expression'  
`limits'         -> `limit' ;`constraints1' 
                 -> `limit' 
`limit'          -> `metavariables' \in`set' 
                 -> `metavariables' \in V(`graphname1' )
                 -> `metavariables' \in E(`graphname1' )
                 -> `metavariable' \leftarrow `arc' \in E(`graphname1' )
                 -> `arc' \in E(`graphname1' )
                 -> `limexpression' `lessrel' `metavariables' `lessrel' `expression' 
`limexpression'  -> `expression'
`graphname1'     -> `graphname'                  
`arc'            -> `graphbra' `node' `nodekoma' `node' \}
`metavariables'  -> `metavariables1'
`metavariables1' -> `metavariables1' `metakoma' `metavariable' 
                 -> `metavariable' 
`metavariable'  -> #i#
`set'            -> B^{ `length' } 
`length'         -> `expression'
`node'           -> `metavariable' 
`lessrel'        -> <
                 -> \leq
                 -> \prec
                 -> \prec^+
                 -> \prec^*
`constraints1'   -> `constraints'
`constraints'    -> `constraints' `constrkoma' `constraint' 
                 -> `constraint' 
`constraint'     -> `conexpression' `relation' `expression' 
`conexpression'  -> `expression'
`relation'       -> <
                 -> \leq
                 -> \prec
                 -> \prec^+
                 -> \prec^*
                 -> =
                 -> \ne
                 -> ' 
                 -> \geq
`expression'     -> `expression1'
`expression1'    -> `expression1' +`term' 
                 -> `expression1' -`term' 
                 -> `term' 
`term'           -> `factor' *`term' 
                 -> `factor' /`term' 
                 -> `factor' 
`factor'         -> `factor1' } 
                 -> `primary' 
`factor1'        -> `factor' ^{ `primary' 
`primary'        -> #c#
                 -> `metavariable' 
                 -> |V( `graphname' )|
                 -> |E( `graphname' )|
                 -> | `metavariable' |
                 -> min `mmbra' `pexpression' `maxminkoma' `expression' \}
                 -> max `mmbra' `pexpression' `maxminkoma' `expression' \}
                 -> `aritmpar' `pexpression' )
`pexpression'    -> `expression'                 
`formula'        -> `leftpart' \sim `formula' 
                 -> `leftpart' \oplus `formula' 
                 -> `leftpart' \to `formula' 
                 -> `leftpart' 
`leftpart'       -> `leftpart' \vee `clause' 
                 -> `clause' 
`clause'         -> `logterm' \& `clause' 
                 -> `logterm'        
`logterm'        -> \neg `literal' 
                 -> `literal' 
`literal'        -> `logvar' 
                 -> `logvar' _{ `indexes' }
                 -> `prefixformula' 
                 -> `logicpar' `bigformula1' )
`logvar'         -> #i#
`indexes'        -> `indexes1'
`indexes1'       -> `index' `indexkoma' `indexes1' 
                 -> `index' 
`index'          -> `expression' 
`prefixformula'  -> odd `prefpar' `formlist' )
                 -> even `prefpar' `formlist' )
                 ->  exactlyone `prefpar' `formlist' )
                 ->  atmostone `prefpar' `formlist' )
                 ->  atleastone `prefpar' `formlist' )
                 ->  none `prefpar' `formlist' )
                 ->  eq `prefpar' `formlist' )
                 -> `atmost' `prefpar' `formlist' )
                 -> `atleast' `prefpar' `formlist' )
                 -> `level' `prefpar' `formlist' )
`formlist'       -> `formlist1'
`formlist1'      -> `formlist1' `formkoma'  `bigformula' 
                 -> `bigformula' 
`grkoma'         -> ,
`varkoma'        -> ,
`metakoma'       -> ,
`nodekoma'       -> ,
`constrkoma'     -> ,
`maxminkoma'     -> ,
`indexkoma'      -> ,
`formkoma'       -> ,
`graphbra'       -> \{
`mmbra'          -> \{
`logicpar'       -> (
`aritmpar'       -> (
`prefpar'        -> (
`rbra'           -> }
`lbra'           -> }