first commit

This commit is contained in:
Debucquoy Anthony 2025-03-15 17:16:09 +01:00
commit 6b4a7c48c8
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
10 changed files with 154 additions and 0 deletions

9
.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
venv/
rapport.aux
rapport.fdb_latexmk
rapport.fls
rapport.log
rapport.pdf
rapport.synctex.gz
rapport.toc
Projet_compilation_anthony_debucquoy_2025.tar.xz

11
Makefile Normal file
View File

@ -0,0 +1,11 @@
.PHONY: all help archive
all: help
help:
@echo "usage: make <command>"
@echo "commands are:"
@echo " - help: see this help"
@echo " - archive: Generate the archive"
archive: rapport/rapport.pdf requirements.txt spf.lark spf.py
tar -czf Projet_compilation_anthony_debucquoy_2025.tar.xz $^

10
examples/factorielle.spf Normal file
View File

@ -0,0 +1,10 @@
entier nombre = 5;
entier factorielle;
factorielle = 1;
tant que nombre > 0 faire {
factorielle = factorielle * nombre;
nombre = nombre - 1;
}
afficher "La factorielle vaut", factorielle;

11
examples/maximum.spf Normal file
View File

@ -0,0 +1,11 @@
liste nombres = [1, 8, 3, 6];
entier maximum;
maximum = nombres[1];
pour chaque entier nombre dans nombres faire {
si nombre > maximum alors {
maximum = nombre;
}
}
afficher "Le maximum dans", nombres, "est", maximum;

14
examples/monotone.spf Normal file
View File

@ -0,0 +1,14 @@
liste nombres = [3, 3, 6, 7, 8];
booléen monotone = vrai;
pour chaque entier position dans [1:taille nombres - 1] faire {
si nombres[position] > nombres[position + 1] alors {
monotone = faux;
}
}
si monotone alors {
afficher "La liste", nombres, "est monotone";
} sinon {
afficher "La liste", nombres, "n'est pas monotone";
}

21
examples/mots.spf Normal file
View File

@ -0,0 +1,21 @@
texte phrase = "Bonjour à tout le monde";
texte mot = "";
liste mots = [];
pour chaque texte caractère dans phrase faire {
si caractère vaut " " alors {
si taille mot > 0 alors {
ajouter mot dans mots;
mot = "";
}
} sinon {
mot = mot + caractère;
}
}
# Potentiel dernier mot
si taille mot > 0 alors {
ajouter mot dans mots;
}
afficher mots;

65
rapport/rapport.tex Normal file
View File

@ -0,0 +1,65 @@
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[pdftex]{graphicx}
\usepackage{amsmath, amsfonts, amssymb, amsthm}
\usepackage{fullpage}
\title{Rapport du projet de compilation \\ Umons 2024-2025}
\author{Debucquoy Anthony}
\begin{document}
\maketitle
\newpage
\tableofcontents
\newpage
\section{Consigne}
% - Une description brève du projet;
\section{Grammaire}%
\label{sec:la grammaire}
% Une description de la grammaire implémentée et des points sensibles
% la concernant;
\section{Approche}%
\label{sec:Approche}
% Une explication de votre approche pour gérer :
% Les variables, leur déclaration, leur type et laffichage via --trace;
% Le test conditionnel de la forme si/sinon;
% La boucle tant que;
% La boucle pour chaque, incluant la gestion de la variable tempo-
% raire.
\section{Erreurs}%
\label{sec:Les erreurs}
% Une description brève des erreurs connues et des solutions envisagées;
\section{Difficultés}%
\label{sec:Difficultés}
% Une brève présentation des difficultés rencontrées et des solutions
% implémentées/envisagées;
\section{Utilisation de l'IA}%
\label{sec:Utilisation de l'IA}
% Les points éventuels pour lesquels vous avez fait appel à une IA6
% (ChatGPT, CoPilot, etc.);
\section{Répartition du travail}%
\label{sec:Répartition du travail}
% La répartition du travail au sein du groupe.
\end{document}

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
lark==1.2.2

1
spf.lark Normal file
View File

@ -0,0 +1 @@
// Contient la gramaire de spf

11
spf.py Normal file
View File

@ -0,0 +1,11 @@
# Projet de compilation Umons 2025
# TODO: utiliser argparse
# TODO: utiliser Interpreter de lark
def main():
print("Hello Wordl")
if __name__ == "__main__":
main()