fix bug and add zero instruction
This commit is contained in:
parent
cb76bcf7d2
commit
1b3c67ba06
5 changed files with 16 additions and 1 deletions
|
@ -41,6 +41,8 @@ Just like brainfuck, cells wrap from 0 to 255, and vice versa, and also the tape
|
|||
|
||||
`%` Clear screen
|
||||
|
||||
`$` Zero n cells where n is the value of the current cell
|
||||
|
||||
`\` Comment out the rest of the line
|
||||
|
||||
## Usage
|
||||
|
@ -52,6 +54,12 @@ For example:
|
|||
$ brainfucked helloworld.bfd
|
||||
```
|
||||
|
||||
Brainfucked can also read from standard in, so the following would also work.
|
||||
|
||||
```
|
||||
$ cat helloworld.bfd | brainfucked
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project is Licensed under the [WTFPL](http://www.wtfpl.net/)
|
||||
|
|
|
@ -62,8 +62,8 @@ next:
|
|||
break;
|
||||
}
|
||||
case EnterTape: {
|
||||
memcpy(&tape, tape_ptr(tape), sizeof(Tape*));
|
||||
stack_push(&tape_stack, tape);
|
||||
memcpy(&tape, tape_ptr(tape), sizeof(Tape*));
|
||||
break;
|
||||
}
|
||||
case LeaveTape: {
|
||||
|
@ -82,6 +82,9 @@ next:
|
|||
case Clear:
|
||||
printf("\033c");
|
||||
break;
|
||||
case Zero:
|
||||
memset(tape_ptr(tape), 0, tape_get(tape));
|
||||
break;
|
||||
case Eof:
|
||||
goto end;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
/// ` Output null terminated string at current cell
|
||||
/// ~ Input string into current cells with max length in current cell
|
||||
/// % Clear screen
|
||||
/// $ Set n cells to 0 where n is the count of the current cell
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ retest:
|
|||
return GetString;
|
||||
case '%':
|
||||
return Clear;
|
||||
case '$':
|
||||
return Zero;
|
||||
case '\n':
|
||||
case '\t':
|
||||
case ' ':
|
||||
|
|
|
@ -19,6 +19,7 @@ typedef enum {
|
|||
PutString,
|
||||
GetString,
|
||||
Clear,
|
||||
Zero,
|
||||
Eof
|
||||
} Symbol;
|
||||
|
||||
|
|
Loading…
Reference in a new issue