0fbfee7d78
cmdgroup parsing: parse cmdlist surrounded by parentheses
2025-03-28 14:50:37 +01:00
185a069044
cmdgroup parsing refactor: use builder pattern
...
This will make it easier to add the next logic stuff to it
2025-03-28 14:50:37 +01:00
448458b37f
redirection parsing: parse redirections for cmdgroup
2025-03-28 14:50:37 +01:00
36c1b72eff
tests: implement a better integration test framework than shellspec
...
(for our usecase at least)
2025-03-28 14:50:37 +01:00
1f03cbbedb
tree debug: implement rest of tree debug
...
This is a big commit, sorry!
2025-03-28 14:50:37 +01:00
5379ad34f2
cmdlist debug: implement debug func (STUB)
...
I need to actually parse some cmdlists for this to have any meaning further
2025-03-28 14:50:37 +01:00
40c5164eef
tree debug: create library for easy indent/dedent
2025-03-28 14:50:37 +01:00
131ba36d93
cmdlist refactor: use cmdlist instead of command_list as a shorthand
...
I hope this doesn't break too much code ^^
2025-03-28 14:50:37 +01:00
56fe943efc
cmdlist: use new architecture (STUB)
...
I fixed the tests, and the basic functionallity of detecting pipelines works,
but detecting nested cmdgroups is not yet implemented
2025-03-28 14:50:37 +01:00
d069abcd43
Makefile: add rules to build main executable with sanitizers
2025-03-28 14:50:37 +01:00
bc5be67bf6
cmdgroup parsing: parse empty wordlist
2025-03-28 14:50:37 +01:00
0d4edd4809
fix compile issues with duplicate function defs
2025-03-21 13:50:46 +01:00
46c288c858
wordlist: add a function to debug-print a wordlist
2025-03-21 10:44:37 +01:00
Jérôme Guélen
0f8b18b32f
Expansion: Fixed inclusions and Norm checked
...
Now on to remake tests properly.
2025-03-21 10:14:37 +01:00
Jérôme Guélen
bed41f4a6f
Expansion: A fix attempt
...
No time left to check before going home
2025-03-21 10:14:34 +01:00
Jérôme Guélen
fc12d8e057
Expansion: fix: algo was wrong for wildcard
...
Hopefully, this is a proper fix. This commit serves mainly to save
advancement.
2025-03-21 10:12:56 +01:00
63df02aec5
fix: does not compile
2025-03-21 10:09:32 +01:00
Jérôme Guélen
e348040ea4
Subst: A norm NON-compliant and incomplete version
...
The code does not update flags yet and is to be refactored to conform to the
norm.
Tests required but needing a new version of the wordsplitting code.
2025-03-21 10:07:32 +01:00
7c6d061c6c
here_doc: handle input with correct end marker
2025-03-11 14:58:13 +01:00
0486368a07
buffer: add ft_buffer_to_charptr function
2025-03-11 14:58:13 +01:00
cae2dfe4d6
here_doc: basic setup
2025-03-11 14:58:13 +01:00
4116c2d92f
wordlist: add destroy_idx and pop_idx functions
2025-03-10 16:08:59 +01:00
b0439c9d7d
redirection parsing: get redirection type from worddesc
2025-03-10 15:10:18 +01:00
541bad80c0
redirection parsing: add utility functions for t_redir_list
2025-03-10 15:10:18 +01:00
b0c34f36ef
redirection parsing: add utility function for t_redirection
2025-03-10 15:10:18 +01:00
cf517bb7f8
redirection parsing: define types in own files
2025-03-10 15:10:18 +01:00
06ebcf132a
redirection parsing: handle commands with no redirections
2025-03-10 15:10:18 +01:00
f3a38fb430
norm: remove print_backtrace
2025-03-10 13:22:29 +00:00
5cd755b73c
wip: make a copy of words in pipeline_from_wordlist
2025-03-10 13:22:29 +00:00
d303f22b73
wip: tests: show more debug information
2025-03-10 13:22:29 +00:00
bccd68b11f
command list refactor: put functions in correct file
2025-03-10 13:22:29 +00:00
3b8b2c7a4a
wordlist: add a function to debug-print a wordlist
2025-03-10 13:22:29 +00:00
eb21f00156
command list parsing: handle empty input
...
This is really not that usefull, it is more to setup the groundwork
2025-03-10 13:22:29 +00:00
0fecded23b
quote removal: handle strings with no quotes
2025-03-07 11:09:21 +01:00
36df14e599
refactor pipeline: use a state machine for parsing
...
This allows for easier-to-norm code
2025-02-24 15:10:29 +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
49d7a2b9ff
simple_cmd: initial setup of create/destroy functions
2025-02-21 12:44:17 +01:00
e10ed04169
matcher: is_quote
2025-02-20 15:00:48 +01:00
f86de825bd
rule utils: unquoted operator
2025-02-20 15:00:48 +01:00
6c8dd312c0
wordsplit: make it compile
2025-02-20 15:00:48 +01:00
f92763e479
wordsplit: handle operators
2025-02-20 15:00:32 +01:00
65b57987b5
buffer: add buffer struct and related functions
2025-02-20 15:00:32 +01:00
aa12f7c971
matchers: add matcher for <blank> character class
2025-02-20 15:00:11 +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
abea59eba4
get_command refactor: put into own file
2025-02-20 14:40:57 +01:00
e445f668b3
env_manip: sort funcs per structure that is being manipulated
...
This is instead of the operation that is being performed.
I find it more logical this way, but if you prefer we can keep it as-is.
I also put the identifier_isvalid func into parser/matchers
2025-02-19 14:47:10 +01:00
Jérôme Guélen
30d32a1d53
ft_errno: integrate ft_errno library
2025-02-19 14:34:09 +01:00
Jérôme Guélen
660d785237
ENV: A small set of functions for internal env
2025-02-19 14:34:09 +01:00
Jérôme Guélen
5b00059526
refactor: rename env_get_set.c to env_get.c
2025-02-19 14:34:09 +01:00