I just want find out why Cygwin crashed again.
Used the function chdir() to change the work directory of the child process.
PLus the head file "unistd.h" in case that can't be compiled without the declaration of function;
There are a lot of changes.
1.Plus *.out to the gitignore
2.changed the class functions in console.cpp
3.Plus the dir handler "."(present directory) to the dir_list
4.New file m2.cpp to test this program
5.deleted the original main.cpp
6.remove some testing code from parser.cpp
7.make the destructor of abstract base class shl_io_api and runtime vitual
Delete some testing code
Rewrite the file and directory class.
1.Removed the class dir_list because we can just use the system call do the same thing
2.Add the interface class environment,which includes functions about the file and directory stuffs.
3.Correct some code in the console and parser(to face the change of the file and directory interface)
4.Why I did so?Well, just because of the possibility for platform-independent.I take a seek,and I find that most OS's(include WINDOWS and UNIX like)has the same system calls for such things.We could do better with the interface instead of the code closed to OS.
add some intruductions to next plan.
see doc/xTODO
fix some error
1.console.cpp: add the exit() and fork() function;
exit() is for exit the progress
fork() is for fork the progress
2.console.h:  the define of the exit() and fork();
3.envx.cpp:   fix the error of the "cd ..";
4.parser.cpp: the notice of the not exit the dir and unknown error;
5.shl_io_api.h:add the port of the exit() and fork();
do some parse job of the parametas.
1.para_test.cpp is an example
2.plus the "" and '' support for the shell
3.plus one class called para_list to contain the parametas.
See prev commit.
Changed the function execute in class console
Changed its error information.
Plus some lexer functions and changed the parser function
1.Plus come lexer functions such as read() move() read_move()
2.Changed the parser function,it can do the parser job better.It can get the string surrended by `'' or `"',and it is ok to parse the parameters now.
Write a makefile to do the compiler job automaticly
Use variable to replace the compiler
Plus one virtual function execute in the class runtime.
This function has an parameter named args standing for the args for the executing application.
We should *IMPLEMENT* this function in the class console.Take a little care of the args passing.
And then in the paraser,We do the executing file job with the new function instead of the old and simple one.
Fixed a typo.
Plus FLAGS passed to the Compiler
have some error
1.when you put the wrong command the next right command can not perform
2.when you put the right command the next time can not perform either.
so it has problem!!!
Fixed the execute bugs in the class console.cpp
1.the arguments passed to executed file must have the filename as its begin and NULL as its end
2.the parser.cpp has a bug in the arguments fetching(the edge situation)
Merge branch 'fzj/para-do' into env-path