blob: 2ddb46b0144368bf5c1db507d5d994a01f2c3fb4 (
plain)
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
|
% CPSC(1)
# NAME
cpsc - compile and run CIE pseudocode
# SYNOPSIS
**cpsc** [**-r**] [**-o** *output*] *source*
# DESCRIPTION
Compile one pseudocode source file to LLVM IR. Options may appear before or after the source path. Source input from stdin is not supported.
Without **-o** or **-r**, replace the source filename's extension with `.ir` and save the output beside the source file.
# OPTIONS
**-o** *output*
: Save IR to the specified path. May be specified only once. With **-r**, keep this file even if execution fails.
**-r**
: Run the compiled program using `lli` from PATH. Without **-o**, use a temporary IR file and delete it afterward, including on execution failure. The program inherits stdin, stdout and stderr; `INPUT` can read terminal or piped input.
# EXAMPLES
Compile and save `test.ir` beside `test.cps`:
```sh
cpsc test.cps
```
Choose the output path:
```sh
cpsc test.cps -o result.ir
```
Run without saving permanent IR:
```sh
cpsc test.cps -r
```
Save IR and run it:
```sh
cpsc test.cps -r -o result.ir
```
# EXIT STATUS
**0**
: Compilation succeeded. Invoking `cpsc` with no arguments also exits silently with status 0.
**1**
: An argument, file, compilation or execution-launch error occurred, including when `lli` cannot be found in PATH.
With **-r**, return `lli`'s exit status. Failure to launch it or a process crash returns 1.
# NOTES
Compiler diagnostics go to stderr. Failed compilation does not write IR. Successful compilation overwrites an existing output file, but an output path that refers to the source file (including a symbolic or hard link) is rejected.
|