commit 68895fdb2deed09ea803718125634825125259df
parent e44e4ff772406ad0afa63bc131a3e02954504880
Auteur: Loïc Daignault-Pichette <loic@asteride.net>
Date: Sat, 8 Aug 2026 11:15:45 -0400
[sty] Commenter et renommer lexalex
Diffstat:
3 fichiers modifiés, 21 insertions(+), 16 suppressions(-)
diff --git a/Makefile b/Makefile
@@ -18,7 +18,7 @@
.att.ext:
bin/extension.py "$<" | sort > "$@"
.lex.lexs:
- bin/lexalexs.sh <"$<" >"$@"
+ bin/lexalexs <"$<" >"$@"
# ------
# DÉFAUT
diff --git a/bin/lexalexs b/bin/lexalexs
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# lexalexs -- Séparer les symboles d’un fichier lex.
+#
+# À gauche du premier « + », chaque caractère est un symbole. À droite, les
+# « + » forment un symbole jusqu’au prochain « + » ou jusqu’à la fin de la
+# chaîne. Les symboles sont séparés par des espaces.
+
+awk '
+ BEGIN { FS = "+"; OFS = " " }
+ {
+ gsub(/./, "& ", $1) # Placer une espace après chaque
+ # caractère du premier champ.
+ sub(/ $/, "", $1) # Retirer l’espace finale.
+ for (i=2 ; i<=NF; i++) # Remettre le « + » à partir du
+ sub(/^/, "+", $i) # deuxième champ
+ print # Afficher tous les champs
+ print "" # Ligne vide
+ }
+'
diff --git a/bin/lexalexs.sh b/bin/lexalexs.sh
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-# lexalexs -- Séparer les symboles d’un fichier lex.
-
-awk '
- BEGIN { FS = "+" }
- {
- gsub(/./, "& ", $1)
- sub(/ $/, "", $1)
- for (i=2 ; i<=NF; i++)
- sub(/^/, "+", $i)
- print
- print ""
- }
-'