E
ern
My command-line application must be able to run text scripts (macros).
The scripts have commands, comments, and flags. Comments are ignored
(maybe they are any line beginning with " ; ") Commands are executed
as if the user *manually* typed them in the console. Flags are special
commands that tell the program where to BREAK, LOOP, START. A typical
script may look like this:
; This is my script. It will test my mp3 player...
START:
set battery voltage 1.5
begin thread
LOOP: ; here I will test individual tracks
play
skip track
BREAK: ; at this point, I go back up to find "LOOP"
To launch the script, the user will type:
"script <pathname>"
where pathname is where the script lives. So far, I have the entire
text file in a char * buffer.
Now I need to do several things....
1. After the script begins, the USER needs a way to halt execution of
the script. I was thinking any key press would do. Pseudocode looks
like this:
while("user hasn't pressed any key"){ //continue executing script...
I want the script to stop immediately after the user presses a key, so
I 'm not sure a while loop is the best way... perhaps some kind of
thread...
Need help implementing that logic....
2. I need a way to seperate each line in the text file. I was
thinking of putting each line in an element of an array. I could have
two arrays:
char * start[SIZE];
char * loop[SIZE];
The first holds the commands to execute once, and the second holds the
commands to repeat (not sure if the syntax is correct there... ? I
need an array of strings...). Once I have the commands, I can just
execute them one at a time until I get the flag to stop (#1). But how
would I parse the commands into the arrays from the "buffer" ?
The scripts have commands, comments, and flags. Comments are ignored
(maybe they are any line beginning with " ; ") Commands are executed
as if the user *manually* typed them in the console. Flags are special
commands that tell the program where to BREAK, LOOP, START. A typical
script may look like this:
; This is my script. It will test my mp3 player...
START:
set battery voltage 1.5
begin thread
LOOP: ; here I will test individual tracks
play
skip track
BREAK: ; at this point, I go back up to find "LOOP"
To launch the script, the user will type:
"script <pathname>"
where pathname is where the script lives. So far, I have the entire
text file in a char * buffer.
Now I need to do several things....
1. After the script begins, the USER needs a way to halt execution of
the script. I was thinking any key press would do. Pseudocode looks
like this:
while("user hasn't pressed any key"){ //continue executing script...
I want the script to stop immediately after the user presses a key, so
I 'm not sure a while loop is the best way... perhaps some kind of
thread...
Need help implementing that logic....
2. I need a way to seperate each line in the text file. I was
thinking of putting each line in an element of an array. I could have
two arrays:
char * start[SIZE];
char * loop[SIZE];
The first holds the commands to execute once, and the second holds the
commands to repeat (not sure if the syntax is correct there... ? I
need an array of strings...). Once I have the commands, I can just
execute them one at a time until I get the flag to stop (#1). But how
would I parse the commands into the arrays from the "buffer" ?