Commit graph

372 commits

Author SHA1 Message Date
5f1485d1d5
pipeline: parse basic pipeline commands with two commands 2025-02-24 14:56:16 +01:00
2b8bb859d1
matchers: add matcher for a pipe 2025-02-24 14:56:16 +01:00
256a8f5f9b
pipeline: handle parsing of single-command pipelines 2025-02-24 14:56:16 +01:00
695596fde2
wordsplit flags: also set W_HASDOLLAR if dollar is found in double quotes
Fixes #15
2025-02-24 14:51:26 +01:00
Jérôme Guélen
d26d883a91 Signal: Added comments for better documentation. 2025-02-24 13:04:36 +01:00
Jérôme Guélen
776ce85255 Signal: basic signal handling. Correction. 2025-02-24 13:04:36 +01:00
Jérôme Guélen
83d88681a2 Signal: A basic version for the capture of signals. 2025-02-24 13:04:36 +01:00
Jérôme Guélen
837abc8361 sig: Starting to deal with signals 2025-02-24 13:04:36 +01:00
a50b2f6d74
simple_cmd: actually contain words 2025-02-21 12:52:27 +01:00
49d7a2b9ff
simple_cmd: initial setup of create/destroy functions 2025-02-21 12:44:17 +01:00
6f175dd792
norm: fix line too long & rename token_build to builder in all locations 2025-02-21 12:42:20 +01:00
068a7c85c0
norm: fix 42 header creation date being updated all the time
I have no idea how this happend
2025-02-21 12:41:25 +01:00
abf37eb7f5
wordsplit: set quote and dquote flags 2025-02-20 15:39:03 +01:00
ac8475c71d
wordsplit: implemet rule for variable substitution detection (rule 5) 2025-02-20 15:00:48 +01:00
e10ed04169
matcher: is_quote 2025-02-20 15:00:48 +01:00
591518e9bc
rule utils: operator combo 2025-02-20 15:00:48 +01:00
b13f8f096b
rule utils: unquoted 2025-02-20 15:00:48 +01:00
f86de825bd
rule utils: unquoted operator 2025-02-20 15:00:48 +01:00
edf8946fe3
wordsplit rules: fix basic norm problems
also make notes for future refactorings
2025-02-20 15:00:48 +01:00
f2469f1600
token_build: rename current_index to idx 2025-02-20 15:00:48 +01:00
6f8a86732b
wordsplit: rename token_build to builder in argument names 2025-02-20 15:00:48 +01:00
b23eb0f244
wordsplit: increment index + rename rules 2025-02-20 15:00:48 +01:00
6c8dd312c0
wordsplit: make it compile 2025-02-20 15:00:48 +01:00
3e64ac3769
wordsplit: use individual rule funcs 2025-02-20 15:00:32 +01:00
Jérôme Guélen
58be71725b Wordsplitting: the preparation for a reswitch. 2025-02-20 15:00:32 +01:00
Jérôme Guélen
0d0a14d21a Word splitting refactor: Prototypes to be modified 2025-02-20 15:00:32 +01:00
cba6fba845
dev: ignore .cache and compile_commands.json
These files are used by clangd to know where code is located.

To generate them, use
bear -- make re
and restart your lsp

jguelen: you probably don't have to deal with this
2025-02-20 15:00:32 +01:00
f92763e479
wordsplit: handle operators 2025-02-20 15:00:32 +01:00
558ddb4096
wordsplit: return error for unclosed quotes 2025-02-20 15:00:32 +01:00
7806043a98
wordsplit: ensure that mixed broken quotes are handled correctly 2025-02-20 15:00:32 +01:00
452d35acdf
wordsplit: handle mixed quotes 2025-02-20 15:00:32 +01:00
1676cf6696
wordsplit: handle double quotes 2025-02-20 15:00:32 +01:00
5276aba278
wordsplit: handle single quotes 2025-02-20 15:00:32 +01:00
81d28c15d4
wordsplit refactor: follow the specification more closesly
This will make it easier to implement the rest of the specification.

I probably should have started like this..
2025-02-20 15:00:32 +01:00
db0abe82cc
tests: also show debug info for succeeding assertions
This reminds us of all the good stuff we already acomplished!
2025-02-20 15:00:32 +01:00
65b57987b5
buffer: add buffer struct and related functions 2025-02-20 15:00:32 +01:00
4171a3d07b
wordsplit: handle multiple words 2025-02-20 15:00:11 +01:00
00fd2380cf
wordsplit: handle a sigle word separated surrounded by blanks
a blank here is as defined by POSIX
https://pubs.opengroup.org/onlinepubs/9699919799/
section 7.3.1
2025-02-20 15:00:11 +01:00
aa12f7c971
matchers: add matcher for <blank> character class 2025-02-20 15:00:11 +01:00
ac10c3b4de
libft: add functions to get the first character matching or not matching a predicate 2025-02-20 14:59:26 +01:00
8defbf4d13
wordsplit: handle single word with spaces before or after 2025-02-20 14:55:29 +01:00
fc985ea046
fix(tests): also run tests if test program did not change 2025-02-20 14:55:29 +01:00
25369f02ab
fix(Makefile): ASAN malloc stacktraces were being truncated 2025-02-20 14:55:29 +01:00
40c97b6813
tests Makefile: add rules to run C tests iwth specific sanitizer 2025-02-20 14:55:29 +01:00
a083800506
word splitting: a single word is not split
Sorry this commit is a bit big, lots of groudwork is being established here
2025-02-20 14:55:29 +01:00
871571e258
tests: more clear output log 2025-02-20 14:47:31 +01:00
c5eaa0e126
tests: fix typo in UBSAN invocation 2025-02-20 14:47:31 +01:00
7f71bd1694
tests: add testutils 2025-02-20 14:44:56 +01:00
715e6e122f
libft: add ft_strcmp function 2025-02-20 14:44:56 +01:00
6b64e0dfd7
tests: tests can now use libft 2025-02-20 14:44:05 +01:00