Based on C99 & Linux.
Maintainer: Sébastien HUG DE LARAUZE (GitHub)
Referent: Eric TOTEL (IMT Atlantique)
- To execute the shell, use
make run_shell
It will install the shell at the top of the directory
TIPS: You can use./shell -d
to enable debug output inside the project
-
To build the project, you can use the makefile task
shell
:$ make shell gcc ...
Will produce an executable called
shell
-
To clean the project afterward, use the task
clean
orrealclean
:$ make clean rm ...
See SPECIFICATIONS file.
See SPECIFICATIONS-TEST file.
- Lexical analysis (:heavy_check_mark:)
- Flex file: Recognize all tokens
- Bison file: Dummy logic (Accept all tokens)
- Action: Display tokens
- Syntax analysis (:heavy_check_mark:)
- Bison file: Write complete grammar
- Action: Display token reduction
- Bison file: Write complete grammar
- Semantic analysis (:heavy_check_mark:)
- Build/Calculate useful data
- Error recovery (:construction:)
Sources:
Files of interest:
> grammar.y // Parser (GNU Bison)
> syntax.flex // Scanner (Flex)
> shell.c // SHELL program (source)
> shell.h // SHELL program (header)
Documentations:
Regular expression:
Tutorials:
- SO: Check semantic value
- 1. Flexible Bison: Compiler Theory - DONE
- 2. Compilers 101: Build your own flex + bison compiler in a few easy(?) steps
- 3. Introducing Flex and Bison
- 4. Flex and Bison in C++
- X. Cours ENIB Bison/Flex
- X. Interactive Mode Bison
- 🔍 Creating C Libraries
- 🔍 C programming
- 🔍 Unix PIPE implementation
- 🔍 Multilevel Makefile
Others: