nom RelGram; |
|
|
|
Axiome |
= BlocDeCommandes.{;} + Autre; |
|
|
Autre |
= Commentaire + Aide.MotAide; |
|
|
Aide |
= {help} + {?} + {aide}; |
MotAide |
= ToutCaractere; |
|
|
BlocDeCommandes |
= Commande.Fin_BlocC; |
Fin_BlocC |
= {:}.BlocDeCommandes + Commentaire + {}; |
|
|
Commande |
= Affectation + Expression + ExprBool + AppelFonct + DeclMacro + Preference; |
|
|
Commentaire |
= {//}.ToutCaractere; |
ToutCaractere |
= [#32..#255]~*; |
ToutCarSaufpv |
= [#32..#58,#60..#255]~*; |
|
|
Affectation |
= RelIdent.{=}.Expression; |
|
|
ExprBool |
= Egalite + Inclusion + ExprBoolRelbin; |
|
|
Egalite |
= Expression.{==}.Expression; |
Inclusion |
= Expression.{>}.Expression; |
ExprBoolRelbin |
= EstFonction + EstForetO; |
EstFonction |
= {fonction}.Parenthesage; |
EstForetO |
= {foreto}.Parenthesage; |
|
|
|
|
RelExtension |
= [{]~1 .SuiteDeCouples. [}]~1 + [{]~1 . [}]~1; |
|
|
SuiteDeCouples |
= Couple.Fin_SDeCouple; |
Fin_SDeCouple |
= {,}.SuiteDeCouples + {}; |
|
|
SuiteRelIdents |
= RelIdent.Fin_SRelIdents; |
Fin_SRelIdents |
= {,}.SuiteRelIdents + {}; |
|
|
SuiteDeNomsDeMacro |
= NomDeMacro.Fin_SDNMacro; |
Fin_SDNMacro |
= {,}.SuiteDeNomsDeMacro + {}; |
|
|
Couple |
= {(}.Nombre.{,}.Nombre.{)}; |
Nombre |
= [0..9]~1 [0..9]~*; |
|
|
RelIdent |
= [A..Z,_]~1 [A..Z,a..z,_,0..9]~*; |
|
|
AppelFonct |
= Declarer + Dessiner + Lister + Lire + Limiter + Quitter + Liberer + Nouveau; |
Declarer |
= {decl}.RelIdent + {make}.RelIdent; |
Dessiner |
= {d}.Expression + {dessiner}.Expression + {draw}.Expression; |
Lister |
= {l} + {lister} + {list}; |
Limiter |
= {lim}.suiteLim; |
suiteLim |
= Intervalle + AfficherLim; |
AfficherLim |
= {}; |
Intervalle |
= {[}.Nombre.{,}.Nombre.{]}; |
Quitter |
= {quitter} + {quit} + {exit}; |
Liberer |
= {liberer}.SuiteLiberer; |
SuiteLiberer |
= SuiteRelIdents + SuiteDeNomsDeMacro; |
Nouveau |
= {nouveau} + {fresh}; |
Lire |
= {lire}.NomDeFichier; |
NomDeFichier |
= [A..Z,a..z,_,0..9]~1 [A..Z,a..z,_,0..9,.]~*; |
|
|
DeclMacro |
= {macro}.NomDeMacro.{=}.ChaineMacro; |
NomDeMacro |
= [a..z,_]~1 [A..Z,a..z,_,0..9]~*; |
ChaineMacro |
= ToutCarSaufpv; |
|
|
Expression |
= union_; |
|
|
union_ |
= difference.finUnion; |
finUnion |
= Union + {}; |
Union |
= {+}.union_; |
|
|
difference |
= intersection.finDifference; |
finDifference |
= Difference + {}; |
Difference |
= {-}.difference; |
|
|
intersection |
= composee.finIntersection; |
finIntersection |
= Intersection + {}; |
Intersection |
= {/}.intersection; |
|
|
composee |
= clotureTrans.finComposee; |
finComposee |
= Composee + {}; |
Composee |
= {*}.composee; |
|
|
clotureTrans |
= generateur.finClotureTrans; |
finClotureTrans |
= ClotureTrans + {}; |
ClotureTrans |
= {++}; |
|
|
generateur |
= inverse.finGenerateur; |
finGenerateur |
= Generateur + {}; |
Generateur |
= {--}; |
|
|
inverse |
= Inverse + barre; |
Inverse |
= {-}.barre; |
|
|
barre |
= Barre + feuille; |
Barre |
= {!}.feuille; |
|
|
feuille |
= Parenthesage + RelIdent + RelExtension; |
Parenthesage |
= {(}.Expression.{)}; |
|
|
Preference |
= ListerLaRom + AfficherCommandeFichier + Langue; |
ListerLaRom |
= {listerrom}.{=}.VraiFaux; |
AfficherCommandeFichier |
= {affcomfichier}.{=}.VraiFaux; |
Langue |
= {langue}.{=}.finLangue; |
finLangue |
= Francais + Anglais; |
Francais |
= {FR}; |
Anglais |
= {EN}; |
VraiFaux |
= Vrai + Faux; |
Vrai |
= {VRAI}; |
Faux |
= {FAUX}; |