commit: bc402d8af80d9446cf0fb6c6e7cf2bfea91e9b07
parent 1946e02d443cf7c21175d78910eafc76c644a505
Author: fosslinux <fosslinux@aussies.space>
Date: Sat, 30 Jan 2021 08:15:41 +1100
Merge pull request #22 from stikonas/bash_parser
Bash parser
Diffstat:
3 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
@@ -181,14 +181,7 @@ old tooling instead.
#### Part 7: sed 4.0.7
-You are most likely aware of GNU `sed`, a line editor. Here, we had to make a
-compromise between two versions:
-
-- 1.18: fully functional `s/a/b`, but no `-i`.
-- 4.0.7: fully functional `-i`, but broken `s/a/b`.
-
-We opted for the latter, as otherwise there would be no patching of files for
-quite some time. We can delete lines from files now!
+You are most likely aware of GNU `sed`, a line editor.
#### Part 8: tar 1.12
@@ -252,16 +245,17 @@ be useful later for autotools.
of standard UNIX utilities derived from code by Caldera and Sun. Differently from
the analogous utilities from the GNU project, they can be compiled with a simple `Makefile`.
-#### Part 21: bash 2.05b
+#### Part 18: bash 2.05b
GNU `bash` is the most well known shell and the most complex piece of software
so far. However, it comes with a number of great benefits over kaem, including
proper POSIX sh support, globbing, etc.
-NOTE: Currently, there is a bison pre-generated file here, which we are working
-to remove.
+Bash ships with a bison pre-generated file here which we delete. Unfortunately,
+we have not bootstrapped bison but fortunately for us, heirloom yacc is able to
+cope here.
-#### Part 22: m4 1.4
+#### Part 19: m4 1.4
`m4` is the first piece of software we need in the autotools suite. It allows
macros to be defined and files to be generated from those macros.
diff --git a/sysa/bash-2.05b/bash-2.05b.kaem b/sysa/bash-2.05b/bash-2.05b.kaem
@@ -17,6 +17,7 @@ cp ../../mk/common.mk common.mk
touch config.h
touch include/version.h
touch include/pipesize.h
+rm y.tab.c y.tab.h
# Patch
patch -Np0 -i ../../patches/mes-libc.patch
diff --git a/sysa/bash-2.05b/mk/main.mk b/sysa/bash-2.05b/mk/main.mk
@@ -78,6 +78,9 @@ mksignames: $(MKSIGNAMES_OBJS)
signames.h: mksignames
./mksignames $@
+y.tab.c: parse.y
+ yacc -d $^
+
trap.c: signames.h
bash: libsh.a libglob.a libtilde.a $(OBJS)