Commit Graph

37 Commits

Author SHA1 Message Date
Sekulum Forka 9e810a5929 Builtins: Added a hack so that builtins would behave correctly no matter if they're called from eval or execute 2021-05-18 15:01:13 +02:00
Sekulum Forka 75819e9abc Let: Let works now, somehow. I fixed a bunch of things but this cart is still fundimentaly broken 2021-05-17 19:14:31 +02:00
Sekulum Forka c2ba92518e Builtins: set now puts the variables in the most local frame by default 2021-05-17 17:13:58 +02:00
Sekulum Forka 3d7bf1029e Variables: evalVariables goes threw the frames in the right order now (from the most local frame to the global one) 2021-05-17 17:06:37 +02:00
Sekulum Forka 8c48eb9057 Variables: The 0th frame is the global one, the next few ommits make it so 2021-05-17 17:02:51 +02:00
Sekulum Forka 2a732eb569 Variables: Added frames with shit performance 2021-05-17 16:58:14 +02:00
Sekulum Forka eff52bf920 Variables: 2 dollarsignsin a row are equal to a single dollarsign now 2021-05-16 16:50:19 +02:00
Sekulum Forka 0d8354ddd9 Prompt: Added a prompt (Still buggy a little if it contains dollarsigns) 2021-05-16 16:47:09 +02:00
Sekulum Forka ef34936d29 builtins: Added cd 2021-05-16 16:18:39 +02:00
Sekulum Forka 472ecf7b25 builtins: Added an if command 2021-05-15 13:31:16 +02:00
Sekulum Forka 7b0dec7084 Builtins, exec / eval: Builtins can return statuses now, not used at all now though 2021-05-14 18:57:44 +02:00
Sekulum Forka 4cd90e368c Eval execute: They now ignore empty commands or commands that only contain a single empty string 2021-05-14 17:28:11 +02:00
Sekulum Forka 8e21117986 Ctrl-C: Handles sigint much more elegantly 2021-05-13 22:40:06 +02:00
Sekulum Forka 87982fdcbc Exceptions: Add an exception for ^c 2021-05-13 22:05:15 +02:00
Sekulum Forka 5116918ff2 Exceptions: Raising code uses proper constructers now 2021-05-13 15:44:07 +02:00
Sekulum Forka 43ac1b6e04 Exceptions: Refactoring exception making code 2021-05-13 15:26:14 +02:00
Sekulum Forka adf612effd Eval / execute: Raise a ShellCommandError if command is not available 2021-05-13 14:17:12 +02:00
Sekulum Forka ad3568d785 Builtins: setenv: Raises a ShellCommandError incase of lack of arguments 2021-05-13 13:36:38 +02:00
Sekulum Forka 285eb06f0e Builtins: set: Throws an exception if not enough arguments are provided 2021-05-13 11:29:26 +02:00
Sekulum Forka aa528eb717 evalVariable: Thows ShellVariableError if no variable is found 2021-05-13 11:25:28 +02:00
Sekulum Forka cdae96263b Exceptions: Make better exception types 2021-05-13 11:19:39 +02:00
Sekulum Forka fb7b46fca6 eval and execute: Automatically skips over empty commands (those that parse command interprets as empty lists) 2021-05-12 22:19:26 +02:00
Sekulum Forka 69a96bda1b eval and execute: If a builtin has been found, continue onto the next command instead of executing the program by the same name 2021-05-12 22:16:15 +02:00
Sekulum Forka 226c44c99c parseCommand: Spaces at the beginning of a command should no longer make the shell crash 2021-05-12 22:12:58 +02:00
Sekulum Forka 9568721c82 exec: Exec can now execute multiple commands at once 2021-05-12 21:07:12 +02:00
Sekulum Forka a83e5d3c79 eval: Eval can now evaluate multiple commands at once 2021-05-12 21:04:29 +02:00
Sekulum Forka 15df6c4a82 Merge branch 'master' of https://gitea.com/seculumforka/fsh 2021-05-12 16:11:48 +02:00
Sekulum Forka 5ebbc60ccb Builtins: Added the exit builtin 2021-05-12 15:43:40 +02:00
Sekulum Forka 23592c5e15 Builtins: Added set, setenv, and echo builtins 2021-05-12 14:44:24 +02:00
Sekulum Forka b1c9159155 Substitute and parseCommand: The now recognise variables and deal with them as needed 2021-05-12 13:32:08 +02:00
Sekulum Forka d502efaeb1 Substitute and parseCommand: The now recognise variables and deal with them as needed 2021-05-11 18:38:32 +02:00
Sekulum Forka 8a5e6c3cea Variables: Added a readVariable and evalVariable procedures 2021-05-11 18:31:02 +02:00
Sekulum Forka c00678603b imports: Removed the needless strutils module 2021-05-11 15:52:13 +02:00
Sekulum Forka bdb77b272a Main loop: Execute is now called instead of eval 2021-05-11 11:57:36 +02:00
Sekulum Forka 4db9a4d831 eval and execute: Changed how they work. Main difference is that eval returns the output of the function while execute merges the parent process's and child process's stdstreams 2021-05-11 11:57:36 +02:00
Sekulum Forka 36d2b8e03a second commit 2021-05-11 11:57:36 +02:00
seculumforka b662afe779 Initial commit 2021-05-11 17:49:34 +08:00