annotate baum.1 @ 43:c7dca4a1dc37

added test programs; added another example program
author meillo@marmaro.de
date Sat, 01 Mar 2008 21:13:12 +0100
parents 233ac9bea4f1
children 0b82169d4129
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
29172b6e802a switched to next version number, updated man page
meillo@marmaro.de
parents: 33
diff changeset
1 .TH baum 1 "2008-03-01" "baum 0.3"
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
2 .SH NAME
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
3 baum \- an esoteric programming language
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
4
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
5
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
6
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
7 .SH SYNOPSIS
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
8 .B baum
31
4e60d96265f0 removed -c option completely; updated man page; new error code 5
meillo@marmaro.de
parents: 18
diff changeset
9 [\-v]\ <file>
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
10
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
11
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
12
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
13 .SH DESCRIPTION
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
14 .B baum
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
15 is an interpreter for the baum programming language which is an experiment to create an esoteric programming language.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
16
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
17 Source code is a representation of a tree in which every node is a command or data.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
19 baum is only an experiment and the functionality is (currently) very restricted.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
20
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
21
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
22
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
23
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
24 .SH OPTIONS
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
25
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
26 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
27 .BI \-v
42
233ac9bea4f1 switched exit code 127 to 126 (because shell returns 127 if command not found)
meillo@marmaro.de
parents: 37
diff changeset
28 Verbose output (All verbose output goes to stderr)
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
29
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
30 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
31 .BI \-\-help
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
32 Print usage information
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
33
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
34 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
35 .BI \-\-version
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
36 Print version information
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
37
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
38
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
39
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
40
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
41
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
42
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
43 .SH SOURCE CODE
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
44
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
45 Source code are plain text files with one node per line representing the tree. The indention controls in which level in the tree the node is. Indention can be made with SPACE or with TAB characters. Every character means one level.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
46
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
47 Empty lines and everything vom the hash symbol (`#') to the end of the line is ignored.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
48
37
29172b6e802a switched to next version number, updated man page
meillo@marmaro.de
parents: 33
diff changeset
49 .B An example that echoes (and returns) `42':
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
50
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
51 .nf
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
52 # comment
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
53 print(0)
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
54 sum(0) #comment
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
55 number(40)
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
56 number(2)
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
57 .fi
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
58
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
59
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
60
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
61 .SH CONCEPT
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
62
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
63 baum programs are represented as nodes in a tree structure. Nodes are of specific kind and contain a value.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
64
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
65 The tree is processed recursive starting at the root node. Every node controls it's sons and should only know them; while most nodes only use their leftmost son.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
66
37
29172b6e802a switched to next version number, updated man page
meillo@marmaro.de
parents: 33
diff changeset
67 Each node returns a value to it's parent. (The root node returns an exit code to the shell.) The internal value of the node could be used in any useful way, but only inside the node.
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
68
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
69 All values in the language (return values, expected return values and in-node values) should be of the same type, so that every combination of nodes is possible.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
70
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
71 Nodes can modify the tree, but should do this only on it's brothers or better only through it's rightmost brother.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
72
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
73
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
74 .SH ERRORS
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
75
43
c7dca4a1dc37 added test programs; added another example program
meillo@marmaro.de
parents: 42
diff changeset
76 You have to keep in mind, that valid programs that run successful can return exit codes different from zero too! Each program returns the return value of the root node to the shell. If you don't want your program doing this, just set a `number(0)' node as root, and put everything else below.
c7dca4a1dc37 added test programs; added another example program
meillo@marmaro.de
parents: 42
diff changeset
77
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
78 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
79 .BI 1
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
80 common error
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
81
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
82 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
83 .BI 3
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
84 no or more than one source file given
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
85
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
86 .TP
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
87 .BI 4
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
88 invalid node
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
89
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
90 .TP
31
4e60d96265f0 removed -c option completely; updated man page; new error code 5
meillo@marmaro.de
parents: 18
diff changeset
91 .BI 5
4e60d96265f0 removed -c option completely; updated man page; new error code 5
meillo@marmaro.de
parents: 18
diff changeset
92 indention over more than one level
4e60d96265f0 removed -c option completely; updated man page; new error code 5
meillo@marmaro.de
parents: 18
diff changeset
93
4e60d96265f0 removed -c option completely; updated man page; new error code 5
meillo@marmaro.de
parents: 18
diff changeset
94 .TP
33
2e564bf8599c new error code 6; more readable printTree; cleanups
meillo@marmaro.de
parents: 31
diff changeset
95 .BI 6
2e564bf8599c new error code 6; more readable printTree; cleanups
meillo@marmaro.de
parents: 31
diff changeset
96 node name too long, or no value given
2e564bf8599c new error code 6; more readable printTree; cleanups
meillo@marmaro.de
parents: 31
diff changeset
97
2e564bf8599c new error code 6; more readable printTree; cleanups
meillo@marmaro.de
parents: 31
diff changeset
98 .TP
42
233ac9bea4f1 switched exit code 127 to 126 (because shell returns 127 if command not found)
meillo@marmaro.de
parents: 37
diff changeset
99 .BI 126
18
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
100 invalid command line options
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
101
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
102
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
103
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
104 .SH BUGS
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
105 Please report if you find some.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
106
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
107
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
108 .SH CREDITS
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
109 Ju developed the idea of
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
110 .B baum
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
111 with me in a conversation. Actually it was his idea to use the tree as basic structure.
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
112
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
113
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
114
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
115 .SH AUTHOR
711aab4863cc added man page
meillo@marmaro.de
parents:
diff changeset
116 markus schnalke <meillo@marmaro.de> and julian forster