-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathproject.json
94 lines (94 loc) · 3.24 KB
/
project.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
"id": "cpp/thaliaarchi-respace",
"name": "Respace",
"authors": ["Thalia Archibald"],
"license": "MIT",
"languages": ["C++"],
"tags": ["interpreter", "assembler", "disassembler", "bit packer", "Binary Whitespace", "programs"],
"date": "2018-04-15 21:35:34 -0600",
"spec_version": "0.3",
"source": ["https://github.com/thaliaarchi/respace"],
"submodules": [{ "path": "respace", "url": "https://github.com/thaliaarchi/respace" }],
"relations": [{ "id": "javascript/vii5ard-whitelips-ide", "type": "assembly" }],
"bounds": { "precision": "fixed" },
"whitespace": { "extension": "ws" },
"assembly": {
"mnemonics": {
"push": "push",
"dup": "dup",
"copy": "copy",
"swap": "swap",
"drop": "drop",
"slide": "slide",
"add": "add",
"sub": "sub",
"mul": "mul",
"div": "div",
"mod": "mod",
"store": "store",
"retrieve": "retrieve",
"label": "label_<number>:",
"call": "call",
"jmp": "jmp",
"jz": "jz",
"jn": "jn",
"ret": "ret",
"end": "end",
"printc": "printc",
"printi": "printi",
"readc": "readc",
"readi": "readi",
"dumpstack": "debug_printstack",
"dumpheap": "debug_printheap"
},
"macros": [
{ "name": "@include", "args": ["string"] },
{ "name": "@define", "args": ["ident", "value"] },
{ "name": "@ifdef", "args": ["ident"] },
{ "name": "@else" },
{ "name": "@endif" }
],
"instruction_delimiter": ";",
"instruction_wrap": false,
"indentation": " ",
"usage": ["assembler", "disassembler", "programs"],
"extension": "wsa",
"notes": "Extends Whitelips syntax with preprocessor directives and `;` instruction delimiters. Allows all C preprocessor directives, with the `#` replaced with `@`."
},
"programs": [
{
"path": "programs/bottles.instr",
"generated": "programs/bottles.generated.ws",
"aux": ["programs/bottles.c", "programs/bottles.wsa"],
"spec_version": "0.2"
},
{ "path": "programs/hello-world.ws", "spec_version": "0.2" },
{ "path": "programs/test.ws", "polyglot": ["Whitespace Assembly"], "spec_version": "0.2" },
{
"path": "programs/ws-assemble.wsa",
"generated": "programs/ws-assemble.generated.ws",
"spec_version": "0.2"
},
{ "path": "programs/ws-interpret.wsa", "spec_version": "0.2" },
{ "path": "programs/util/print-string.wsa", "spec_version": "0.2" },
{
"path": "programs/ws/assembler.wsa",
"generated": "programs/ws/assembler.generated.ws",
"spec_version": "0.2"
},
{ "path": "programs/ws/interpret.wsa", "spec_version": "0.3" },
{
"path": "programs/ws/interpreter.wsa",
"generated": "programs/ws/interpreter.generated.ws",
"spec_version": "0.2"
},
{ "path": "programs/ws/loader.wsa", "spec_version": "0.3" },
{ "path": "programs/ws/parse.wsa", "spec_version": "0.2" }
],
"commands": [
{ "type": "interpreter", "bin": "respace", "usage": "<file>" },
{ "type": "interpreter", "bin": "programs/ws/interpreter.wsa" },
{ "type": "assembler", "bin": "programs/preprocess.sh", "usage": "<file> <output>" }
],
"notes": "Disassembler and bit packer are only available via code modification"
}