				-----------
				BNF de VREL
				-----------

<programme> ::=  <vide>
		| <programme> import <chane_caractres>
		| <programme> <declaration_var>
		| <programme> <declaration_classe>
		| <programme> begin { <declaration_var_liste> 
				      <instruction_liste> } end

<dclaration_var> ::= var <variable> ;
		| var <variable> = <data> ;

<dclaration_var_liste> ::= <vide>
		| <dclaration_var_liste> <dclaration_var>

<dclaration_classe> ::= class <nom> extends <nom > {<affectation_classe_liste>}
		| class <nom> compound { <declaration_var_liste> 
					 <dfinition_classe> } 

<dfinition_classe> ::= <vide>
		| <dfinition_classe> <constructeur>

<constructeur> : constructor ( <noms> ) { <declaration_var_liste> 
					  <instruction_liste> }

<affectation_classe_liste> ::= <vide>
		| <affectation_classe_liste> <affectation>
 
<instruction_liste> ::= <vide>
		| <instruction_liste> <instruction>

<instruction> ::= <affectation>
		| while (<test>) <consquence> 
		| <instruction_if>
		| new <nom>(<dataliste>) ;
		| <variable> = new <nom> ( <dataliste> ) ;
		
<instruction_if> ::= if (<test>) <consquence> else <consquence>
		| if (<test>) <consquence>

<consquence> ::= { <instruction_liste> }

<affectation> ::= <variable> = <data> ;
		| <nom>.<nom> = <data> ;

<data> ::= <variable>
		| <nombre>
		| ( <data> )
		| <opration>
		| <chane_caractres> 
		| TRUE
		| FALSE

<opration> ::= <data> + <data>
		| <data> - <data>
		| <data> * <data>
		| <data> / <data>
		| <data> mod <data>
		| abs ( <data> )
		| - <data>

<test> ::= <comparaison>
		| <test> && <test>
		| <test> !! <test>
		| not <test>
		| false 
		| true
		| <variable>

<comparaison> ::= <data> == <data>
		| <data> > <data>
		| <data> < <data>
		| <data> >= <data>
		| <data> <= <data>
		| <data> != <data>

<variable> ::= <nom>
		| <nom>[<data>]

<noms> ::= <vide>
		| <nom>
		| <noms> , <nom>

<dataliste> ::= <vide>
		| <data>
		| <dataliste> , <data>

<nombre> ::= <entier> | <rel>

<vide>

Classes primitives : wall | door | board | doc | gate | host | aoi | button | 
		     backwalls | cauldron | end | step | vrml | web | earth

Mots rservs : var | begin | end | if | else | while | new | compound | class |
	        extends | import | constructor | not | && | ! ! | = | + | - |
		* | / | mod | abs | < | > | == | != | <= | >= | ( | ) | [ | ] |
		{ | } | ; | , | . | true | false 

Lexmes : entier, rel, nom, chane_caractres, 
