source ::= #continue #ignore(C++) [ "unechaine" #continue =>{ local sChaine; readString(sChaine); traceLine("Chaine lue = "+sChaine);} | statement #continue | balise_nom #continue =>{traceLine("j'ai reconnu balise_nom");} | balise_prenom #continue =>{traceLine("j'ai reconnu balise_prenom");} | balise_age #continue =>{traceLine("j'ai reconnu balise_age");} | valeur_champ #continue =>{traceLine("j'ai reconnu la valeur du champ");} | balise_texte_ouverte #continue | balise_texte_fermee #continue | ';' #continue ]* #empty ; nombre ::= ['0'..'9']+:sNombre => { @ Un nombre = @sNombre@ @ }; mot ::= #!ignore ['a'..'z'|'A'..'Z']+:sMot => { @ Un mot = @sMot@ @ }; statement ::= #readIdentifier:sID [ keyword ] ; keyword<"tantque"> ::= #continue => { traceLine("J'ai reconnu tantque"); @J'ai reconnu tantque@ }; balise_texte_ouverte ::= "" => { @ Balise ouvrante @ }; balise_texte_fermee ::= "" => { @ Balise fermante @ }; balise_nom ::= "AMERANA_NOM=" =>{ @GLPI_NOM=@}; balise_prenom ::= "AMERANA_PRENOM=" =>{ @ GLPI_PRENOM=@ }; balise_age ::= "AMERANA_AGE=" =>{ @ GLPI_AGE=@ }; valeur_champ ::= ['"'|'a'..'z'|'A'..'Z'|'0'..'9']+:sValeur =>{ @@sValeur@;@};