-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathproject.json
95 lines (95 loc) · 2.95 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
95
{
"id": "jq/thaliaarchi-wsjq",
"name": "wsjq",
"authors": ["Thalia Archibald"],
"license": "MPL-2.0",
"languages": ["jq"],
"tags": ["interpreter", "debugger", "disassembler"],
"date": "2021-05-02 07:26:45 -0700",
"spec_version": "0.3",
"source": ["https://github.com/thaliaarchi/wsjq"],
"submodules": [{ "path": "wsjq", "url": "https://github.com/thaliaarchi/wsjq" }],
"bounds": { "precision": "float64" },
"assembly": {
"mnemonics": {
"push": "push <number>",
"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"
},
"instruction_delimiter": "none",
"indentation": " ",
"usage": ["disassembler", "debugger"],
"extension": "wsa"
},
"commands": [
{
"type": "interpreter",
"bin": "wsjq",
"usage": "[<mode>] [-h | --help] [-i <in_file> | --in-file=<in_file>] [-e <behavior> | --on-eof=<behavior>] [-n | --no-prompt] [-c | --check-clean] [-r | --check-retrieve] <file>",
"example_usages": [
"wsjq run hworld.ws",
"whoami > name.txt && wsjq debug --in-file=name.txt --no-prompt name.ws",
"wsjq disasm fact.ws"
],
"options": [
{
"short": "i",
"long": "in-file",
"arg": "in_file",
"arg_required": true,
"desc": "Read from <in_file> for the initial input, then from stdin."
},
{
"short": "e",
"long": "on-eof",
"arg": "behavior",
"arg_required": true,
"desc": "Set EOF-handling behavior, which can be \"error\" (default; like wspace) or an integer (e.g., 0 or -1)."
},
{
"short": "n",
"long": "no-prompt",
"desc": "Do not prompt for input. If --in-file is also specified, then no input will be prompted after the file has been read."
},
{
"short": "c",
"long": "check-clean",
"desc": "Assert that the stack is empty and that the program explicitly exits, at the end of execution."
},
{
"short": "r",
"long": "check-retrieve",
"desc": "Assert that retrieved addresses are not above previously-stored addresses."
},
{ "short": "h", "long": "help", "desc": "Show usage." }
],
"option_parse": "bash getopts",
"subcommands": [
{ "name": "run", "desc": "Run the program (default)" },
{ "name": "debug", "desc": "Run the program in the debugger" },
{ "name": "disasm", "desc": "Disassemble the program" }
]
}
]
}