Mercurial > repo
annotate share/delvs-master/README.md @ 7617:f36d749de05d
<Kaynato> fetch http://pastebin.com/raw/Mcd6MMB5
author | HackBot |
---|---|
date | Fri, 29 Apr 2016 01:09:35 +0000 |
parents | 38a5b4d8a98e |
children |
rev | line source |
---|---|
3840
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
1 Delvs |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
2 ===== |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
3 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
4 Delvs(Pronounced Del-vis) is my own personal variation of brainfuck, the interpreter is written in C. |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
5 File reading was inspired by brainfuck++, and the bit fiddling was inspired by boolfuck(DuckDuckGo them if you have to, I'm not putting links there right now) |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
6 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
7 Additions |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
8 --------- |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
9 - `:` casts the current value to a string and prints it. Code: `printf("%hhd", *p);` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
10 - `;` grabs value from user input and casts to cell value. Code: `scanf("%hhd", p);` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
11 - `#` reads following cells as null-terminating string for filename, then if current cell is != 1, open file for reading, or if 1, open file writing. Code: `f = fopen(p + 1, p == 1 ? "w" : "r");` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
12 - `` ` `` read next char from file, apply to current cell. (`EOF` becomes `0`) Code: `*p = fgetc(f);` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
13 - `!` write char from current cell to file. Code: `fputc(*p, f);` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
14 - `"` increment current bit position by 1. (psuedo)Code: `b++;` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
15 - `'` flip bit at current bit position, then incrment current bit position by 1. Code: `*p ^= (1 << b)` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
16 - `\ ...` ignore EVERYTHING until newline is reached. `while(*c) if(*c++ == '\') return;` |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
17 - `@` prints value of current cell and surrounding 4 cells. Code: |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
18 - `$` sleeps the current cell's value in seconds |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
19 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
20 ### To do |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
21 - implement a working socket system |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
22 - implement an stdout flushing system |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
23 - implement runtime args |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
24 - implement namespaces(seperate arrays of 30000 chars) |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
25 - (maybe) implement better way to divide |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
26 - implement full integers |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
27 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
28 Examples |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
29 -------- |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
30 Setting entire cell values with just the bit intructions is as easy as converting 0's to `"`s and 1's to `'`s. |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
31 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
32 01001000 = 72 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
33 "'""'""" . > |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
34 01101001 = 105 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
35 "''"'""' . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
36 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
37 Block comments are very straight forward to use, just plant a `\[` when you start "commenting" and a `]` when you're done. |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
38 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
39 +++++ +++++ [ |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
40 > +++++ ++ |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
41 > +++++ +++++ |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
42 \ This is a well placed comment. See, all these code intrustions aren't messing with the program unlike vanilla Brainfuck |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
43 > +++ |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
44 > + |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
45 <<<< - |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
46 ] |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
47 > ++ . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
48 > + . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
49 +++++ ++ . . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
50 \ Another intruding comment. |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
51 +++ . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
52 > ++ . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
53 << +++++ +++++ +++++ . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
54 > . +++ . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
55 ------ . -------- . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
56 > + . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
57 > . |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
58 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
59 How about reading files? Just generate a string as the filename an the use a `#` at the beginning of it. Like so: |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
60 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
61 01101101 m |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
62 "''"''"' |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
63 01111001 y |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
64 "''''""' |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
65 01110100 t |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
66 "'''"'"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
67 01100101 e |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
68 "''""'"' |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
69 01111000 x |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
70 "''''""" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
71 01110100 t |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
72 "'''"'"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
73 01100110 f |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
74 "''""''" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
75 01101001 i |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
76 "''"'""' |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
77 01101100 l |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
78 "''"''"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
79 01100101 e |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
80 "''""'"' |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
81 00101110\. |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
82 ""'"'''" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
83 01110100 t |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
84 "'''"'"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
85 01111000 x |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
86 "''''""" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
87 01110100 t |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
88 "'''"'"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
89 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
90 [<] # |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
91 \ standard concatenation loop with file reading(and EOF check) |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
92 `+[-.`+] |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
93 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
94 Want to give the actual value of the cell when printing? Just add a dot above your intruction! |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
95 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
96 01100100 \ 'd' or 100 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
97 "''""'"" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
98 |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
99 . \ prints "d" |
38a5b4d8a98e
<oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff
changeset
|
100 : \ prints "100" |