home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 17
/
CD_ASCQ_17_101194.iso
/
dos
/
prg
/
syntex
/
grammtp3.grm
next >
Wrap
Text File
|
1994-02-18
|
4KB
|
95 lines
@ SYNTEX v2.0 @
@ Exemple de grammaire style TPascal version 3 @
';'= PointVirgule.
','= Virgule.
'.'= Point.
':'= DeuxPoints.
'..'= PointPoint.
'^'= Circonflexe.
'+'= Plus.
'-'= Moins.
'*'= Fois.
'/'= Divise.
'='= Egal.
'<>'= Différent.
'<'= Inférieur.
'<='= InférieurOuEgal.
'>'= Supérieur.
'>='= SupérieurOuEgal.
'['= CrochetOuvrant.
']'= CrochetFermant.
'('= ParenthèseOuvrante.
')'= ParenthèseFermante.
':='= Devient.
DEBUT= PROGRAM NOM ';' bloc '.'.
bloc=déclarations instruction_composée.
déclarations= définition_de_constantes définition_de_types déclaration_de_variables
déclaration_de_procédures_ou_de_fonctions.
instruction_composée= BEGIN instruction {';' instruction} END.
instruction= {instruction_simple | instruction_structurée}.
instruction_simple= affectation | appel_de_procédure.
affectation= accès_variable ':=' expression | NOM ':=' expression.
accès_variable= NOM | variable_composée | '^' variable_pointée.
variable_composée= accès_tableau | accès_record.
accès_tableau= accès_variable '[' expression { ',' expression} ']'.
accès_record= NOM '.' NOM | NOM.
variable_pointée= accès_variable.
appel_de_procédure= NOM ['('paramètre_actuel {',' paramètre_actuel} ')'].
paramètre_actuel= accès_variable | expression.
instruction_structurée= instruction_composée | test | répétition | with.
suite_instruction= instruction {';' instruction}.
test= if | case.
if= IF expression THEN instruction [ELSE instruction].
case= CASE expression OF element_case {';' element_case}
[ELSE suite_instruction] END.
element_case= NOM ':' instruction.
répétition= while | repeat | for.
while= WHILE expression DO instruction.
repeat= REPEAT suite_instruction UNTIL expression.
for= FOR expression to_down_to expression DO instruction.
to_down_to= TO | DOWNTO.
with= WITH accès_variable {',' accès_variable } DO instruction.
expression= expression_simple [comparaison expression_simple].
expression_simple= ['+'|'-'] terme {'+' terme | '-' terme | OR terme}.
terme= facteur {'*' facteur | '/' facteur | DIV facteur | MOD facteur | AND facteur}.
facteur= accès_variable | NOT facteur '(' expression ')' | facteur_ensemble.
facteur_ensemble= '[' [ element_ensemble {',' element_ensemble}] ']'.
element_ensemble= expression ['..' expression].
comparaison= '=' | '<>' | '<' | '>'.
définition_de_constantes= [CONST definition_constante ';' {definition_constante ';'} ].
definition_constante= NOM '=' CONSTANTE.
définition_de_types= [TYPE définition_type ';' {définition_type ';'}].
définition_type= TYPE '=' type.
type= NOM | construction_de_type.
construction_de_type= NOM | énuméré_intervalle | type_structuré | type_pointeur.
énuméré_intervalle= type_énuméré | type_intervalle.
type_énuméré= '(' liste_de_noms ')'.
type_intervalle= CONSTANTE '..' CONSTANTE.
type_structuré= type_tableau | type_enregistrement | type_ensemble | type_fichier.
type_tableau= ARRAY '[' type_intervalle {',' type_intervalle }']' OF type.
type_enregistrement= RECORD liste_de_zones END.
liste_de_zones= zones_communes [';' zones_variantes].
zones_communes= zone {';' zone}.
zone= liste_de_noms '=' type.
liste_de_noms= NOM {',' NOM}.
zones_variantes= NOM.
type_ensemble= SET OF NOM.
type_fichier= FILE OF type.
type_pointeur= '^' NOM.
déclaration_de_variables= [VAR déclaration_variable ';' {déclaration_variable ';'}].
déclaration_variable= liste_de_noms ':' type.
déclaration_de_procédures_ou_de_fonctions= {déclaration_de_procédure ';'}.
déclaration_de_procédure= PROCEDURE NOM [liste_de_paramètres_formels] bloc.
liste_de_paramètres_formels= '(' paramètres_formels {';' paramètres_formels} ')'.
paramètres_formels= [VAR] liste_de_noms ':' NOM.