1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:57:35 +00:00

Shell: Add support for 'immediate' expressions as variable substitutions

This commit adds a few basic variable substitution operations:
- length
    Find the length of a string or a list
- length_across
    Find the lengths of things inside a list
- remove_{suffix,prefix}
    Remove a suffix or a prefix from all the passed values
- regex_replace
    Replace all matches of a given regex with a given template
- split
    Split the given string with the given delimiter (or to its
    code points if the delimiter is empty)
- concat_lists
    concatenates any given lists into one

Closes #4316 (the ancient version of this same feature)
This commit is contained in:
AnotherTest 2021-03-05 16:33:23 +03:30 committed by Andreas Kling
parent a303b69caa
commit a45b2ea6fb
16 changed files with 911 additions and 37 deletions

View file

@ -1,20 +1,21 @@
set(SOURCES
AST.cpp
Builtin.cpp
Formatter.cpp
Job.cpp
NodeVisitor.cpp
Parser.cpp
Shell.cpp
SyntaxHighlighter.cpp
)
AST.cpp
Builtin.cpp
Formatter.cpp
ImmediateFunctions.cpp
Job.cpp
NodeVisitor.cpp
Parser.cpp
Shell.cpp
SyntaxHighlighter.cpp
)
serenity_lib(LibShell shell)
target_link_libraries(LibShell LibCore LibLine LibSyntax)
target_link_libraries(LibShell LibCore LibLine LibSyntax LibRegex)
set(SOURCES
main.cpp
)
main.cpp
)
serenity_bin(Shell)
target_link_libraries(Shell LibShell)
@ -22,5 +23,5 @@ target_link_libraries(Shell LibShell)
install(DIRECTORY Tests/ DESTINATION usr/Tests/Shell
PATTERN "Tests/*"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ)
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ)