Skip to content
Snippets Groups Projects
Commit 151bc9eb authored by BAUQUIN Niels's avatar BAUQUIN Niels
Browse files

dgrdfhg

parent 314e8ec1
No related branches found
No related tags found
No related merge requests found
......@@ -11,37 +11,37 @@ Tokens
espaces = (' ' | 13 | 10)+;
commentaire= '#' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
nombre = chiffre+;
ou = '|';
et = '&';
add = '+';
sub = '-';
mult = '*';
div = '/';
egal = '=';
inf = '<';
infegal = '<=';
sup = '>';
supegal = '>=';
plus = '+';
moins = '-';
mul = '*';
div = '/';
non = '!';
gpar = '(';
dpar = ')';
or = '|';
and = '&';
not = '!';
vrai = 'vrai';
faux = 'faux';
tantque = 'tantque';
faire = 'faire';
pvirg = ';';
si = 'si';
alors = 'alors';
sinon = 'sinon';
retour = 'retour';
gpar = '(';
dpar = ')';
gacc = '{';
dacc = '}';
epsilon = ;
id = alpha[alpha + chiffre]+;
gcro = '[';
dcro = ']';
pvirg = ';';
virg = ',';
si = 'si';
alors = 'alors';
sinon = 'sinon';
tantque = 'tantque';
faire = 'faire';
retour = 'retour';
ecrire = 'ecrire';
lire = 'lire';
int = 'int';
boolean = 'boolean';
nombre = chiffre+;
id = alpha alphanum*;
Ignored Tokens
......@@ -49,21 +49,25 @@ espaces, commentaire;
Productions
exp = {ou} exp ou exp1 | {exp1} exp1;
exp1 = {et} exp1 et exp2 | {exp2} exp2;
epsilon = ;
exp = {or} exp or exp1 | {exp1} exp1;
exp1 = {and} exp1 and exp2 | {exp2} exp2;
exp2 = {egal} exp2 egal exp3 | {inf} exp2 inf exp3 | {exp3} exp3;
exp3 = {plus} exp3 plus exp4 | {moins} exp3 moins exp4 | {exp4} exp4;
exp4 = {mul} exp4 mul exp5 | {div} exp4 div exp5 | {exp5} exp5;
exp5 = {non} non exp5 | {exp6} exp6;
exp6 = {parenthesis} gpar exp dpar | {nombre} nombre | {vrai} vrai | {faux} faux | {lire} lire() ;
exp3 = {add} exp3 add exp4 | {sub} exp3 sub exp4 | {exp4} exp4;
exp4 = {mult} exp4 mult exp5 | {div} exp4 div exp5 | {exp5} exp5;
exp5 = {not} not exp5 | {exp6} exp6;
exp6 = {parenthesis} gpar exp dpar | {nombre} nombre | {var} var | {vrai} vrai | {faux} faux | {ecrire} ecrire gpar dpar;
ins = {affectation} var egal exp |
var = {id} id | {crochets} id gcro exp dcro;
ins = {affectation} var egal exp pvirg|
{fairetantque} tantque exp faire bloc |
{fonction} id gpar lexp dpar |
{fonction} id gpar lexp dpar pvirg|
{sisinon} si exp alors [alors1]: bloc sinon [sinon1]: bloc |
{sialors} si exp alors bloc |
{retour} retour exp pvirg |
{ecrire} ecrire(e);
{ecrire} ecrire gpar exp dpar pvirg;
bloc = {accolades} gacc lins dacc;
lins = {lins} ins lins | {epsilon} epsilon;
......@@ -71,19 +75,18 @@ lins = {lins} ins lins | {epsilon} epsilon;
lexp = {lexp2} lexp2 | {epsilon} epsilon;
lexp2 = {virgule} exp virg lexp2 | {exp} exp;
var = {id} id | {crochets} id gcro exp dcro;
type = {bool} bool | {entier} entier;
type = {boolean} boolean | {int} int;
typeopt = {type} type | {epsilon} epsilon;
decvar = {var} type id | {tableau} type id gcro nombre dcro;
decfonc = {fonction} type id gpar [params]: ldecvar rpar [locals]: ldecvar bloc;
decfonc = {fonction} type id gpar [params]: ldecvar dpar [locals]: ldecvar bloc;
ldecvar = {listedecvar} ldecvar2 | {epsilon} epsilon;
ldecvar2 = {listedecvar2} decvar virg ldecvar2 | decvar;
ldecvar2 = {listedecvar2} decvar virg ldecvar2 | {decvar} decvar;
ldecfonc = {listedecfonc} decfonc ldecfonc | {epsilon} epsilon;
prog = ldecvar ldecfonc;
\ No newline at end of file
prog = {prog} ldecvar ldecfonc;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment